Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -12,7 +12,7 @@ from langgraph.prebuilt import ToolNode
|
|
| 12 |
from langchain_openai import ChatOpenAI
|
| 13 |
from langgraph.graph import StateGraph, START, END
|
| 14 |
from langgraph.graph.message import add_messages
|
| 15 |
-
from langchain.schema import HumanMessage, SystemMessage
|
| 16 |
# Create a ToolNode that knows about your web_search function
|
| 17 |
import json
|
| 18 |
from state import AgentState
|
|
@@ -61,11 +61,13 @@ def plan_node(state: AgentState) -> AgentState:
|
|
| 61 |
llm_response = llm([system_msg, human_msg])
|
| 62 |
llm_out = llm_response.content.strip()
|
| 63 |
|
| 64 |
-
# 4)
|
|
|
|
|
|
|
| 65 |
try:
|
| 66 |
parsed = eval(llm_out, {}, {})
|
| 67 |
if isinstance(parsed, dict):
|
| 68 |
-
partial: AgentState = {"messages":
|
| 69 |
allowed = {
|
| 70 |
"web_search_query",
|
| 71 |
"ocr_path",
|
|
@@ -82,7 +84,7 @@ def plan_node(state: AgentState) -> AgentState:
|
|
| 82 |
|
| 83 |
# 5) Fallback
|
| 84 |
return {
|
| 85 |
-
"messages":
|
| 86 |
"final_answer": "Sorry, I could not parse your intent."
|
| 87 |
}
|
| 88 |
|
|
@@ -112,7 +114,7 @@ def finalize_node(state: AgentState) -> AgentState:
|
|
| 112 |
if state.get("final_answer") is not None:
|
| 113 |
return {"final_answer": state["final_answer"]}
|
| 114 |
|
| 115 |
-
# 3) Otherwise, append our
|
| 116 |
messages_for_llm.append(
|
| 117 |
SystemMessage(content="Please provide the final answer now.")
|
| 118 |
)
|
|
|
|
| 12 |
from langchain_openai import ChatOpenAI
|
| 13 |
from langgraph.graph import StateGraph, START, END
|
| 14 |
from langgraph.graph.message import add_messages
|
| 15 |
+
from langchain.schema import HumanMessage, SystemMessage, AIMessage
|
| 16 |
# Create a ToolNode that knows about your web_search function
|
| 17 |
import json
|
| 18 |
from state import AgentState
|
|
|
|
| 61 |
llm_response = llm([system_msg, human_msg])
|
| 62 |
llm_out = llm_response.content.strip()
|
| 63 |
|
| 64 |
+
# 4) Always append the LLM output as an AIMessage
|
| 65 |
+
ai_msg = AIMessage(content=llm_out)
|
| 66 |
+
new_msgs = prior_msgs.copy() + [ai_msg]
|
| 67 |
try:
|
| 68 |
parsed = eval(llm_out, {}, {})
|
| 69 |
if isinstance(parsed, dict):
|
| 70 |
+
partial: AgentState = {"messages": new_msgs}
|
| 71 |
allowed = {
|
| 72 |
"web_search_query",
|
| 73 |
"ocr_path",
|
|
|
|
| 84 |
|
| 85 |
# 5) Fallback
|
| 86 |
return {
|
| 87 |
+
"messages": new_msgs,
|
| 88 |
"final_answer": "Sorry, I could not parse your intent."
|
| 89 |
}
|
| 90 |
|
|
|
|
| 114 |
if state.get("final_answer") is not None:
|
| 115 |
return {"final_answer": state["final_answer"]}
|
| 116 |
|
| 117 |
+
# 3) Otherwise, append our "please give final answer" SystemMessage
|
| 118 |
messages_for_llm.append(
|
| 119 |
SystemMessage(content="Please provide the final answer now.")
|
| 120 |
)
|