Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -224,6 +224,9 @@ class SuperSmartAgent:
|
|
| 224 |
builder = StateGraph(AgentState)
|
| 225 |
|
| 226 |
# Nodes
|
|
|
|
|
|
|
|
|
|
| 227 |
builder.add_node("check_reversed", check_reversed)
|
| 228 |
builder.add_node("fix_question", fix_question)
|
| 229 |
builder.add_node("check_riddle_or_trick", check_riddle_or_trick)
|
|
@@ -232,16 +235,10 @@ class SuperSmartAgent:
|
|
| 232 |
builder.add_node("generate_code", generate_code)
|
| 233 |
builder.add_node("fallback", fallback)
|
| 234 |
|
| 235 |
-
# Edges
|
| 236 |
-
#####################################################
|
| 237 |
# Entry point: special tool detection first
|
| 238 |
builder.set_entry_point("check_special_tools")
|
| 239 |
|
| 240 |
-
#
|
| 241 |
-
builder.add_node("check_special_tools", check_special_tools)
|
| 242 |
-
builder.add_node("use_web_search", use_web_search)
|
| 243 |
-
builder.add_node("use_video_analysis", use_video_analysis)
|
| 244 |
-
|
| 245 |
builder.add_conditional_edges(
|
| 246 |
"check_special_tools",
|
| 247 |
lambda s: "use_web_search" if s.get("use_tool") == "web"
|
|
@@ -251,23 +248,26 @@ class SuperSmartAgent:
|
|
| 251 |
builder.add_edge("use_web_search", END)
|
| 252 |
builder.add_edge("use_video_analysis", END)
|
| 253 |
|
| 254 |
-
# Reasoning pipeline (
|
| 255 |
builder.add_edge("check_reversed", "fix_question")
|
| 256 |
builder.add_edge("fix_question", "check_riddle_or_trick")
|
| 257 |
|
| 258 |
builder.add_conditional_edges(
|
| 259 |
"check_riddle_or_trick",
|
| 260 |
-
lambda s: "solve_riddle" if s
|
| 261 |
)
|
| 262 |
builder.add_edge("solve_riddle", END)
|
| 263 |
|
| 264 |
builder.add_conditional_edges(
|
| 265 |
"check_python_suitability",
|
| 266 |
-
lambda s: "generate_code" if s
|
| 267 |
)
|
| 268 |
builder.add_edge("generate_code", END)
|
| 269 |
builder.add_edge("fallback", END)
|
| 270 |
|
|
|
|
|
|
|
|
|
|
| 271 |
|
| 272 |
graph = builder.compile()
|
| 273 |
return graph
|
|
|
|
| 224 |
builder = StateGraph(AgentState)
|
| 225 |
|
| 226 |
# Nodes
|
| 227 |
+
builder.add_node("check_special_tools", check_special_tools)
|
| 228 |
+
builder.add_node("use_web_search", use_web_search)
|
| 229 |
+
builder.add_node("use_video_analysis", use_video_analysis)
|
| 230 |
builder.add_node("check_reversed", check_reversed)
|
| 231 |
builder.add_node("fix_question", fix_question)
|
| 232 |
builder.add_node("check_riddle_or_trick", check_riddle_or_trick)
|
|
|
|
| 235 |
builder.add_node("generate_code", generate_code)
|
| 236 |
builder.add_node("fallback", fallback)
|
| 237 |
|
|
|
|
|
|
|
| 238 |
# Entry point: special tool detection first
|
| 239 |
builder.set_entry_point("check_special_tools")
|
| 240 |
|
| 241 |
+
# Tool-based branching
|
|
|
|
|
|
|
|
|
|
|
|
|
| 242 |
builder.add_conditional_edges(
|
| 243 |
"check_special_tools",
|
| 244 |
lambda s: "use_web_search" if s.get("use_tool") == "web"
|
|
|
|
| 248 |
builder.add_edge("use_web_search", END)
|
| 249 |
builder.add_edge("use_video_analysis", END)
|
| 250 |
|
| 251 |
+
# Reasoning pipeline (non-tool questions)
|
| 252 |
builder.add_edge("check_reversed", "fix_question")
|
| 253 |
builder.add_edge("fix_question", "check_riddle_or_trick")
|
| 254 |
|
| 255 |
builder.add_conditional_edges(
|
| 256 |
"check_riddle_or_trick",
|
| 257 |
+
lambda s: "solve_riddle" if s.get("is_riddle") else "check_python_suitability"
|
| 258 |
)
|
| 259 |
builder.add_edge("solve_riddle", END)
|
| 260 |
|
| 261 |
builder.add_conditional_edges(
|
| 262 |
"check_python_suitability",
|
| 263 |
+
lambda s: "generate_code" if s.get("is_python") else "fallback"
|
| 264 |
)
|
| 265 |
builder.add_edge("generate_code", END)
|
| 266 |
builder.add_edge("fallback", END)
|
| 267 |
|
| 268 |
+
|
| 269 |
+
|
| 270 |
+
|
| 271 |
|
| 272 |
graph = builder.compile()
|
| 273 |
return graph
|