tiyam-chatbot / app.py
diginoron's picture
Update app.py
c036b5f verified
raw
history blame
1.71 kB
import gradio as gr
from sentence_transformers import SentenceTransformer
from pinecone import Pinecone
from transformers import pipeline
import json
# پیکربندی اتصال Pinecone
api_key = "pcsk_6p6AmJ_Qua4tQN69badNHEGZTj3tt5Bd7LiyiDGcXDj92LxSaBzK2ypYxTRx2rafTEJhjL"
index_name = "tiyam-chat"
region = "us-east-1"
# اتصال به Pinecone
pc = Pinecone(api_key=api_key)
index = pc.Index(index_name)
# مدل embedding برای بازیابی
embedder = SentenceTransformer("sentence-transformers/paraphrase-multilingual-mpnet-base-v2")
# مدل زبانی برای تولید پاسخ طبیعی
generator = pipeline("text-generation", model="HooshvareLab/gpt2-fa")
# تابع چت RAG
def rag_chatbot(message, history):
# مرحله 1: تبدیل سؤال به بردار
query_vector = embedder.encode(message).tolist()
# مرحله 2: جستجو در Pinecone
result = index.query(vector=query_vector, top_k=3, include_metadata=True)
context = "\n".join([match.metadata.get("پاسخ", "") for match in result.matches])
# مرحله 3: ساخت پرامپت ترکیبی
prompt = f"سؤال: {message}\nاطلاعات:\n{context}\nپاسخ:"
# مرحله 4: تولید پاسخ طبیعی
response = generator(prompt, max_new_tokens=100, do_sample=True, temperature=0.7)[0]['generated_text']
answer = response.split("پاسخ:")[-1].strip()
return answer
# رابط Gradio
demo = gr.ChatInterface(
fn=rag_chatbot,
title="🤖 چت‌بات هوشمند تیام (نسخه RAG)",
description="پاسخ‌گویی ترکیبی با داده‌های شرکت و تولید متنی هوشمند",
theme="soft"
)
demo.launch()