import gradio as gr import pandas as pd import csv from transformers import pipeline # Modeli yükle model = pipeline("question-answering", model="savasy/bert-base-turkish-squad") # Soru-cevap fonksiyonu def answer_question(file, question): try: if file is None: return "Lütfen önce bir CSV dosyası yükleyin." # Dosyayı aç ve CSV olarak yükle, hatalı satırları atla df = pd.read_csv(file.name, encoding='ISO-8859-1', sep=';', on_bad_lines='skip', quoting=csv.QUOTE_NONE) # CSV verisini metne dönüştür context = df.to_string(index=False) # Hugging Face pipeline kullanarak soru-cevap yap result = model(question=question, context=context) answer = result["answer"] score = result["score"] return f"Yanıt: {answer}\n(Güven skoru: {score:.2f})" except Exception as e: return f"Hata: {e}" # Gradio arayüzü demo = gr.Interface( fn=answer_question, inputs=[ gr.File(label="📂 CSV Dosyası", file_types=[".csv"]), gr.Textbox(label="💬 Soru", placeholder="Örn: Kişinin yaşı nedir?") ], outputs="text", title="🧠 Türkçe Soru-Cevap Chatbot", description="Yüklediğiniz CSV dosyasına göre sorular sorabilirsiniz. Model: savasy/bert-base-turkish-squad" ) if __name__ == "__main__": demo.launch()