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

Add default final answer

Browse files
Files changed (1) hide show
  1. app.py +23 -26
app.py CHANGED
@@ -18,34 +18,31 @@ class BasicAgent:
18
  self.graph = build_graph()
19
  print("BasicAgent initialized.")
20
  def __call__(self, question: str) -> str:
21
- # print(f"Agent received question (first 50 chars): {question[:50]}...")
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
- # match = re.search(r"(?i)final\s*answer\s*[:\-]?\s*(.+)", last_message, re.DOTALL)
32
- # if match:
33
- # final_answer = match.group(1).strip()
34
- # else:
35
- # # Try to find a name or string answer
36
- # candidates = [line.strip() for line in last_message.split("\n") if line.strip()]
37
- # final_answer = next((line for line in reversed(candidates) if len(line.split()) <= 5), last_message.strip())
38
-
39
- # return final_answer
40
- # except Exception as e:
41
- # print("Agent processing failed")
42
- # return
43
  print(f"Agent received question (first 50 chars): {question[:50]}...")
44
- # Wrap the question in a HumanMessage from langchain_core
45
  messages = [HumanMessage(content=question)]
46
- messages = self.graph.invoke({"messages": messages})
47
- answer = messages['messages'][-1].content
48
- return answer[14:]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
 
50
 
51
  def run_and_submit_all( profile: gr.OAuthProfile | None):
 
18
  self.graph = build_graph()
19
  print("BasicAgent initialized.")
20
  def __call__(self, question: str) -> str:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
  print(f"Agent received question (first 50 chars): {question[:50]}...")
 
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):