tiyam-chatbot / app.py
diginoron's picture
Update app.py
d260382 verified
# app.py
from sentence_transformers import SentenceTransformer
from pinecone import Pinecone
import json
import gradio as gr
# بارگذاری مدل embedding
model = SentenceTransformer('paraphrase-multilingual-MiniLM-L12-v2')
# بارگذاری داده محلی برای نمایش اولیه (در صورت نیاز)
with open("tiyam_qa_data.json", "r", encoding="utf-8") as f:
data = json.load(f)
# اتصال به Pinecone
pc = Pinecone(api_key="pcsk_6p6AmJ_Qua4tQN69badNHEGZTj3tt5Bd7LiyiDGcXDj92LxSaBzK2ypYxTRx2rafTEJhjL") # 🔐 جایگزین کن با کلیدت
index = pc.Index("tiyam-chat") # ایندکس از قبل ساخته‌شده
# تابع پاسخ‌گو
def retrieve_answer(query, threshold=0.65, top_k=1):
query_embedding = model.encode([query])[0]
result = index.query(vector=query_embedding.tolist(), top_k=top_k, include_metadata=True)
if result['matches'] and result['matches'][0]['score'] > threshold:
print(f"📊 Similarity: {result['matches'][0]['score']:.3f}")
metadata = result['matches'][0]['metadata']
return metadata.get('answer', 'پاسخ یافت نشد')
else:
return "متأسفم، پاسخ دقیقی برای این سوال نداریم. لطفاً با ما تماس بگیرید."
# رابط Gradio
def chat_interface(question):
return retrieve_answer(question)
demo = gr.Interface(fn=chat_interface, inputs="text", outputs="text", title="چت‌بات تیام", description="سؤالات خود را از آژانس دیجیتال مارکتینگ تیام بپرسید.")
demo.launch()