akrstova commited on
Commit
8bb911a
·
1 Parent(s): 636011f

Change final answer extraction

Browse files
Files changed (1) hide show
  1. app.py +32 -14
app.py CHANGED
@@ -22,27 +22,45 @@ class BasicAgent:
22
  messages = [HumanMessage(content=question)]
23
  try:
24
  result = self.graph.invoke({"messages": messages})
 
25
 
26
- if not result.get("messages") or len(result["messages"]) == 0:
27
- raise ValueError("No messages returned from the graph")
 
 
 
 
 
28
 
29
  last_message = result["messages"][-1].content
 
30
 
31
- final_answer = "I cannot answer that"
 
 
32
 
 
33
  match = re.search(r"(?i)final\s*answer\s*[:\-]?\s*(.+)", last_message, re.DOTALL)
34
  if match:
35
- final_answer = match.group(1).strip()
36
- else:
37
- # Try to find a name or string answer
38
- candidates = [line.strip() for line in last_message.split("\n") if line.strip()]
39
- final_answer = next((line for line in reversed(candidates) if len(line.split()) <= 5), last_message.strip())
40
-
41
- return final_answer
42
- except Exception as e:
43
- print("Agent processing failed")
44
- return
45
-
 
 
 
 
 
 
 
 
46
 
47
 
48
  def run_and_submit_all( profile: gr.OAuthProfile | None):
 
22
  messages = [HumanMessage(content=question)]
23
  try:
24
  result = self.graph.invoke({"messages": messages})
25
+ print("Graph result:", result)
26
 
27
+ if not result or "messages" not in result:
28
+ print(" Graph returned no 'messages' key.")
29
+ return "I cannot answer that"
30
+
31
+ if not result["messages"]:
32
+ print("❌ Graph returned empty messages list.")
33
+ return "I cannot answer that"
34
 
35
  last_message = result["messages"][-1].content
36
+ print("🔁 Last message:", repr(last_message))
37
 
38
+ if not last_message or not last_message.strip():
39
+ print("❌ Last message is empty or whitespace.")
40
+ return "I cannot answer that"
41
 
42
+ # Try extracting with "FINAL ANSWER:"
43
  match = re.search(r"(?i)final\s*answer\s*[:\-]?\s*(.+)", last_message, re.DOTALL)
44
  if match:
45
+ final = match.group(1).strip()
46
+ print("✅ Extracted FINAL ANSWER:", final)
47
+ return final
48
+
49
+ # Fallback: last short non-empty line
50
+ lines = [line.strip() for line in last_message.split("\n") if line.strip()]
51
+ for line in reversed(lines):
52
+ if len(line.split()) <= 5:
53
+ print("⚠️ Fallback final answer:", line)
54
+ return line
55
+
56
+ print("⚠️ No extractable short line; fallback to full last message")
57
+ return last_message.strip()
58
+
59
+ except Exception as e:
60
+ import traceback
61
+ traceback.print_exc()
62
+ print("❌ Exception in agent call:", str(e))
63
+ return "I cannot answer that"
64
 
65
 
66
  def run_and_submit_all( profile: gr.OAuthProfile | None):