DynamicRAG
DynamicRAG, dinamik bir Retrieval-Augmented Generation (RAG) sistemi uygulayan React tabanlı bir web uygulamasıdır. Kullanıcıların metin girmesine, bunları gömülü olarak işlemesine ve vektör arama ile Büyük Dil Modellerinin bir kombinasyonunu kullanarak soru yanıtlama görevlerini gerçekleştirmesine olanak tanır.
bilgi
Bu örneği kurmak ve çalıştırmak için tüm kaynak kodu ve ayrıntılı talimatlar Gaia Cookbook deposunda bulunabilir.
Ekran Görüntüleri
Giriş metni tabanlı Dinamik RAG
Dinamik RAG için Github Repo
Özellikler
- Gerçek zamanlı metin işleme ve yığınlama
- Qdrant kullanarak dinamik vektör veritabanı oluşturma
- Büyük metin girdilerinin toplu işlenmesi
- Yerel bir Gaia düğümü ile entegrasyon
- GitIngest kullanarak GitHub depo analizi
- İlerleme takibi ve hata işleme
- Tailwind CSS ve shadcn/ui bileşenlerini kullanan temiz, duyarlı kullanıcı arayüzü
Ön Koşullar
- Node.js (v16 veya üstü)
- Python (GitIngest kurulumu için)
- Çalışan bir Qdrant örneği (yerel veya uzak)
- Gaia aracılığıyla 8080 numaralı bağlantı noktasında çalışan yerel bir LLM sunucusu (Öğretici: https://docs.gaianet.ai/node-guide/quick-start)
- Bu
nomic-embed
gömme modeli (otomatik indirilengaianet
Gaia CLI yüklendiğinde klasör) - Bu
llama 3.2
dil modeli (otomatik indirilengaianet
Gaia CLI yüklendiğinde klasör. Kullanım durumunuza bağlı olarak modeli değiştirebilirsiniz)
Kurulum
- Depoyu klonlayın:
git clone https://github.com/harishkotra/dynamic-rag-gaia
cd dynamic-rag
- Bağımlılıkları yükleyin:
npm kurulumu
- GitIngest'i yükleyin:
pip install gitingest
- Qdrant sunucunuzun çalıştığından ve http://localhost:6333 adresinden erişilebilir olduğundan emin olun
- Gaia düğümünüzün çalıştığından ve http://localhost:8080 adresinden erişilebilir olduğundan emin olun (Öğretici: https://docs.gaianet.ai/node-guide/quick-start)
- Geliştirme sunucusunu başlatın:
npm run dev
Kullanım
- Giriş Modunu seçin:
- Metin Girişi: Bilgi tabanı metninizi giriş metin alanına yapıştırın
- GitHub Deposu: İçeriğini analiz etmek için bir GitHub deposu URL'si girin
- Soru Sor: Soru alanına sorgunuzu girin.
- İşlemi gerçekleştirin: Sorgunuzu işleme koymak için "Gönder "e tıklayın. Sistem şunları yapacaktır:
- Metin girişi için: Giriş metnini yönetilebilir parçalara bölün
- GitHub depoları için: GitIngest kullanarak depo içeriğini getirin ve işleyin
- Her yığın için katıştırmalar oluşturun
- Katıştırmaları geçici bir Qdrant koleksiyonunda saklayın
- Vektör benzerlik aramasını kullanarak ilgili bağlamı bulun
- Yerel Gaia Düğümünü kullanarak bir cevap oluşturun
- Sonuçları Görüntüle: Sistem, bulunan ilgili içeriğe dayalı olarak oluşturulan yanıtı görüntüleyecektir.
Teknik Ayrıntılar
Metin İşleme
- Maksimum yığın boyutu: 2000 karakter
- Toplu işlem boyutu: Bir seferde 3 parça
- Parçalar doğal metin sınırları (paragraflar ve cümleler) temel alınarak oluşturulur
Vektör Veritabanı
- Vektör depolama ve benzerlik araması için Qdrant kullanır
- Her sorgu oturumu için geçici koleksiyonlar oluşturur
- Kullanımdan sonra koleksiyonları otomatik olarak temizler
- Yerleştirmeler için 768 boyutlu vektörler kullanır
API Entegrasyonu
- OpenAI tarzı API uç noktaları ile uyumlu
- Hem katıştırmaları hem de sohbet tamamlama uç noktalarını destekler
- Kullanır
nomic-embed
katıştırmalar için model - Kullanır
lama
metin üretimi için model - Depo analizi için GitIngest ile entegre olur
- NextKomut satırı araç entegrasyonu için JS API rotaları
Bileşenler
DynamicRAG.js
: RAG sistemini uygulayan ana bileşenapp/api/gitingest/route.js
: GitHub depolarının işlenmesi için API rotası- Girdi işleme ve doğrulama
- İlerleme takibi ve hata gösterimi
- Vektör veritabanı yönetimi
- LLM entegrasyonu
Hata İşleme
Sistem, aşağıdakiler için kapsamlı hata işleme içerir:
- Metin işleme hataları
- GitHub deposu getirme ve analiz hataları
- Yerleştirme oluşturma hataları
- Vektör veritabanı işlemleri
- LLM sorgu hataları
- Ağ sorunları
Bağımlılıklar
- React
- Tailwind CSS
- shadcn/ui bileşenleri
- Fayda fonksiyonları için Lodash
- Çeşitli UI bileşenleri (@/components/ui/*)
bilgi
Bu örneği kurmak ve çalıştırmak için tüm kaynak kodu ve ayrıntılı talimatlar Gaia Cookbook deposunda bulunabilir.