Uçtan Uca Bir RAG Mimarisi: Tek Self-Hosted Yığında Tüm Kavramlar
Self-hosted RAG mimarisinin tüm parçaları: Docling parsing, hibrit arama, RRF, bilgi grafiği, token bütçeleme ve paralellik — gerçek kodla.
myRAG adlı proje, "dokümanlarınla sohbet et" fikrinin aslında sekiz ayrı alt sistemden oluştuğunu gösteren tam self-hosted bir RAG yığını: FastAPI, React, ve Qdrant + PostgreSQL + Neo4j üçlüsü Docker Compose ile orkestre ediliyor. Proje, ayrıştırma, chunking, çift indeksleme, hibrit arama, yeniden sıralama, bilgi grafiği, hafıza yönetimi ve paralellik gibi RAG'ın her aşamasını gerçek kodla ele alıyor.
Mimarinin dikkat çekici yanı, hiçbir aşamayı basite indirgememesi: dokümanlar Docling ile Markdown'a çevriliyor (tablo yapısı korunuyor), chunk'lar hem yoğun (dense, Qwen3-Embedding) hem seyrek (sparse, BM25/fastembed) vektörlerle Qdrant'ta named vector olarak indeksleniyor, sonuçlar Reciprocal Rank Fusion ile birleştiriliyor ve bir cross-encoder ile yeniden sıralanıyor. Ayrıca ingestion sırasında LLM ile çıkarılan (özne, ilişki, nesne) üçlüleri Neo4j'e yazılarak "GraphRAG-lite" bir katman ekleniyor — vektör deposu neyin alakalı olduğunu, graf ise şeylerin nasıl ilişkili olduğunu yanıtlıyor.
Mühendisler için asıl değer, üretim kalitesinde bir RAG sisteminin görünmeyen maliyetlerini somutlaştırması: token bütçeleme ile bağlam penceresinin açıkça önceliklendirilmesi, doc_uuid ile üç veri deposu arasında referans bütünlüğü, ve graf çıkarımı gibi yavaş adımların paylaşılan bir thread pool ile paralelleştirilmesi (90 saniyeden 15 saniyeye). Async yeniden yazım gerekmeden, I/O-bound işler için thread'lerin yeterli olduğu gösteriliyor.