Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -45,7 +45,7 @@ try:
|
|
45 |
except FileNotFoundError:
|
46 |
cache = {}
|
47 |
|
48 |
-
def retrieve_answer(query, threshold=0.
|
49 |
query_embedding = model.encode([query])[0]
|
50 |
result = index.query(vector=query_embedding.tolist(), top_k=top_k, include_metadata=True)
|
51 |
try:
|
@@ -73,7 +73,7 @@ def generate_human_response(context_text):
|
|
73 |
return cache[context_text]
|
74 |
prompt = (
|
75 |
f"این متن پاسخ سوال مشتری است: \"{context_text}\".\n"
|
76 |
-
"لطفاً یک پاسخ کوتاه، رسمی، کاملاً مختصر و مفید به زبان فارسی تولید کن که فقط بر اساس همین متن
|
77 |
)
|
78 |
try:
|
79 |
response = openai.chat.completions.create(
|
@@ -83,12 +83,17 @@ def generate_human_response(context_text):
|
|
83 |
{"role": "user", "content": prompt}
|
84 |
],
|
85 |
temperature=0.2,
|
86 |
-
max_tokens=
|
87 |
)
|
88 |
answer = response.choices[0].message.content.strip()
|
89 |
# اطمینان از کامل بودن جمله
|
90 |
if answer and not answer.endswith(('.', '!', '؟')):
|
91 |
answer += '.'
|
|
|
|
|
|
|
|
|
|
|
92 |
cache[context_text] = answer
|
93 |
with open(cache_file, "wb") as f:
|
94 |
pickle.dump(cache, f)
|
|
|
45 |
except FileNotFoundError:
|
46 |
cache = {}
|
47 |
|
48 |
+
def retrieve_answer(query, threshold=0.6, top_k=1):
|
49 |
query_embedding = model.encode([query])[0]
|
50 |
result = index.query(vector=query_embedding.tolist(), top_k=top_k, include_metadata=True)
|
51 |
try:
|
|
|
73 |
return cache[context_text]
|
74 |
prompt = (
|
75 |
f"این متن پاسخ سوال مشتری است: \"{context_text}\".\n"
|
76 |
+
"لطفاً یک پاسخ کوتاه، رسمی، کاملاً مختصر و مفید به زبان فارسی تولید کن که فقط بر اساس همین متن باشد، حتماً جملهای کامل با فعل مناسب و پایان مشخص باشد."
|
77 |
)
|
78 |
try:
|
79 |
response = openai.chat.completions.create(
|
|
|
83 |
{"role": "user", "content": prompt}
|
84 |
],
|
85 |
temperature=0.2,
|
86 |
+
max_tokens=100, # افزایش به 100
|
87 |
)
|
88 |
answer = response.choices[0].message.content.strip()
|
89 |
# اطمینان از کامل بودن جمله
|
90 |
if answer and not answer.endswith(('.', '!', '؟')):
|
91 |
answer += '.'
|
92 |
+
# چک کردن وجود فعل (ساده)
|
93 |
+
persian_verbs = ['است', 'هستیم', 'هستند', 'بود', 'میشود', 'میکنم', 'میکنیم']
|
94 |
+
has_verb = any(verb in answer for verb in persian_verbs)
|
95 |
+
if not has_verb and "ما" in answer:
|
96 |
+
answer = answer.rstrip('.؟!') + ' هستیم.'
|
97 |
cache[context_text] = answer
|
98 |
with open(cache_file, "wb") as f:
|
99 |
pickle.dump(cache, f)
|