Younes13 commited on
Commit
7e7a410
·
verified ·
1 Parent(s): 0940467

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -16
app.py CHANGED
@@ -1,10 +1,10 @@
1
  import gradio as gr
2
  from sentence_transformers import SentenceTransformer, util
3
 
4
- # بارگذاری مدل SBERT فارسی
5
- embedder = SentenceTransformer("HooshvareLab/sbert-fa-zwnj-base")
6
 
7
- # پایگاه داده‌ی سوالات متداول (FAQ)
8
  faq_dict = {
9
  "زمان انتخاب واحد": "معمولاً پایان شهریور و بهمن است.",
10
  "زمان حذف و اضافه": "حدود یک هفته پس از شروع ترم تحصیلی است.",
@@ -13,29 +13,26 @@ faq_dict = {
13
  "شرایط مهمان شدن": "با موافقت دانشگاه مبدا و مقصد انجام می‌شود.",
14
  }
15
 
16
- # آماده‌سازی Embedding سوالات FAQ
17
  faq_questions = list(faq_dict.keys())
18
  faq_embeddings = embedder.encode(faq_questions, convert_to_tensor=True)
19
 
20
- # تابع پاسخ‌دهی با تشابه معنایی
21
  def student_bot(question):
22
  question_embedding = embedder.encode(question, convert_to_tensor=True)
23
  cos_scores = util.pytorch_cos_sim(question_embedding, faq_embeddings)[0]
24
  best_score = cos_scores.max().item()
25
  best_idx = cos_scores.argmax().item()
26
 
27
- if best_score >= 0.7: # آستانه شباهت
28
- best_question = faq_questions[best_idx]
29
- return faq_dict[best_question]
30
  else:
31
  return "❗️متاسفم، پاسخ این سؤال فعلاً در سیستم ثبت نشده است."
32
 
33
- # رابط کاربری Gradio
34
- iface = gr.Interface(fn=student_bot,
35
- inputs=gr.Textbox(label="سؤال خود را وارد کنید"),
36
- outputs=gr.Textbox(label="پاسخ"),
37
- title="ایجنت راهنمای دانشجویان",
38
- description="پاسخ به سوالات متداول دانشگاهی با تشخیص معنایی",
39
- theme="default")
40
-
41
  iface.launch()
 
1
  import gradio as gr
2
  from sentence_transformers import SentenceTransformer, util
3
 
4
+ # بارگذاری مدل تشابه معنایی
5
+ embedder = SentenceTransformer("myrkur/sentence-transformer-parsbert-fa-2.0")
6
 
7
+ # پایگاه داده‌ی سوالات متداول
8
  faq_dict = {
9
  "زمان انتخاب واحد": "معمولاً پایان شهریور و بهمن است.",
10
  "زمان حذف و اضافه": "حدود یک هفته پس از شروع ترم تحصیلی است.",
 
13
  "شرایط مهمان شدن": "با موافقت دانشگاه مبدا و مقصد انجام می‌شود.",
14
  }
15
 
 
16
  faq_questions = list(faq_dict.keys())
17
  faq_embeddings = embedder.encode(faq_questions, convert_to_tensor=True)
18
 
 
19
  def student_bot(question):
20
  question_embedding = embedder.encode(question, convert_to_tensor=True)
21
  cos_scores = util.pytorch_cos_sim(question_embedding, faq_embeddings)[0]
22
  best_score = cos_scores.max().item()
23
  best_idx = cos_scores.argmax().item()
24
 
25
+ if best_score >= 0.65: # آستانه شباهت نسبتاً معتدل
26
+ best_q = faq_questions[best_idx]
27
+ return faq_dict[best_q]
28
  else:
29
  return "❗️متاسفم، پاسخ این سؤال فعلاً در سیستم ثبت نشده است."
30
 
31
+ iface = gr.Interface(
32
+ fn=student_bot,
33
+ inputs=gr.Textbox(label="سؤال خود را وارد کنید"),
34
+ outputs=gr.Textbox(label="پاسخ"),
35
+ title="ایجنت راهنمای دانشجویان",
36
+ description="پاسخ به سوالات متداول دانشگاه با تشخیص معنایی فارسی"
37
+ )
 
38
  iface.launch()