Spaces:
Sleeping
Sleeping
Update src/chatbot.py
Browse files- src/chatbot.py +31 -11
src/chatbot.py
CHANGED
|
@@ -18,38 +18,58 @@ from dotenv import load_dotenv
|
|
| 18 |
class TDKChatbot:
|
| 19 |
"""TDK Sözlük RAG Chatbot."""
|
| 20 |
|
| 21 |
-
def __init__(self, api_key=None, vector_store_path=
|
| 22 |
"""
|
| 23 |
Args:
|
| 24 |
api_key: Gemini API anahtarı
|
| 25 |
vector_store_path: Vector store dosya yolu
|
| 26 |
"""
|
|
|
|
|
|
|
| 27 |
# Environment variables yükle
|
| 28 |
load_dotenv()
|
| 29 |
-
|
| 30 |
# API key kontrolü
|
| 31 |
self.api_key = api_key or os.getenv('GEMINI_API_KEY')
|
| 32 |
if not self.api_key:
|
| 33 |
-
raise ValueError("GEMINI_API_KEY bulunamadı!
|
| 34 |
-
|
| 35 |
-
print("
|
| 36 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 37 |
# Gemini'yi yapılandır
|
| 38 |
genai.configure(api_key=self.api_key)
|
| 39 |
-
|
| 40 |
-
# Gemini modelini seç (2.0 Flash - hızlı ve güçlü)
|
| 41 |
self.model = genai.GenerativeModel('gemini-2.0-flash-exp')
|
| 42 |
-
print("Gemini 2.0 Flash
|
| 43 |
-
|
| 44 |
# Embedding modelini yükle
|
| 45 |
print("Embedding modeli yükleniyor...")
|
| 46 |
self.embedder = EmbeddingModel()
|
| 47 |
-
|
| 48 |
# Vector store'u yükle
|
| 49 |
print("Vector store yükleniyor...")
|
| 50 |
self.vector_store = FAISSVectorStore()
|
|
|
|
|
|
|
|
|
|
|
|
|
| 51 |
if not self.vector_store.load(vector_store_path):
|
| 52 |
raise ValueError("Vector store yüklenemedi!")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 53 |
|
| 54 |
print("Chatbot hazır!\n")
|
| 55 |
|
|
|
|
| 18 |
class TDKChatbot:
|
| 19 |
"""TDK Sözlük RAG Chatbot."""
|
| 20 |
|
| 21 |
+
def __init__(self, api_key=None, vector_store_path=None):
|
| 22 |
"""
|
| 23 |
Args:
|
| 24 |
api_key: Gemini API anahtarı
|
| 25 |
vector_store_path: Vector store dosya yolu
|
| 26 |
"""
|
| 27 |
+
from data_downloader import DataDownloader # İÇERİDE IMPORT
|
| 28 |
+
|
| 29 |
# Environment variables yükle
|
| 30 |
load_dotenv()
|
| 31 |
+
|
| 32 |
# API key kontrolü
|
| 33 |
self.api_key = api_key or os.getenv('GEMINI_API_KEY')
|
| 34 |
if not self.api_key:
|
| 35 |
+
raise ValueError("GEMINI_API_KEY bulunamadı!")
|
| 36 |
+
|
| 37 |
+
print("=" * 70)
|
| 38 |
+
print("TDK CHATBOT BAŞLATILIYOR")
|
| 39 |
+
print("=" * 70)
|
| 40 |
+
|
| 41 |
+
# DATASET'TEN DOSYALARI İNDİR
|
| 42 |
+
downloader = DataDownloader()
|
| 43 |
+
if not downloader.check_files():
|
| 44 |
+
print("\nVector store bulunamadı, dataset'ten indiriliyor...")
|
| 45 |
+
if not downloader.download_and_setup():
|
| 46 |
+
raise ValueError("Dosyalar indirilemedi!")
|
| 47 |
+
else:
|
| 48 |
+
print("Vector store dosyaları mevcut\n")
|
| 49 |
+
|
| 50 |
# Gemini'yi yapılandır
|
| 51 |
genai.configure(api_key=self.api_key)
|
|
|
|
|
|
|
| 52 |
self.model = genai.GenerativeModel('gemini-2.0-flash-exp')
|
| 53 |
+
print("Gemini 2.0 Flash hazır")
|
| 54 |
+
|
| 55 |
# Embedding modelini yükle
|
| 56 |
print("Embedding modeli yükleniyor...")
|
| 57 |
self.embedder = EmbeddingModel()
|
| 58 |
+
|
| 59 |
# Vector store'u yükle
|
| 60 |
print("Vector store yükleniyor...")
|
| 61 |
self.vector_store = FAISSVectorStore()
|
| 62 |
+
|
| 63 |
+
if vector_store_path is None:
|
| 64 |
+
vector_store_path = "./data/vector_store"
|
| 65 |
+
|
| 66 |
if not self.vector_store.load(vector_store_path):
|
| 67 |
raise ValueError("Vector store yüklenemedi!")
|
| 68 |
+
|
| 69 |
+
print("\n" + "=" * 70)
|
| 70 |
+
print("CHATBOT HAZIR!")
|
| 71 |
+
print("=" * 70)
|
| 72 |
+
print()
|
| 73 |
|
| 74 |
print("Chatbot hazır!\n")
|
| 75 |
|