M17idd commited on
Commit
6fef264
·
1 Parent(s): 35ca1e8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -40
app.py CHANGED
@@ -571,57 +571,30 @@ def remove_stop_words_from_lines(lines, stop_words):
571
  return cleaned_lines
572
 
573
  if query:
574
- closest_lines = find_closest_lines(query, doc_texts, stop_words, top_n=5)
575
 
 
576
  cleaned_closest_lines = [
577
  clean_text(" ".join([word for word in line.split() if word not in stop_words]))
578
  for line in closest_lines
579
  ]
580
 
581
- summarized_text = summarize_text_by_frequency("\n".join(cleaned_closest_lines), num_sentences=1)
 
582
 
583
- if summarized_text:
584
  prompt = f"""
585
- تعدادی جمله مرتبط با سوال زیر استخراج شده است. لطفاً ابتدا این جملات را بررسی کن، سپس با در نظر گرفتن محتوای سوال و لحن آن، یک پاسخ نهایی حرفه‌ای، دقیق و روان ارائه کن که هم به سوال پاسخ دهد و هم از نظر نگارشی و ساختاری در سطح بالایی باشد. پاسخ نهایی باید حداکثر 1024 کاراکتر و حداقل 512 کاراکتر باشد، خلاصه و واضح نوشته شود و فقط به زبان فارسی باشد. از تکرار اضافی پرهیز کن و در صورت نیاز، محتوای جملات را ترکیب کن.
586
  سوال:
587
  {query}
588
- جملات مرتبط:
589
  {summarized_text}
590
- پاسخ نهایی حرفه‌ای بازنویسی‌شده:
591
  """
592
- response = llm([
593
- SystemMessage(content="You are a helpful assistant."),
594
- HumanMessage(content=prompt)
595
- ])
596
- rewritten = response.content.strip()
597
-
598
- review_prompt = f"""
599
- لطفاً بررسی کن که آیا پاسخ زیر به سوال داده‌شده مرتبط، صحیح، معتبر و قابل قبول است یا نه. اگر پاسخ مرتبط و صحیح است، فقط بنویس: 'تأیید شد'. اگر پاسخ اشتباه است یا ربطی به سوال ندارد یا معتبر نیست، فقط بنویس: 'نیاز به اصلاح دارد'.
600
- سوال:
601
- {query}
602
- پاسخ:
603
- {rewritten}
604
- """
605
- review_response = llm([
606
- SystemMessage(content="You are a helpful assistant."),
607
- HumanMessage(content=review_prompt)
608
- ])
609
- review_result = review_response.content.strip()
610
-
611
- if "تأیید شد" in review_result:
612
- rewritten = clean_text(rewritten)
613
- st.markdown(f'<div class="chat-message">{rewritten}</div>', unsafe_allow_html=True)
614
- think.empty()
615
- else:
616
- prompt = f"""
617
- هیچ جمله مرتبط مستقیمی با سوال یافت نشد. لطفاً با توجه به سوال زیر، یک پاسخ حرفه‌ای، مرتبط، معنادار و معتبر تولید کن. فقط از جملات موجود در اسناد معتبر استفاده کن و از ساخت جملات ساختگی یا استفاده از زبان غیر فارسی خودداری کن.
618
- سوال:
619
- {query}
620
- """
621
- response = llm([
622
- SystemMessage(content="You are a helpful assistant."),
623
- HumanMessage(content=prompt)
624
- ])
625
  rewritten = clean_text(response.content.strip())
 
626
  st.markdown(f'<div class="chat-message">{rewritten}</div>', unsafe_allow_html=True)
627
- think.empty()
 
 
 
571
  return cleaned_lines
572
 
573
  if query:
574
+ closest_lines = find_closest_lines(query, doc_texts, stop_words, top_n=10)
575
 
576
+ # حذف استپ‌ورد و پاکسازی خطوط
577
  cleaned_closest_lines = [
578
  clean_text(" ".join([word for word in line.split() if word not in stop_words]))
579
  for line in closest_lines
580
  ]
581
 
582
+ # خلاصه‌سازی
583
+ summarized_text = summarize_text_by_frequency("\n".join(cleaned_closest_lines), num_sentences=3)
584
 
585
+ if summarized_text.strip():
586
  prompt = f"""
587
+ لطفاً با توجه به سؤال زیر و محتوای خلاصه‌شده، یک پاسخ نهایی حرفه‌ای، دقیق و روان تولید کن. فقط از متن استفاده کن. اگر اطلاعات کافی در متن وجود ندارد، صادقانه اعلام کن و از دانش کمک بگیر بنویس و بنویس ک از دانش خودت استفاده کردی.
588
  سوال:
589
  {query}
590
+ خلاصه‌ی مرتبط:
591
  {summarized_text}
592
+ پاسخ نهایی:
593
  """
594
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
595
  rewritten = clean_text(response.content.strip())
596
+
597
  st.markdown(f'<div class="chat-message">{rewritten}</div>', unsafe_allow_html=True)
598
+
599
+ else:
600
+ st.warning("هیچ محتوای خلاصه‌شده‌ای برای پاسخ وجود ندارد.")