Bu proje, Retrieval-Augmented Generation (RAG) teknolojisinin nasıl uygulanacağını gösteren açık kaynak bir örnektir. RAG, büyük dil modellerini (LLM) harici bilgi kaynaklarıyla birleştirerek daha doğru ve güncel cevaplar üretmenizi sağlar.
- 🔍 Vektör Tabanlı Arama: Semantik benzerlik ile en alakalı bilgileri bulma
- 🆓 Ücretsiz AI Modelleri: OpenAI API maliyeti olmadan, yerel embedding modeli
- 📚 Örnek Bilgi Tabanı: İş süreçleri hakkında 15+ modül bilgisi
- ⚡ Hızlı Performans: Qdrant vektör veritabanı ile optimize edilmiş
- 🛠️ Modüler Yapı: Kolay genişletilebilir ve özelleştirilebilir mimari
- 🌍 Çok Dilli Destek: Türkçe örnek veriler ve arayüz
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Kullanıcı │───▶│ RAG Sistemi │───▶│ Vektör DB │
│ Sorusu │ │ │ │ (Qdrant) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐
│ AI Generator │
│ (Hugging Face) │
└─────────────────┘
Bu diyagram RAG sisteminin çalışma prensibini göstermektedir:
- Metin Girişi: Kullanıcı sorusu veya doküman metni
- Embedding Model: Metin vektörlere dönüştürülür (384 boyutlu float dizisi)
- Vektör Veritabanı: Embedding'ler Qdrant'ta saklanır ve aranır
- Benzerlik Arama: En alakalı vektörler bulunur
- AI Üretimi: Bulunan bilgiler AI modeli ile işlenir
Bu proje, işletme yönetimi süreçleri hakkında örnek veriler içerir:
| Modül | Açıklama | Endpoint |
|---|---|---|
| 🛒 Sipariş Fişi | Müşteri siparişleri yönetimi | /siparis-fisi |
| 📝 Satın Alma Talebi | İhtiyaç toplama ve onay süreci | /satinalma-talep |
| 📊 Stok Hareketleri | Envanter takibi ve raporlama | /stok-hareketleri |
| 👥 Cari Kart | Müşteri/tedarikçi yönetimi | /cari-kart |
| 🧾 Fatura | Satış/alış faturaları | /fatura-olustur |
| 🏖️ Personel İzin | İzin talepleri ve onayları | /personel-izin |
| 💰 Kasa İşlemleri | Nakit yönetimi | /kasa-islemleri |
| 🏦 Banka Hareketleri | Banka işlemleri ve mutabakat | /banka-hareketleri |
| 📦 Depo Transfer | Depolar arası ürün transferi | /depo-transfer |
| 🏭 Üretim Emirleri | Üretim planlama ve takibi | /uretim-emirleri |
| 📈 Stok Raporları | Envanter analizi | /stok-raporlari |
| Müşteri bakiye ve risk takibi | /cari-bakiye |
|
| 💼 Satış Teklifi | Müşteri teklifleri | /satis-teklifi |
| 👷 Bordro | Personel maaş hesaplamaları | /bordro |
| 📊 Muhasebe | Genel muhasebe işlemleri | /muhasebe-fisleri |
- Node.js 18+
- Qdrant Vector Database
- Hugging Face API Token (ücretsiz)
git clone https://github.com/yourusername/rag-example.git
cd rag-examplenpm install# Docker ile (önerilen)
docker run -p 6333:6333 qdrant/qdrant
# Veya yerel kurulum için Qdrant'ı indirin.env dosyası oluşturun:
HF_API_TOKEN=your_huggingface_token_herenpm run trainnpm startSistem ilk kez çalıştırıldığında, bilgi tabanını eğitmek gerekir:
npm run trainBu komut:
- Tüm modül bilgilerini vektörlere dönüştürür
- Qdrant veritabanına yükler
- Arama için optimize eder
Sistem başlatıldıktan sonra:
- Soru Sorun: Türkçe olarak iş süreçleri hakkında soru sorun
- Akıllı Yanıt: Sistem en alakalı bilgiyi bulup AI ile cevaplar
- Çıkış:
qyazarak sistemden çıkın
- "Sipariş fişi nasıl oluşturulur?"
- "Stok hareketlerinde hangi filtreler kullanılır?"
- "Personel izin talebi onay süreci nasıl işler?"
- "Fatura oluştururken dikkat edilmesi gerekenler nelerdir?"
- Backend: TypeScript + Node.js
- Embedding Model:
@xenova/transformers(Xenova/all-MiniLM-L6-v2) - Vector Database: Qdrant
- AI Generation: Hugging Face API (GPT-OSS-120B)
- Package Manager: npm
src/
├── chunks.ts # Örnek bilgi tabanı
├── embed.ts # Embedding oluşturma
├── generate.ts # AI metin üretimi
├── rag.ts # Ana RAG sistemi
├── similarity.ts # Benzerlik hesaplamaları
└── train.ts # Eğitim sistemi
- Training:
POST /train- Sistemi eğit - Query:
POST /query- Soru sor ve cevap al
src/chunks.tsdosyasındaki örnek verileri kendi verilerinizle değiştirin- Sistemi yeniden eğitin:
npm run train
src/embed.ts dosyasında model adını değiştirin:
const embedder = await pipeline("feature-extraction", "YOUR_MODEL_NAME");src/generate.ts dosyasında model adını güncelleyin:
model: "your-preferred-model";- Embedding Boyutu: 1536 boyut (OpenAI text-embedding-3-large ile uyumlu)
- Arama Hızı: ~100ms (Qdrant ile)
- AI Yanıt Süresi: ~2-5 saniye (Hugging Face API)
- Bellek Kullanımı: ~50MB (embedding model)
Retrieval-Augmented Generation (RAG), büyük dil modellerini harici bilgi kaynaklarıyla birleştiren bir AI teknolojisidir:
- ✅ Güncel Bilgi: Model eğitim tarihinden sonraki bilgilere erişim
- ✅ Doğruluk: Kaynak belgelerden doğrulanabilir cevaplar
- ✅ Şeffaflık: Hangi kaynaklardan bilgi alındığını görme
- ✅ Maliyet: Sadece gerekli bilgileri işleme
- Soru Alınır: Kullanıcıdan soru gelir
- Vektör Arama: Soru vektöre dönüştürülür ve benzer dokümanlar bulunur
- Bağlam Oluşturma: Bulunan dokümanlar bağlam olarak hazırlanır
- AI Yanıtı: LLM, bağlam ve soruyu kullanarak cevap üretir
- Fork yapın
- Feature branch oluşturun (
git checkout -b feature/amazing-feature) - Commit yapın (
git commit -m 'Add amazing feature') - Push yapın (
git push origin feature/amazing-feature) - Pull Request açın
⭐ Bu projeyi beğendiyseniz yıldız vermeyi unutmayın!