Ana içeriğe geç
Sürüm: 2.0.0

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

screencapture-localhost-3000-2024-12-24-00_55_11

Dinamik RAG için Github Repo

görüntü

Ö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 indirilen gaianet Gaia CLI yüklendiğinde klasör)
  • Bu llama 3.2 dil modeli (otomatik indirilen gaianet Gaia CLI yüklendiğinde klasör. Kullanım durumunuza bağlı olarak modeli değiştirebilirsiniz)

Kurulum

  1. Depoyu klonlayın:
git clone https://github.com/harishkotra/dynamic-rag-gaia
cd dynamic-rag
  1. Bağımlılıkları yükleyin:
npm kurulumu
  1. GitIngest'i yükleyin:
pip install gitingest
  1. Qdrant sunucunuzun çalıştığından ve http://localhost:6333 adresinden erişilebilir olduğundan emin olun
  2. 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)
  3. Geliştirme sunucusunu başlatın:
npm run dev

Kullanım

  1. 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
  2. Soru Sor: Soru alanına sorgunuzu girin.
  3. İş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
  4. 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şen
  • app/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.