RAG-LLM, belgelere dayalı bir chatbot oluşturmayı hedefleyen bir projedir. Proje, farklı bileşenleri yönetmek için çeşitli modüller içermektedir.
Bu klasör, chatbot'un temel bileşenlerini içerir:
- API anahtarı yönetimi
- Sistem talimatları (System Instructions)
- Sohbet geçmişi işleme
Bu klasör, farklı dosya formatlarını işlemek için kullanılan kodları içerir:
- PDF Okuma: PDF belgelerini okuma ve işleme
- CSV Okuma: CSV dosyalarından veri okuma (her satır tek bir belge olarak işlenir)
- Metin Bölme: Büyük metinleri daha küçük parçalara bölme
- Düzenleme ve ön işleme: Veriyi ChromaDB için hazırlama
Önemli: CSV dosyalarında her satır tek bir belge (document) olarak eklenir ve parçalanmaz!
Bu klasör, belirli bir sorguya yönelik olarak ChromaDB koleksiyonundan belgeleri alır ve işleyerek en uygun sonuçları belirler:
- Sorgu tabanlı belge getirme
- Uzaklık/yakınlık hesaplama
- Sonuç düzenleme ve gösterim
Bu klasör, dosya yükleme işlemleri ile ilgili yardımcı fonksiyonları içerir.
Bu klasör, vektör veri tabanı yönetimi için kullanılır:
- Veri ekleme (add)
- Veri kontrolü (check)
- Konfigürasyon ayarları (config)
- Veri tabanı oluşturma (create)
- Veri silme (delete)
- Veri tabanı yönetimi (manager, metadata)
Bu dosya, projeyi nasıl kullanacağınızı belirleyen ana betiktir. Kullanım senaryolarına göre özelleştirilebilir.
# uv kurulumu (eğer kurulu değilse)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Virtual environment oluştur
uv venv
# Virtual environment'ı aktive et
source .venv/bin/activate # Linux/Mac
# veya
.venv\Scripts\activate # Windows# uv ile (hızlı)
uv pip install -r requirements.txt
# veya standart pip ile
pip install -r requirements.txtProje kök dizininde .env dosyası oluşturun:
GOOGLE_API_KEY=your_google_api_key_here# Ana program (GUI ile dosya seçimi)
python main.py
# CSV test örneği
python test_csv.py- PDF: Akademik makaleler, raporlar, dökümanlar
- CSV: Veri setleri, tablolar (her satır bir belge olarak işlenir)
CSV dosyalarında her satır tek bir belge olarak eklenir ve parçalanmaz. Örnek CSV yapısı:
title,content,category,author
Başlık 1,İçerik metni buraya...,Kategori,Yazar Adı
Başlık 2,Diğer içerik...,Kategori,Yazar AdıHer satır şu formatta tek bir dokümana dönüştürülür:
title: Başlık 1 | content: İçerik metni buraya... | category: Kategori | author: Yazar Adı
Katkıda bulunmak isterseniz lütfen bir pull request (PR) açın veya bir issue oluşturun.
Bu proje açık kaynak olup, lisans bilgileri LICENSE dosyasında mevcuttur.