Spaces:
Runtime error
Runtime error
Update agent.py
Browse files
agent.py
CHANGED
|
@@ -14,6 +14,7 @@ from langchain_core.tools import tool
|
|
| 14 |
from langchain.tools.retriever import create_retriever_tool
|
| 15 |
from supabase.client import create_client
|
| 16 |
import re
|
|
|
|
| 17 |
|
| 18 |
load_dotenv()
|
| 19 |
|
|
@@ -211,11 +212,21 @@ def build_graph(provider: str = "groq"):
|
|
| 211 |
]
|
| 212 |
return {"messages": state["messages"] + examples}
|
| 213 |
|
|
|
|
|
|
|
| 214 |
def assistant(state: MessagesState):
|
| 215 |
try:
|
| 216 |
messages = [SystemMessage(content=system_prompt.strip())] + state["messages"]
|
| 217 |
result = llm_with_tools.invoke(messages)
|
| 218 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 219 |
print("🤖 Raw LLM output:", repr(raw_output))
|
| 220 |
|
| 221 |
match = re.search(r"FINAL ANSWER:\s*(.+)", raw_output, re.IGNORECASE)
|
|
@@ -226,9 +237,12 @@ def build_graph(provider: str = "groq"):
|
|
| 226 |
final_output = f"FINAL ANSWER: {raw_output or 'Unable to determine answer'}"
|
| 227 |
|
| 228 |
return {"messages": [HumanMessage(content=final_output)]}
|
|
|
|
| 229 |
except Exception as e:
|
| 230 |
-
print(f"🔥
|
| 231 |
-
|
|
|
|
|
|
|
| 232 |
|
| 233 |
builder = StateGraph(MessagesState)
|
| 234 |
builder.add_node("retriever", retriever)
|
|
|
|
| 14 |
from langchain.tools.retriever import create_retriever_tool
|
| 15 |
from supabase.client import create_client
|
| 16 |
import re
|
| 17 |
+
import traceback
|
| 18 |
|
| 19 |
load_dotenv()
|
| 20 |
|
|
|
|
| 212 |
]
|
| 213 |
return {"messages": state["messages"] + examples}
|
| 214 |
|
| 215 |
+
|
| 216 |
+
|
| 217 |
def assistant(state: MessagesState):
|
| 218 |
try:
|
| 219 |
messages = [SystemMessage(content=system_prompt.strip())] + state["messages"]
|
| 220 |
result = llm_with_tools.invoke(messages)
|
| 221 |
+
|
| 222 |
+
# Handle different return types gracefully
|
| 223 |
+
if hasattr(result, "content"):
|
| 224 |
+
raw_output = result.content.strip()
|
| 225 |
+
elif isinstance(result, dict) and "content" in result:
|
| 226 |
+
raw_output = result["content"].strip()
|
| 227 |
+
else:
|
| 228 |
+
raise ValueError(f"Unexpected result format: {repr(result)}")
|
| 229 |
+
|
| 230 |
print("🤖 Raw LLM output:", repr(raw_output))
|
| 231 |
|
| 232 |
match = re.search(r"FINAL ANSWER:\s*(.+)", raw_output, re.IGNORECASE)
|
|
|
|
| 237 |
final_output = f"FINAL ANSWER: {raw_output or 'Unable to determine answer'}"
|
| 238 |
|
| 239 |
return {"messages": [HumanMessage(content=final_output)]}
|
| 240 |
+
|
| 241 |
except Exception as e:
|
| 242 |
+
print(f"🔥 Exception: {e}")
|
| 243 |
+
traceback.print_exc()
|
| 244 |
+
return {"messages": [HumanMessage(content=f"FINAL ANSWER: AGENT ERROR: {type(e).__name__}: {e}")]}
|
| 245 |
+
|
| 246 |
|
| 247 |
builder = StateGraph(MessagesState)
|
| 248 |
builder.add_node("retriever", retriever)
|