How duembi/rag works
Amaç ve depo düzeni
Depo, OSB/parsel Excel envanterini doğrulanabilir doğal dil soru-cevap için iki farklı RAG uygulamasıyla işler. custom-rag/ eğitim amaçlı, sıralı prototip; rag_with_ai/ ise üretim odaklı çok-ajanlı uygulamadır. Ana operasyonel giriş noktası ikinci projenin API’sidir: rag_with_ai/src/api/main.py. İlk proje, numaralı Python betiklerinin sırayla çalıştırıldığı bir öğrenme hattıdır.
Klasik RAG öğrenme hattı
custom-rag/ veri hazırlama, chunk üretme, Chroma’ya yükleme, retrieval, bağlam kurma ve sohbet katmanlarını aşamalı olarak ayırır. Temel akış Excel/veri → parçalar → embedding/Chroma → sorgu sonuçları → LLM bağlamı → chatbot şeklindedir.
• custom-rag/003.DataPreparation.py
• custom-rag/005.LoadChunksToChroma.py
• custom-rag/008.RAGChatbot.py
Bu yaklaşım anlamsal retrieval’a dayanır; yapılandırılmış toplama, sayım ve çoklu filtreleme soruları için daha gelişmiş projenin Text-to-SQL yoluna mimari gerekçe sağlar.
Çok-ajanlı orkestrasyon ve yönlendirme
rag_with_ai merkezi durum ve kontrol akışını bir graph üzerinden yürütür. Graph, kullanıcı isteğini uygun işleme yoluna yönlendirir; graph state, ajanlar arası çalışma verisini taşır.
• rag_with_ai/src/graph.py
• rag_with_ai/src/graph_state.py
• rag_with_ai/src/agents/rag_pipeline_agent.py
Ana ayrım şudur: yapısal/aggregasyon talepleri SQL tabanlı veri erişimine, açıklayıcı veya semantik talepler embedding tabanlı retrieval’a gider. Bu, LLM’nin tablo gerçeklerini üretmek yerine veri kaynağından almasını hedefler.
Veri hazırlama ve kalıcılık sınırı
Kaynak, dönemsel OSB/parsel Excel dosyalarıdır; ham ve impute edilmiş sürümler depoda bulunur. İmputation ajanı eksik veri sorununu retrieval ve cevaplama öncesinde ayrı bir veri-kalitesi aşaması olarak ele alır.
• rag_with_ai/src/agents/data_imputation_agent.py
• rag_with_ai/data/raw/2026-2__Çeyrek__Nisan-Mayıs-Haziran__Parsel_Tablosu (4).xlsx
• rag_with_ai/data/parsel.sqlite
Yapılandırılmış sorgu sınırı SQLite’daki parsel verisidir. Semantik indeks ise yerel, kalıcı Chroma deposudur: rag_with_ai/data/chroma_index/chroma.sqlite3.
Retrieval ve cevap güvenilirliği
Retrieval kurulum ajanı Chroma/embedding tabanlı indeksi hazırlar veya kullanıma açar; RAG pipeline agent sorgu, alınan bağlam ve LLM cevabını birleştirir. QA değerlendirme ajanı cevabın bağlama sadakatini doğrulamaya yönelik ayrı bir kalite kapısıdır.
• rag_with_ai/src/agents/retrieval_setup_agent.py
• rag_with_ai/src/agents/qa_eval_agent.py
• rag_with_ai/data/chroma_index/chroma.sqlite3
Bu katmanlar, veri erişimi ile üretken model çıktısı arasındaki temel güven sınırını oluşturur: SQL/retrieval kanıt sağlar, LLM yalnızca yanıt sentezler.
API, oturumlar ve çalışma ortamı
HTTP API ve statik kullanıcı arayüzü aynı API alanında sunulur; konuşma geçmişi ayrı SQLite depolamasında kalıcıdır.
• rag_with_ai/src/api/main.py
• rag_with_ai/src/api/conversation_store.py
• rag_with_ai/data/conversations.sqlite
Çalışma zamanı Python’dır; bağımlılıklar rag_with_ai/requirements.txt içinde tanımlanır. Harici model hizmeti yerel Ollama’dır: klasik projede gemma3:4b, çok-ajanlı projede Qwen2.5-7B. Yerel GPU/VRAM kaynak yönetimi ayrıca ele alınır: rag_with_ai/src/vram_manager.py.
Main entry points: graph.py İstek orkestrasyon graphı · rag_pipeline_agent.py RAG pipeline ajanı · data_imputation_agent.py Veri imputation ajanı · main.py HTTP API ve statik UI
Components 17
Klasik RAG prototipi
Sıralı eğitim hattı.
- Veri hazırlama
custom-rag/003.DataPreparation.py - Chunk ve Chroma yükleme
custom-rag/005.LoadChunksToChroma.py - RAG chatbot
custom-rag/008.RAGChatbot.py
Çok-ajanlı RAG
API üzerinden çalışan üretim hattı.
- HTTP API ve statik UI
rag_with_ai/src/api/main.py - Konuşma deposu
rag_with_ai/src/api/conversation_store.py - İstek orkestrasyon graphı · İsteği SQL veya semantik RAG yoluna yönlendirir.
rag_with_ai/src/graph.py - Graph state · Ajanlar arası istek, kanıt ve yanıt verisini taşır.
rag_with_ai/src/graph_state.py - Veri imputation ajanı · Eksik veriyi retrieval öncesi ele alır.
rag_with_ai/src/agents/data_imputation_agent.py - Retrieval kurulum ajanı
rag_with_ai/src/agents/retrieval_setup_agent.py - RAG pipeline ajanı · Sorgu ve alınan bağlamdan LLM yanıtı sentezler.
rag_with_ai/src/agents/rag_pipeline_agent.py - QA değerlendirme ajanı · Yanıtın bağlama sadakatini denetler.
rag_with_ai/src/agents/qa_eval_agent.py - VRAM yöneticisi
rag_with_ai/src/vram_manager.py
Yerel veri depoları
- Ham parsel Excel
rag_with_ai/data/raw/2026-2__Çeyrek__Nisan-Mayıs-Haziran__Parsel_Tablosu (4).xlsx - Parsel SQLite · Sayım, toplama ve çoklu filtre sorgularının kaynak sınırı.
rag_with_ai/data/parsel.sqlite - Kalıcı Chroma indeksi
rag_with_ai/data/chroma_index/chroma.sqlite3 - Konuşmalar SQLite
rag_with_ai/data/conversations.sqlite
Other components
- Yerel Ollama · Üretim yolunda Qwen2.5-7B kullanılır.
Connections 17
- Veri hazırlama → Chunk ve Chroma yükleme: hazırlanmış veri
- Chunk ve Chroma yükleme → RAG chatbot: embedding ve retrieval
- HTTP API ve statik UI → Konuşma deposu: oturum işlemleri
- Konuşma deposu → Konuşmalar SQLite: kalıcı geçmiş
- HTTP API ve statik UI → İstek orkestrasyon graphı: kullanıcı isteği
- İstek orkestrasyon graphı → Graph state: durumu yönetir
- Ham parsel Excel → Veri imputation ajanı: eksik kaynak veri
- Veri imputation ajanı → Parsel SQLite: iyileştirilmiş tablo verisi
- Veri imputation ajanı → Retrieval kurulum ajanı: retrieval öncesi kalite
- Retrieval kurulum ajanı → Kalıcı Chroma indeksi: indeksi hazırlar/kullanır
- İstek orkestrasyon graphı → Parsel SQLite: yapısal ve agregasyon sorguları
- İstek orkestrasyon graphı → RAG pipeline ajanı: semantik istekler
- Kalıcı Chroma indeksi → RAG pipeline ajanı: alınan bağlam
- RAG pipeline ajanı → QA değerlendirme ajanı: taslak yanıt ve kanıt
- QA değerlendirme ajanı → HTTP API ve statik UI: doğrulanmış yanıt
- RAG pipeline ajanı → Yerel Ollama: yanıt sentezi
- VRAM yöneticisi → Yerel Ollama: yerel GPU/VRAM