diginoron commited on
Commit
09d1da9
·
verified ·
1 Parent(s): e1de535

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +3 -32
app.py CHANGED
@@ -1,34 +1,15 @@
1
- import os
2
- import gradio as gr
3
- from sentence_transformers import SentenceTransformer
4
- from transformers import pipeline
5
- from pinecone import Pinecone, ServerlessSpec
6
-
7
- # بارگذاری مقادیر محرمانه
8
- PINECONE_API_KEY = os.environ.get("PINECONE_API_KEY")
9
- INDEX_NAME = os.environ.get("INDEX_NAME")
10
-
11
- # مدل embedding
12
- embedder = SentenceTransformer("sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2")
13
-
14
- # مدل زبانی
15
- generator = pipeline("text-generation", model="HooshvareLab/gpt2-fa")
16
-
17
- # اتصال به پایگاه Pinecone
18
- pc = Pinecone(api_key=PINECONE_API_KEY)
19
- index = pc.Index(INDEX_NAME)
20
-
21
  # تابع اصلی RAG
22
  def rag_chatbot(message, history):
23
- # پاسخ‌های ساده
24
  greetings = ["سلام", "سلام وقت بخیر", "درود", "خسته نباشید"]
25
  if message.strip() in greetings:
26
  return "سلام! چطور می‌تونم کمکتون کنم؟ 😊"
27
 
28
- # بردارگیری
29
  query_vector = embedder.encode(message).tolist()
30
  result = index.query(vector=query_vector, top_k=3, include_metadata=True)
31
 
 
 
 
32
  # ساخت context از نتایج
33
  context = "\n".join([match['metadata'].get("پاسخ", "") for match in result['matches']])
34
 
@@ -53,13 +34,3 @@ def rag_chatbot(message, history):
53
  return "متأسفم، پاسخ مشخصی برای این سوال ندارم."
54
 
55
  return answer
56
-
57
- # رابط چت
58
- chat_ui = gr.ChatInterface(
59
- fn=rag_chatbot,
60
- title="🤖 چت‌بات هوشمند تیام (نسخه RAG)",
61
- description="پاسخ‌گویی ترکیبی با داده‌های شرکت + تولید متن طبیعی هوشمند",
62
- theme="soft",
63
- )
64
-
65
- chat_ui.launch()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  # تابع اصلی RAG
2
  def rag_chatbot(message, history):
 
3
  greetings = ["سلام", "سلام وقت بخیر", "درود", "خسته نباشید"]
4
  if message.strip() in greetings:
5
  return "سلام! چطور می‌تونم کمکتون کنم؟ 😊"
6
 
 
7
  query_vector = embedder.encode(message).tolist()
8
  result = index.query(vector=query_vector, top_k=3, include_metadata=True)
9
 
10
+ if not result['matches']:
11
+ return "متأسفم، پاسخی در پایگاه داده پیدا نکردم."
12
+
13
  # ساخت context از نتایج
14
  context = "\n".join([match['metadata'].get("پاسخ", "") for match in result['matches']])
15
 
 
34
  return "متأسفم، پاسخ مشخصی برای این سوال ندارم."
35
 
36
  return answer