raghavNCI
commited on
Commit
·
f5e2bc7
1
Parent(s):
6436242
changes v20
Browse files- question.py +12 -3
question.py
CHANGED
@@ -48,6 +48,14 @@ def is_relevant(article, keywords):
|
|
48 |
text = f"{article.get('title', '')} {article.get('content', '')}".lower()
|
49 |
return any(kw.lower() in text for kw in keywords)
|
50 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
|
52 |
def mistral_generate(prompt: str, max_new_tokens=128):
|
53 |
payload = {
|
@@ -62,7 +70,6 @@ def mistral_generate(prompt: str, max_new_tokens=128):
|
|
62 |
response.raise_for_status()
|
63 |
result = response.json()
|
64 |
if isinstance(result, list) and len(result) > 0:
|
65 |
-
print("Mistral Result", result);
|
66 |
return result[0].get("generated_text", "").strip()
|
67 |
else:
|
68 |
return ""
|
@@ -133,13 +140,15 @@ async def ask_question(input: QuestionInput):
|
|
133 |
)
|
134 |
answer = mistral_generate(answer_prompt, max_new_tokens=256)
|
135 |
if not answer:
|
136 |
-
|
|
|
|
|
137 |
|
138 |
print("Mistral Answer:", answer)
|
139 |
|
140 |
return {
|
141 |
"question": question,
|
142 |
-
"answer":
|
143 |
"sources": [
|
144 |
{"title": a["title"], "url": a["url"]}
|
145 |
for a in relevant_articles
|
|
|
48 |
text = f"{article.get('title', '')} {article.get('content', '')}".lower()
|
49 |
return any(kw.lower() in text for kw in keywords)
|
50 |
|
51 |
+
def extract_answer_after_label(text: str) -> str:
|
52 |
+
"""
|
53 |
+
Extracts everything after the first 'Answer:' label.
|
54 |
+
Assumes 'Answer:' appears once and is followed by the relevant content.
|
55 |
+
"""
|
56 |
+
if "Answer:" in text:
|
57 |
+
return text.split("Answer:", 1)[1].strip()
|
58 |
+
return text.strip()
|
59 |
|
60 |
def mistral_generate(prompt: str, max_new_tokens=128):
|
61 |
payload = {
|
|
|
70 |
response.raise_for_status()
|
71 |
result = response.json()
|
72 |
if isinstance(result, list) and len(result) > 0:
|
|
|
73 |
return result[0].get("generated_text", "").strip()
|
74 |
else:
|
75 |
return ""
|
|
|
140 |
)
|
141 |
answer = mistral_generate(answer_prompt, max_new_tokens=256)
|
142 |
if not answer:
|
143 |
+
final_answer = "Cannot answer – model did not return a valid response."
|
144 |
+
|
145 |
+
final_answer = extract_answer_after_label(answer)
|
146 |
|
147 |
print("Mistral Answer:", answer)
|
148 |
|
149 |
return {
|
150 |
"question": question,
|
151 |
+
"answer": final_answer.strip(),
|
152 |
"sources": [
|
153 |
{"title": a["title"], "url": a["url"]}
|
154 |
for a in relevant_articles
|