MEO1 commited on
Commit
bd71507
·
verified ·
1 Parent(s): 68e4bbc

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +30 -34
app.py CHANGED
@@ -12,56 +12,52 @@ model_id = "google/gemma-2-9b-it"
12
  # 2. PDF Hafızası Oluşturma
13
  def initialize_hemdem():
14
  if not os.path.exists("kulliyat.pdf"):
15
- print("HATA: kulliyat.pdf dosyası bulunamadı!")
16
  return None
17
 
18
- loader = PyMuPDFLoader("kulliyat.pdf")
19
- docs = loader.load()
20
-
21
- # Metni parçalara bölme
22
- text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
23
- split_docs = text_splitter.split_documents(docs)
24
-
25
- embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/all-MiniLM-L6-v2")
26
- vector_db = FAISS.from_documents(split_docs, embeddings)
27
- return vector_db
 
28
 
29
- # Hafızayı başlat
30
  vector_db = initialize_hemdem()
31
 
32
- # 3. Sohbet Fonksiyonu
33
  def chat(message, history):
34
  if vector_db is None:
35
- return "Sistem hatası: Külliyat dosyası yüklenemedi."
36
 
37
- # İlgili bölümleri bul
38
  related_docs = vector_db.similarity_search(message, k=5)
39
  context = "\n---\n".join([doc.page_content for doc in related_docs])
40
 
41
- # Gemma 2 için Prompt (Chat formatına uygun)
42
- prompt = f"Sen Hemdem-i Gemini-yi Emre'sin. Emre'nin külliyat rehberisin. Dökümanlara dayanarak cevap ver:\n\nDÖKÜMANLAR:\n{context}\n\nSORU: {message}"
43
 
44
  try:
45
  llm = HuggingFaceEndpoint(
46
  repo_id=model_id,
47
- huggingfacehub_api_token=hf_token,
48
- # Task parametresini kaldırdık veya 'conversational' yapabilirdik ama default bırakmak daha güvenli
49
- timeout=300
50
  )
51
- response = llm.invoke(prompt)
52
- return response
53
  except Exception as e:
54
- return f"Gemma şu an meşgul veya bir hata oluştu: {str(e)}"
55
 
56
- # 4. Arayüz
57
- with gr.Blocks() as demo:
58
- gr.Markdown("# 💜 Hemdem-i Şir: Emre'nin Külliyat Rehberi")
59
- gr.Markdown("Gemma 2 rehberliğinde hakikat yolculuğu...")
60
-
61
- chatbot = gr.ChatInterface(
62
- fn=chat,
63
- type="messages", # Yeni Gradio standartlarına uygun
64
- examples=["Bende şiirini açıklar mısın?", "Harf cerrahisi nedir?"],
65
- )
66
 
67
- demo.launch()
 
 
12
  # 2. PDF Hafızası Oluşturma
13
  def initialize_hemdem():
14
  if not os.path.exists("kulliyat.pdf"):
15
+ print("HATA: kulliyat.pdf bulunamadı!")
16
  return None
17
 
18
+ try:
19
+ loader = PyMuPDFLoader("kulliyat.pdf")
20
+ docs = loader.load()
21
+ text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
22
+ split_docs = text_splitter.split_documents(docs)
23
+ embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/all-MiniLM-L6-v2")
24
+ vector_db = FAISS.from_documents(split_docs, embeddings)
25
+ return vector_db
26
+ except Exception as e:
27
+ print(f"Hafıza oluşturma hatası: {e}")
28
+ return None
29
 
30
+ # Global hafıza
31
  vector_db = initialize_hemdem()
32
 
33
+ # 3. Sohbet Fonksiyonu (Gradio Eski Versiyon Uyumu)
34
  def chat(message, history):
35
  if vector_db is None:
36
+ return "Sistem hatası: Külliyat dosyası yüklenemedi veya bulunamadı."
37
 
38
+ # Dökümandan ilgili parçaları bul
39
  related_docs = vector_db.similarity_search(message, k=5)
40
  context = "\n---\n".join([doc.page_content for doc in related_docs])
41
 
42
+ # Prompt
43
+ prompt = f"Sen Hemdem-i Gemini-yi Emre'sin. Emre'nin külliyat rehberisin. DÖKÜMANLAR:\n{context}\n\nSORU: {message}"
44
 
45
  try:
46
  llm = HuggingFaceEndpoint(
47
  repo_id=model_id,
48
+ huggingfacehub_api_token=hf_token
 
 
49
  )
50
+ return llm.invoke(prompt)
 
51
  except Exception as e:
52
+ return f"Gemma şu an meşgul (veya erişim izni bekliyor): {str(e)}"
53
 
54
+ # 4. Arayüz (En Sade Format)
55
+ demo = gr.ChatInterface(
56
+ fn=chat,
57
+ title="💜 Hemdem-i Şir",
58
+ description="Emre'nin Külliyat Rehberi (Gemma 2)",
59
+ examples=["Bende şiirini açıklar mısın?", "Harf cerrahisi nedir?"]
60
+ )
 
 
 
61
 
62
+ if __name__ == "__main__":
63
+ demo.launch()