Spaces:
Sleeping
Sleeping
File size: 1,193 Bytes
f8734b3 1aeb5f9 a4a580c bcfaa84 b48a433 1aeb5f9 c2d02ae 1aeb5f9 bcfaa84 b6b7990 1aeb5f9 a4a580c bcfaa84 1aeb5f9 bcfaa84 1aeb5f9 bcfaa84 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
from langgraph.graph import StateGraph
from langchain_community.tools import TavilySearchResults
from llm_node import llm_node
from formatter_node import formatter_node
def build_graph():
graph = StateGraph(dict)
search_tool = TavilySearchResults()
def search_step(state):
question = state.get("question")
if not question:
raise ValueError("Missing 'question'")
result = search_tool.run(question)
state["search_result"] = result
return state
def llm_step(state):
question = state.get("question")
search_result = state.get("search_result", "")
answer = llm_node(question, search_result)
state["llm_output"] = answer
return state
def formatter_step(state):
final_answer = formatter_node(state["llm_output"])
state["final_answer"] = final_answer
return state
graph.add_node("search", search_step)
graph.add_node("llm", llm_step)
graph.add_node("formatter", formatter_step)
graph.set_entry_point("search")
graph.add_edge("search", "llm")
graph.add_edge("llm", "formatter")
graph.set_finish_point("formatter")
return graph
|