| # FitTürkAI RAG Sistemi - CPU Optimize Linux Versiyonu |
|
|
| 🏋️ **FitTürkAI**, Türkçe fitness ve sağlık danışmanlığı için geliştirilmiş Retrieval-Augmented Generation (RAG) sistemidir. Bu versiyon **CPU kullanımı için optimize edilmiştir** ve **Google Colab** gibi Linux ortamlarında sorunsuz çalışır. |
|
|
| ## 🚀 Özellikler |
|
|
| - **CPU Optimize Edilmiş**: GPU gerektirmez, CPU'da verimli çalışır |
| - **Türkçe Dil Desteği**: Türkçe dokümanları işler ve yanıtlar |
| - **RAG Sistemi**: PDF ve JSON belgelerinden bilgi çıkarır ve kullanır |
| - **Interactive Chat**: Gerçek zamanlı soru-cevap sistemi |
| - **LoRA Adapter Desteği**: Fine-tune edilmiş modelleri destekler |
| - **Linux Uyumlu**: Google Colab, Ubuntu, ve diğer Linux dağıtımlarında çalışır |
|
|
| ## 📋 Sistem Gereksinimleri |
|
|
| ### Minimum Gereksinimler |
| - **RAM**: En az 4 GB (8 GB önerilir) |
| - **Disk**: 5 GB boş alan |
| - **İşletim Sistemi**: Linux (Ubuntu, Google Colab vb.) |
| - **Python**: 3.8 veya üzeri |
|
|
| ### Google Colab İçin |
| - Ücretsiz Google Colab hesabı yeterlidir |
| - GPU gerekmez (CPU modunda çalışır) |
|
|
| ## 🛠️ Kurulum |
|
|
| ### 1. Google Colab'da Hızlı Kurulum |
|
|
| ```python |
| # Google Colab'da yeni bir notebook oluşturun ve şunu çalıştırın: |
| |
| # 1. Repository'yi klonlayın |
| !git clone https://github.com/YOUR_USERNAME/FitTurkAI-RAG.git |
| %cd FitTurkAI-RAG |
| |
| # 2. Otomatik kurulum scriptini çalıştırın |
| !python colab_setup_and_run.py |
| ``` |
|
|
| ### 2. Manuel Kurulum |
|
|
| ```bash |
| # 1. Repository'yi klonlayın |
| git clone https://github.com/YOUR_USERNAME/FitTurkAI-RAG.git |
| cd FitTurkAI-RAG |
| |
| # 2. Python sanal ortamı oluşturun (opsiyonel) |
| python -m venv venv |
| source venv/bin/activate # Linux/Mac |
| |
| # 3. Gerekli paketleri yükleyin |
| pip install -r requirements.txt |
| |
| # 4. NLTK verilerini indirin |
| python -c "import nltk; nltk.download('punkt'); nltk.download('stopwords')" |
| ``` |
|
|
| ## 📁 Klasör Yapısı |
|
|
| ``` |
| FitTurkAI-RAG/ |
| ├── test.py # Ana RAG sistemi (CPU optimize) |
| ├── colab_setup_and_run.py # Google Colab kurulum scripti |
| ├── requirements.txt # CPU için paket listesi |
| ├── README.md # Bu dosya |
| ├── indirilen_pdfler/ # PDF dosyalarınız (oluşturulacak) |
| ├── DATA/ # JSON veri dosyalarınız (oluşturulacak) |
| ├── fitness_rag_store_merged/ # Vector store (oluşturulacak) |
| └── fine_tuned_FitTurkAI_QLoRA/ # LoRA adapter (opsiyonel) |
| ``` |
|
|
| ## 🚴♀️ Kullanım |
|
|
| ### 1. Temel Kullanım |
|
|
| ```python |
| # Ana scripti çalıştırın |
| python test.py |
| ``` |
|
|
| ### 2. Google Colab'da Programmatik Kullanım |
|
|
| ```python |
| from test import FitnessRAG, RAGConfig |
| |
| # Konfigürasyon oluşturun |
| config = RAGConfig( |
| peft_model_path=None # Base model kullanmak için None yapın |
| ) |
| |
| # RAG sistemini başlatın |
| rag_system = FitnessRAG(config) |
| |
| # Bilgi tabanını oluşturun (ilk çalıştırmada) |
| rag_system.build_knowledge_base( |
| pdf_dir="./indirilen_pdfler", |
| json_dir="./DATA" |
| ) |
| |
| # Soru sorun |
| answer = rag_system.ask("Sağlıklı kahvaltı için ne önerirsiniz?") |
| print(answer) |
| |
| # Interactive mode başlatın |
| rag_system.interactive_chat() |
| ``` |
|
|
| ### 3. Veri Ekleme |
|
|
| #### PDF Dosyaları |
| ```bash |
| # PDF'lerinizi bu klasöre koyun |
| cp your_fitness_pdfs/*.pdf ./indirilen_pdfler/ |
| ``` |
|
|
| #### JSON Verileri |
| ```python |
| # Örnek JSON formatı |
| { |
| "soru": "Egzersiz öncesi ne yemeli?", |
| "cevap": "Egzersiz öncesi hafif, karbonhidrat ağırlıklı besinler tercih edin..." |
| } |
| ``` |
|
|
| ## ⚙️ Konfigürasyon |
|
|
| `RAGConfig` sınıfında özelleştirilebilir parametreler: |
|
|
| ```python |
| config = RAGConfig( |
| # Veri parametreleri |
| chunk_size=300, # Kelime başına chunk boyutu |
| chunk_overlap_sentences=2, # Overlap cümle sayısı |
| retrieval_k=5, # Kaç belge getirilecek |
| |
| # Model parametreleri |
| generator_model_name="ytu-ce-cosmos/Turkish-Llama-8b-v0.1", |
| peft_model_path=None, # LoRA adapter yolu |
| |
| # Performans parametreleri |
| max_context_length=3000 # Maksimum context uzunluğu |
| ) |
| ``` |
|
|
| ## 🔧 Sorun Giderme |
|
|
| ### Yaygın Sorunlar |
|
|
| #### 1. Bellek Hatası (OOM) |
| ```python |
| # Chunk boyutunu küçültün |
| config = RAGConfig(chunk_size=200, max_context_length=2000) |
| ``` |
|
|
| #### 2. Model Yükleme Hatası |
| ```python |
| # Base model kullanın (LoRA olmadan) |
| config = RAGConfig(peft_model_path=None) |
| ``` |
|
|
| #### 3. NLTK Veri Hatası |
| ```python |
| import nltk |
| nltk.download('punkt_tab') # Yeni NLTK sürümü için |
| nltk.download('punkt') # Eski NLTK sürümü için |
| nltk.download('stopwords') |
| ``` |
|
|
| ### Google Colab Özel Çözümler |
|
|
| #### GPU'yu Kapatın |
| ```python |
| import os |
| os.environ['CUDA_VISIBLE_DEVICES'] = '' # GPU'yu devre dışı bırak |
| ``` |
|
|
| #### Bellek Optimizasyonu |
| ```python |
| # Büyük modeller için |
| import torch |
| torch.set_num_threads(2) # CPU thread sayısını sınırla |
| ``` |
|
|
| ## 📊 Performans Optimizasyonları |
|
|
| ### CPU İçin İpuçları |
|
|
| 1. **Model Boyutu**: Daha küçük embedding modelleri kullanın |
| 2. **Chunk Size**: Daha küçük chunk'lar daha hızlıdır |
| 3. **Thread Sayısı**: CPU çekirdek sayınıza göre ayarlayın |
| 4. **Batch Size**: Tek seferde işlenecek belge sayısını sınırlayın |
|
|
| ```python |
| # Hızlı konfigürasyon |
| fast_config = RAGConfig( |
| embedding_model_name="paraphrase-multilingual-MiniLM-L6-v2", # Daha küçük |
| chunk_size=200, |
| retrieval_k=3, |
| max_context_length=2000 |
| ) |
| ``` |
|
|
| ## 🤝 Katkıda Bulunma |
|
|
| 1. Fork edin |
| 2. Feature branch oluşturun (`git checkout -b feature/AmazingFeature`) |
| 3. Commit yapın (`git commit -m 'Add some AmazingFeature'`) |
| 4. Push edin (`git push origin feature/AmazingFeature`) |
| 5. Pull Request açın |
|
|
| ## 📝 Değişiklik Notları |
|
|
| ### v2.0 - CPU Optimized |
| - ✅ GPU bağımlılığı kaldırıldı |
| - ✅ CPU için optimize edildi |
| - ✅ Google Colab desteği eklendi |
| - ✅ Otomatik kurulum scripti eklendi |
| - ✅ Bellek optimizasyonları |
|
|
| ### v1.0 - GPU Version |
| - ⚠️ Bu versiyon GPU gerektiriyordu (deprecated) |
|
|
| ## 📞 Destek |
|
|
| - **Issues**: GitHub Issues bölümünü kullanın |
| - **Discussions**: Genel sorular için GitHub Discussions |
| - **Email**: [your-email@domain.com] |
|
|
| ## 📄 Lisans |
|
|
| Bu proje MIT lisansı altında lisanslanmıştır - detaylar için [LICENSE](LICENSE) dosyasına bakın. |
|
|
| ## 🙏 Teşekkürler |
|
|
| - Hugging Face Transformers ekibine |
| - Turkish LLaMA projesine |
| - Sentence Transformers ekibine |
| - FAISS ekibine |
|
|
| --- |
|
|
| ⭐ **Bu projeyi beğendiyseniz, lütfen yıldızlamayı unutmayın!** |