Update app.py
Browse files
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=
|
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 |
-
|
|
|
582 |
|
583 |
-
if summarized_text:
|
584 |
prompt = f"""
|
585 |
-
|
586 |
سوال:
|
587 |
{query}
|
588 |
-
|
589 |
{summarized_text}
|
590 |
-
پاسخ
|
591 |
"""
|
592 |
-
|
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 |
-
|
|
|
|
|
|
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("هیچ محتوای خلاصهشدهای برای پاسخ وجود ندارد.")
|