raghavNCI commited on
Commit
f5e2bc7
·
1 Parent(s): 6436242

changes v20

Browse files
Files changed (1) hide show
  1. 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
- answer = "Cannot answer – model did not return a valid response."
 
 
137
 
138
  print("Mistral Answer:", answer)
139
 
140
  return {
141
  "question": question,
142
- "answer": answer.strip(),
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