Spaces:
Runtime error
Runtime error
File size: 4,293 Bytes
0fdfd7f fc48af6 f41d4a6 0fdfd7f fc48af6 0fdfd7f fc48af6 0fdfd7f f41d4a6 9aaa2f1 0fdfd7f 9aaa2f1 0fdfd7f 9aaa2f1 a06f3b9 9aaa2f1 |
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 |
---
title: Sahaf.AI
emoji: 📚
colorFrom: red
colorTo: red
sdk: docker
app_port: 8501
tags:
- streamlit
pinned: false
short_description: Chatbot
license: apache-2.0
---
## Sahaf.AI
## Projenin Amacı
Bu projenin amacı, RAG (Retrieval Augmented Generation) mimarisi kullanarak belirli bir bilgi kaynağı (kitap özetleri ve detayları) hakkında uzmanlaşmış bir chatbot geliştirmektir. Chatbot, kullanıcıların sorularını, sağlanan metin verilerini referans alarak yanıtlayacak ve geliştirilen bu sistem, bir web arayüzü üzerinden sunulacaktır.
## Veri Seti Hakkında Bilgi
Bu projede, chatbot'un bilgi kaynağı olarak Kaggle üzerinde Muhammed İbrahim Top tarafından paylaşılan **"Turkish Book Data Set"** kullanılmıştır. Veri setindeki kitap açıklamaları, güçlü bir embedding modeli (`BAAI/bge-m3`) kullanılarak önceden işlenmiş ve bir ChromaDB vektör veritabanına dönüştürülmüştür. Bu hazır veritabanı, projenin hızlı bir şekilde çalıştırılabilmesi için depo içerisinde sunulmaktadır.
### Veri Seti Künyesi
* **Veri Seti Adı:** Turkish Book Data Set
* **Oluşturan:** Muhammed İbrahim Top
* **Kaynak:** [Kaggle](https://www.kaggle.com/datasets/muhammedbrahimtop/turkish-book-data-set)
* **Lisans:** [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0)
## Kullanılan Yöntemler ve Teknolojiler
Projenin çözüm mimarisini oluşturan temel teknolojiler şunlardır:
* **Hibrit RAG Mimarisi:** Proje, hibrit bir model üzerine kurulmuştur. Arama (Retrieval) işlemi yerel olarak çalışırken, cevap üretme (Generation) işlemi bulut tabanlı bir API üzerinden gerçekleştirilir.
* **LLM (Generation Model):** Cevap üretimi için **Google Gemini API** (`gemma-3-27b-it`) kullanılmıştır.
* **Embedding Model:** Anlamsal arama ve vektörleştirme işlemi için, yerel olarak çalışan ve yüksek performanslı **`BAAI/bge-m3`** Hugging Face modeli tercih edilmiştir.
* **Vektör Veritabanı:** **ChromaDB**, metin parçalarının vektör temsillerini depolamak ve verimli bir şekilde aramak için kullanılmıştır.
* **Pipeline Framework:** **LangChain**, RAG mimarisinin tüm bileşenlerini (retriever, prompt, LLM) birbirine bağlayan ana çatı olarak görev yapmıştır.
* **Web Arayüzü:** Uygulama, **Streamlit** kütüphanesi kullanılarak interaktif bir web arayüzüne dönüştürülmüştür.
* **Paket Yöneticisi:** Projenin bağımlılıkları, modern ve hızlı bir paket yöneticisi olan **`uv`** ile yönetilmiştir.
## Elde Edilen Sonuçlar
Proje sonucunda, belirlenen veri setindeki kitaplar hakkında sorulan sorulara akıcı ve doğru cevaplar üretebilen, kullanıcı dostu bir web uygulaması başarıyla geliştirilmiştir. Geliştirme sürecinde karşılaşılan API yapılandırma ve kütüphane bağımlılık sorunları, hibrit bir mimari ve belirli kütüphane versiyonlarının `requirements.txt` ile sabitlenmesi sayesinde aşılmıştır.
## Web Uygulaması Linki
https://huggingface.co/spaces/HayriTalha/Sahaf.AI
## Çalışma Kılavuzu
Bu proje, önceden oluşturulmuş veritabanı sayesinde hızlı bir şekilde çalıştırılabilir.
### 1. Kurulum Öncesi
* **Depoyu Klonlayın:**
```bash
git clone [https://github.com/KULLANICI_ADINIZ/Sahaf.AI.git](https://github.com/hayritalhaozkan/Sahaf.AI.git)
cd Sahaf.AI
```
* **API Anahtarı:** Projenin ana dizininde `.env` adında bir dosya oluşturun ve içine Google AI Studio'dan aldığınız API anahtarınızı aşağıdaki formatta ekleyin:
```bash
GOOGLE_API_KEY="AIzaSy..."
```
### 2. Ortam Kurulumu
* **Sanal Ortamı Kurun (`uv` ile):**
```bash
# Bu komut Windows, Linux ve macOS'ta aynıdır.
uv venv
```
* **Oluşturulan Sanal Ortamı Aktive Edin:**
* **Windows (PowerShell veya CMD):**
```bash
.\.venv\Scripts\activate
```
* **Linux / macOS (Bash/Zsh):**
```bash
source .venv/bin/activate
```
* **Gerekli Kütüphaneleri Yükleyin:**
```bash
uv pip install -r requirements.txt
```
### 3. Uygulamayı Çalıştırma
* **Uygulamayı Başlatın:** Artık hazırsınız! Veritabanı oluşturma adımlarına gerek kalmadan direkt uygulamayı çalıştırabilirsiniz.
```bash
streamlit run app.py
``` |