Spaces:
Sleeping
Sleeping
Update agent.py
Browse files
agent.py
CHANGED
|
@@ -181,13 +181,31 @@ def build_graph(provider: str = "groq"):
|
|
| 181 |
|
| 182 |
def assistant(state: MessagesState):
|
| 183 |
try:
|
| 184 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 185 |
print("🤖 Raw LLM result:", repr(result))
|
| 186 |
-
|
| 187 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 188 |
except Exception as e:
|
| 189 |
print(f"🔥 Error in assistant node: {e}")
|
| 190 |
-
return {"messages": [HumanMessage(content=f"AGENT ERROR: {e}")]
|
|
|
|
| 191 |
|
| 192 |
|
| 193 |
|
|
|
|
| 181 |
|
| 182 |
def assistant(state: MessagesState):
|
| 183 |
try:
|
| 184 |
+
# Always prepend the system message
|
| 185 |
+
system_msg = SystemMessage(content=system_prompt.strip())
|
| 186 |
+
messages = [system_msg] + state["messages"]
|
| 187 |
+
|
| 188 |
+
result = llm_with_tools.invoke(messages)
|
| 189 |
print("🤖 Raw LLM result:", repr(result))
|
| 190 |
+
|
| 191 |
+
raw_output = result.content.strip()
|
| 192 |
+
|
| 193 |
+
# Extract FINAL ANSWER using regex
|
| 194 |
+
import re
|
| 195 |
+
match = re.search(r"FINAL ANSWER:\s*(.+)", raw_output, re.IGNORECASE)
|
| 196 |
+
if match:
|
| 197 |
+
final_answer = match.group(1).strip()
|
| 198 |
+
final_output = f"FINAL ANSWER: {final_answer}"
|
| 199 |
+
else:
|
| 200 |
+
print("⚠️ 'FINAL ANSWER:' prefix not found. Using fallback.")
|
| 201 |
+
final_output = "FINAL ANSWER: Unable to determine answer"
|
| 202 |
+
|
| 203 |
+
return {"messages": [HumanMessage(content=final_output)]}
|
| 204 |
+
|
| 205 |
except Exception as e:
|
| 206 |
print(f"🔥 Error in assistant node: {e}")
|
| 207 |
+
return {"messages": [HumanMessage(content=f"FINAL ANSWER: AGENT ERROR: {e}")]}
|
| 208 |
+
|
| 209 |
|
| 210 |
|
| 211 |
|