Update app.py
Browse files
app.py
CHANGED
@@ -245,7 +245,7 @@ st.markdown("""
|
|
245 |
llm = ChatOpenAI(
|
246 |
base_url="https://api.together.xyz/v1",
|
247 |
api_key='0291f33aee03412a47fa5d8e562e515182dcc5d9aac5a7fb5eefdd1759005979',
|
248 |
-
model="
|
249 |
max_tokens=1024
|
250 |
)
|
251 |
|
@@ -370,7 +370,7 @@ if query:
|
|
370 |
<div class="spinner"></div>
|
371 |
</div>
|
372 |
""", unsafe_allow_html=True)
|
373 |
-
|
374 |
else:
|
375 |
st.markdown("")
|
376 |
|
@@ -426,30 +426,64 @@ if query:
|
|
426 |
if similarity >= threshold:
|
427 |
st.markdown(sentence)
|
428 |
|
|
|
429 |
prompt = f"""
|
430 |
-
|
431 |
-
|
432 |
-
سوال:
|
433 |
-
{query}
|
434 |
-
|
435 |
-
پاسخها:
|
436 |
-
{sentence}
|
437 |
-
|
438 |
-
پاسخ نهایی حرفهای بازنویسیشده:
|
439 |
-
"""
|
440 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
441 |
response = llm([
|
442 |
SystemMessage(content="You are a helpful assistant."),
|
443 |
HumanMessage(content=prompt)
|
444 |
])
|
445 |
rewritten = response.content.strip()
|
446 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
447 |
think.empty()
|
448 |
found = True
|
449 |
break
|
450 |
|
451 |
if not found:
|
452 |
-
prompt = f"
|
453 |
response = llm([
|
454 |
SystemMessage(content="You are a helpful assistant."),
|
455 |
HumanMessage(content=prompt)
|
|
|
245 |
llm = ChatOpenAI(
|
246 |
base_url="https://api.together.xyz/v1",
|
247 |
api_key='0291f33aee03412a47fa5d8e562e515182dcc5d9aac5a7fb5eefdd1759005979',
|
248 |
+
model="meta-llama/Llama-3.3-70B-Instruct-Turbo-Free",
|
249 |
max_tokens=1024
|
250 |
)
|
251 |
|
|
|
370 |
<div class="spinner"></div>
|
371 |
</div>
|
372 |
""", unsafe_allow_html=True)
|
373 |
+
|
374 |
else:
|
375 |
st.markdown("")
|
376 |
|
|
|
426 |
if similarity >= threshold:
|
427 |
st.markdown(sentence)
|
428 |
|
429 |
+
# تولید پاسخ بازنویسیشده
|
430 |
prompt = f"""
|
431 |
+
تعدادی پاسخ برای سوال زیر تولید شده است. لطفاً ابتدا این پاسخها را بررسی کن، سپس با در نظر گرفتن محتوای سوال و لحن آن، یک پاسخ نهایی حرفهای، دقیق و روان ارائه کن که هم به سوال پاسخ دهد و هم از نظر نگارشی و ساختاری در سطح بالایی باشد. پاسخ نهایی باید حداکثر ۵۱۲ کاراکتر باشد، خلاصه و واضح نوشته شود و فقط به زبان فارسی باشد. از تکرار اضافی پرهیز کن و محتوای چند پاسخ را در صورت نیاز با هم ترکیب کن.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
432 |
|
433 |
+
سوال:
|
434 |
+
{query}
|
435 |
+
|
436 |
+
پاسخها:
|
437 |
+
{sentence}
|
438 |
+
|
439 |
+
پاسخ نهایی حرفهای بازنویسیشده:
|
440 |
+
"""
|
441 |
response = llm([
|
442 |
SystemMessage(content="You are a helpful assistant."),
|
443 |
HumanMessage(content=prompt)
|
444 |
])
|
445 |
rewritten = response.content.strip()
|
446 |
+
|
447 |
+
# بررسی مرتبط بودن پاسخ با سؤال
|
448 |
+
review_prompt = f"""
|
449 |
+
لطفاً بررسی کن که آیا پاسخ زیر، دقیقاً به سوال زیر پاسخ داده است یا خیر. اگر پاسخ به سوال مرتبط، درست و قابل قبول است، فقط بنویس: 'تأیید شد'.
|
450 |
+
اگر پاسخ اشتباه است یا ربطی به سوال ندارد، فقط بنویس: 'نیاز به اصلاح دارد'.
|
451 |
+
|
452 |
+
سوال:
|
453 |
+
{query}
|
454 |
+
|
455 |
+
پاسخ:
|
456 |
+
{rewritten}
|
457 |
+
"""
|
458 |
+
review_response = llm([
|
459 |
+
SystemMessage(content="You are a helpful assistant."),
|
460 |
+
HumanMessage(content=review_prompt)
|
461 |
+
])
|
462 |
+
review_result = review_response.content.strip()
|
463 |
+
|
464 |
+
if "تأیید شد" in review_result:
|
465 |
+
st.markdown(f'<div class="chat-message">{rewritten}</div>', unsafe_allow_html=True)
|
466 |
+
else:
|
467 |
+
# تولید پاسخ جدید توسط مدل بدون استفاده از داده قبلی
|
468 |
+
final_prompt = f"""
|
469 |
+
لطفاً برای سوال زیر پاسخی حرفهای، دقیق و روان تولید کن که مرتبط و معتبر باشد. از زبانی جز فارسی استفاده نکن:
|
470 |
+
|
471 |
+
سوال:
|
472 |
+
{query}
|
473 |
+
"""
|
474 |
+
new_response = llm([
|
475 |
+
SystemMessage(content="You are a helpful assistant."),
|
476 |
+
HumanMessage(content=final_prompt)
|
477 |
+
])
|
478 |
+
final_answer = new_response.content.strip()
|
479 |
+
st.markdown(f'<div class="chat-message">{final_answer}</div>', unsafe_allow_html=True)
|
480 |
+
|
481 |
think.empty()
|
482 |
found = True
|
483 |
break
|
484 |
|
485 |
if not found:
|
486 |
+
prompt = f"لطفاً بر اساس سوال زیر یک متن مرتبط و معنادار تولید کن و از خودت ننویس و جملات معتبر باشن و از زبانی جز فارسی استفاده نکن:\n\nسوال: {query}"
|
487 |
response = llm([
|
488 |
SystemMessage(content="You are a helpful assistant."),
|
489 |
HumanMessage(content=prompt)
|