Update app.py
Browse files
app.py
CHANGED
@@ -540,13 +540,24 @@ st.markdown("""
|
|
540 |
|
541 |
|
542 |
|
|
|
|
|
|
|
|
|
|
|
543 |
if query:
|
544 |
found = False
|
545 |
-
threshold = 62
|
|
|
|
|
|
|
|
|
|
|
|
|
546 |
|
547 |
-
for idx,
|
548 |
-
similarity = fuzz.partial_ratio(query, sentence)
|
549 |
if similarity >= threshold:
|
|
|
550 |
prompt = f"""
|
551 |
تعدادی پاسخ برای سوال زیر تولید شده است. لطفاً ابتدا این پاسخها را بررسی کن، سپس با در نظر گرفتن محتوای سوال و لحن آن، یک پاسخ نهایی حرفهای، دقیق و روان ارائه کن که هم به سوال پاسخ دهد و هم از نظر نگارشی و ساختاری در سطح بالایی باشد. پاسخ نهایی باید حداکثر 1024 کاراکتر و حداقل 512 باشد، خلاصه و واضح نوشته شود و فقط به زبان فارسی باشد. از تکرار اضافی پرهیز کن و محتوای چند پاسخ را در صورت نیاز با هم ترکیب کن.
|
552 |
سوال:
|
@@ -563,8 +574,7 @@ if query:
|
|
563 |
|
564 |
# بررسی مرتبط بودن پاسخ با سؤال
|
565 |
review_prompt = f"""
|
566 |
-
لطفاً بررسی کن که آیا پاسخ زیر، حدودا به سوال زیر پاسخ داده است یا خیر یعنی کلمات کلیدی اصلی در سوال در پاسخ هست یا ن . اگر پاسخ به سوال مرتبط، درست و قابل قبول است، فقط بنویس: 'تأیید
|
567 |
-
اگر پاسخ اشتباه است یا هیچ ربطی به سوال ندارد، فقط بنویس: 'نیاز به اصلاح دارد'.
|
568 |
سوال:
|
569 |
{query}
|
570 |
پاسخ:
|
|
|
540 |
|
541 |
|
542 |
|
543 |
+
from sentence_transformers import SentenceTransformer, util
|
544 |
+
|
545 |
+
# بارگذاری مدل برای جستجوی معنایی
|
546 |
+
model = SentenceTransformer('paraphrase-multilingual-MiniLM-L12-v2')
|
547 |
+
|
548 |
if query:
|
549 |
found = False
|
550 |
+
threshold = 0.62
|
551 |
+
|
552 |
+
query_embedding = model.encode(query, convert_to_tensor=True)
|
553 |
+
|
554 |
+
sentence_embeddings = model.encode(all_sentences, convert_to_tensor=True)
|
555 |
+
|
556 |
+
similarities = util.pytorch_cos_sim(query_embedding, sentence_embeddings)[0]
|
557 |
|
558 |
+
for idx, similarity in enumerate(similarities):
|
|
|
559 |
if similarity >= threshold:
|
560 |
+
sentence = all_sentences[idx]
|
561 |
prompt = f"""
|
562 |
تعدادی پاسخ برای سوال زیر تولید شده است. لطفاً ابتدا این پاسخها را بررسی کن، سپس با در نظر گرفتن محتوای سوال و لحن آن، یک پاسخ نهایی حرفهای، دقیق و روان ارائه کن که هم به سوال پاسخ دهد و هم از نظر نگارشی و ساختاری در سطح بالایی باشد. پاسخ نهایی باید حداکثر 1024 کاراکتر و حداقل 512 باشد، خلاصه و واضح نوشته شود و فقط به زبان فارسی باشد. از تکرار اضافی پرهیز کن و محتوای چند پاسخ را در صورت نیاز با هم ترکیب کن.
|
563 |
سوال:
|
|
|
574 |
|
575 |
# بررسی مرتبط بودن پاسخ با سؤال
|
576 |
review_prompt = f"""
|
577 |
+
لطفاً بررسی کن که آیا پاسخ زیر، حدودا به سوال زیر پاسخ داده است یا خیر یعنی کلمات کلیدی اصلی در سوال در پاسخ هست یا ن . اگر پاسخ به سوال مرتبط، درست و قابل قبول است، فقط بنویس: 'تأیید شد'. اگر کمی مربوط بود بنویس: 'کمی خوب'. اگر پاسخ اشتباه است یا هیچ ربطی به سوال ندارد، فقط بنویس: 'نیاز به اصلاح دارد'.
|
|
|
578 |
سوال:
|
579 |
{query}
|
580 |
پاسخ:
|