syurek commited on
Commit
07ce5d9
·
verified ·
1 Parent(s): 3f51f1b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +40 -26
app.py CHANGED
@@ -1,46 +1,60 @@
1
  import gradio as gr
2
- import json # json modülünü import ettik
3
  from transformers import pipeline
4
 
5
- # Sohbet modelini yükle (DialoGPT)
6
- chatbot = pipeline("text-generation", model="microsoft/DialoGPT-medium")
7
 
8
- # JSON dosyasındaki verilerden alınan sorulara cevap veren fonksiyon
9
- def answer_question(file, question):
 
 
10
  try:
11
- if file is None:
12
- return "Lütfen önce bir JSON dosyası yükleyin."
 
 
 
13
 
14
- # Dosyayı aç ve JSON olarak yükle
15
- with open(file.name, "r", encoding="utf-8") as f:
16
- data = json.load(f)
 
17
 
18
- # JSON verisini bir metin olarak oluştur
19
- context = json.dumps(data, ensure_ascii=False)
20
 
21
- # Eğer kullanıcı "kaç kişi" sorusunu sorarsa, JSON'daki kişi sayısını döndür
22
- if "kaç kişi" in question.lower():
23
- people_count = len(data) if isinstance(data, list) else 0
24
- return f"JSON verisinde {people_count} kişi var."
25
 
26
- # Eğer farklı bir şey sorulursa, sohbet modelini kullanarak yanıt ver
27
- response = chatbot(question, max_length=1000, num_return_sequences=1)[0]['generated_text']
28
- return response
29
 
30
- except Exception as e:
31
- return f"Hata: {e}"
 
 
 
 
 
 
 
 
 
 
32
 
33
  # Gradio arayüzü
34
  demo = gr.Interface(
35
- fn=answer_question,
36
  inputs=[
37
- gr.File(label="📂 JSON Dosyası", file_types=[".json"]),
38
- gr.Textbox(label="💬 Soru", placeholder="Örn: Kişinin yaşı nedir?")
39
  ],
40
  outputs="text",
41
- title="🧠 Türkçe Soru-Cevap Chatbot",
42
- description="Yüklediğiniz JSON dosyasına göre sorular sorabilirsiniz. Ayrıca doğal dilde sohbet edebilirsiniz."
43
  )
44
 
 
45
  if __name__ == "__main__":
46
  demo.launch()
 
1
  import gradio as gr
2
+ import pandas as pd
3
  from transformers import pipeline
4
 
5
+ # GPT-2 modelini yükle
6
+ chatbot = pipeline("text-generation", model="gpt2")
7
 
8
+ # CSV dosyasını yükle ve verileri al
9
+ def load_csv(file):
10
+ if file is None:
11
+ return "CSV dosyası yükleyin."
12
  try:
13
+ # CSV dosyasını yükle
14
+ df = pd.read_csv(file.name, encoding="ISO-8859-1")
15
+ return df
16
+ except Exception as e:
17
+ return f"Hata: {e}"
18
 
19
+ # Sohbet fonksiyonu
20
+ def chat_with_bot(user_input, csv_file):
21
+ # CSV dosyasından verileri al
22
+ csv_data = load_csv(csv_file)
23
 
24
+ if isinstance(csv_data, str): # Eğer hata mesajı döndürdüyse
25
+ return csv_data
26
 
27
+ # Kullanıcıdan gelen metinle modelden yanıt al
28
+ response = chatbot(user_input, max_length=100, num_return_sequences=1)
 
 
29
 
30
+ # Modelin cevabını al
31
+ bot_reply = response[0]['generated_text']
 
32
 
33
+ # CSV verileriyle ilgili bilgi ekle (örneğin, veriler hakkında bir soru sorulmuşsa)
34
+ # Burada, CSV dosyasındaki verilerle ilgili basit bir örnek ekliyoruz
35
+ if "kaç kişi" in user_input.lower():
36
+ num_people = len(csv_data)
37
+ bot_reply += f" CSV dosyasındaki kişi sayısı: {num_people}."
38
+
39
+ # Eğer başka bir soru varsa, CSV'den daha fazla bilgi ekleyebilirsiniz
40
+ if "yaş" in user_input.lower():
41
+ avg_age = csv_data['Yaş'].mean() if 'Yaş' in csv_data.columns else "bulunamadı"
42
+ bot_reply += f" CSV dosyasındaki ortalama yaş: {avg_age}."
43
+
44
+ return bot_reply
45
 
46
  # Gradio arayüzü
47
  demo = gr.Interface(
48
+ fn=chat_with_bot,
49
  inputs=[
50
+ gr.Textbox(label="💬 Senin Mesajın", placeholder="Buraya yaz ve botla sohbet et."),
51
+ gr.File(label="📂 CSV Dosyası", file_types=[".csv"]),
52
  ],
53
  outputs="text",
54
+ title="🧠 GPT-2 Sohbet Botu ve CSV Entegrasyonu",
55
+ description="CSV dosyasındaki verilerle etkileşime girerek GPT-2 tabanlı bir sohbet botu ile doğal dilde sohbet edin.",
56
  )
57
 
58
+ # Arayüzü başlat
59
  if __name__ == "__main__":
60
  demo.launch()