Spaces:
Sleeping
Sleeping
File size: 5,364 Bytes
00b28c1 65792b6 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 | ---
title: RAG Tabanlı Türkçe Tıbbi Chatbot
emoji: 🏢
colorFrom: indigo
colorTo: blue
sdk: streamlit
sdk_version: 1.37.0
app_file: app.py
pinned: false
---
# RAG Tabanlı Türkçe Tıbbi Chatbot
Bu proje, Türkçe tıbbi makaleler üzerinde **Retrieval-Augmented Generation (RAG)** teknolojisi kullanarak çalışan akıllı bir chatbot sistemidir. HuggingFace'ten yüklenen Türk hastanelerinin tıbbi makalelerini analiz ederek, kullanıcıların tıbbi sorularına profesyonel cevaplar verir.
## Özellikler
- **4000+ Tıbbi Makale**: Türk hastanelerinden toplanmış güncel tıbbi içerik
- **Türkçe Embedding Modeli**: `trmteb/turkish-embedding-model` ile optimize edilmiş arama
- **Google Gemini 2.0 Flash**: Gelişmiş dil modeli ile doğal cevaplar
- **ChromaDB Vector Store**: Hızlı ve etkili vektör arama
- **Streamlit Web Arayüzü**: Kullanıcı dostu web arayüzü
## Proje Yapısı
```
rag-based-chatbot/
├── rag_env/ # Python sanal ortamı
├── app.py # Ana uygulama
├── data_processing.py # Veri yükleme ve işleme
├── embedding_model.py # Türkçe embedding modeli
├── vector_store.py # ChromaDB vector store yönetimi
├── rag_pipeline.py # RAG pipeline mantığı
├── gemini_integration.py # Google Gemini API entegrasyonu
├── requirements.txt # Python bağımlılıkları
├── README.md
└── chroma_db/ # Vector store veritabanı (otomatik oluşur)
```
## Teknik Detaylar
### Veri İşleme Pipeline
1. **Veri Yükleme**: HuggingFace'ten [`umutertugrul/turkish-hospital-medical-articles`](https://huggingface.co/datasets/umutertugrul/turkish-hospital-medical-articles) veri seti
2. **Document Oluşturma**: Makaleler LangChain Document formatına dönüştürülür
3. **Veri Temizleme**: Boş ve kısa içerikler filtrelenir
4. **Kalite Kontrolü**: %98.6 başarı oranı ile işleme
### Kullanılan Teknolojiler
| Kategori | Teknoloji | Versiyon | Açıklama |
|----------|-----------|----------|----------|
| LLM | Google Gemini 2.0 Flash | Latest | Ana dil modeli |
| Embedding | trmteb/turkish-embedding-model | Latest | Türkçe vektörleştirme |
| Vector DB | ChromaDB | 0.4.0+ | Vektör veritabanı |
| Framework | LangChain | 0.1.0+ | RAG framework |
| Web UI | Streamlit | 1.28.0+ | Web arayüzü |
| Data | HuggingFace Datasets | 2.14.0+ | Veri yönetimi |
## Kurulum
### 1. Projeyi Klonlayın
```bash
git clone <repository-url>
cd rag-based-chatbot
```
### 2. Sanal Ortam Oluşturun
```bash
# Sanal ortam oluştur
python -m venv rag_env
# Sanal ortamı aktifleştir
# Windows:
rag_env\Scripts\activate
# macOS/Linux:
source rag_env/bin/activate
```
### 3. Bağımlılıkları Yükleyin
```bash
pip install -r requirements.txt
```
### 4. API Anahtarlarını Ayarlayın
`.env` dosyası oluşturun:
```bash
# .env dosyası oluştur
touch .env
```
`.env` dosyasına aşağıdaki anahtarları ekleyin:
```env
# Google Gemini API Anahtarı
GOOGLE_API_KEY=your_gemini_api_key_here
# HuggingFace Token (opsiyonel)
HUGGINGFACE_TOKEN=your_hf_token_here
```
#### API Anahtarlarını Nasıl Alırsınız?
**Google Gemini API:**
1. [Google AI Studio](https://makersuite.google.com/app/apikey) adresine gidin
2. Google hesabınızla giriş yapın
3. "Create API Key" butonuna tıklayın
4. Oluşturulan anahtarı kopyalayın
**HuggingFace Token:**
1. [HuggingFace](https://huggingface.co/settings/tokens) adresine gidin
2. "New token" butonuna tıklayın
3. "Read" yetkisi ile token oluşturun
## Kullanım
### 1. Konsol Uygulaması
```bash
python app.py
```
Bu komut:
- Veri setini yükler
- Document'ları oluşturur
- Embedding modelini yükler
- Vector store oluşturur/yükler
- RAG pipeline'ı test eder
- Etkileşimli chat modunu başlatır
### 2. Streamlit Web Arayüzü
```bash
streamlit run app.py
```
Web arayüzü `http://localhost:8501` adresinde açılır.
### 3. Google Colab ile Deneme
**Hızlı Başlangıç için Colab:**
1. **Colab Notebook'u Açın:**
```python
# Colab'da çalıştırın
!git clone https://github.com/your-username/rag-based-chatbot.git
%cd rag-based-chatbot
!pip install -r requirements.txt
```
2. **API Anahtarlarını Ayarlayın:**
```python
# Colab'da çalıştırın
import os
from google.colab import userdata
# Gemini API anahtarınızı girin
os.environ['GOOGLE_API_KEY'] = userdata.get('GOOGLE_API_KEY')
# HuggingFace token (opsiyonel)
os.environ['HUGGINGFACE_TOKEN'] = userdata.get('HUGGINGFACE_TOKEN')
```
3. **Veri Setini Analiz Edin:**
```python
# Colab'da çalıştırın
from data_processing import hf_load_dataset, explore_dataset
# Veri setini yükle ve analiz et
dataset = hf_load_dataset()
explore_dataset(dataset)
```
4. **RAG Pipeline'ı Test Edin:**
```python
# Colab'da çalıştırın
from app import main
# Ana uygulamayı çalıştır
main()
```
## Örnek Kullanım
**Tıbbi Tarayıcı** ile test edebileceğiniz örnek sorular:
• **"Migren ağrısı nasıl geçer?"**
• **"Kalp krizi belirtileri nelerdir?"**
• **"Grip aşısı ne zaman yaptırmalıyım?"**
• **"Yüksek tansiyon nasıl kontrol edilir?"**
• **"Baş ağrısı çeşitleri nelerdir?"** |