AI Agent开发学习系列 - LangGraph(3): 有多个输入的Graph
在这个LangGraph示例中,多个输入的处理机制非常直观:通过定义一个AgentState类型字典,我们可以同时接收不同类型的输入数据(如整数列表values和字符串name),然后在处理函数中统一访问这些输入,将它们组合处理并生成最终结果。这种设计使得工作流能够灵活地处理复杂的多输入场景,每个输入都可以有不同的类型和用途,非常适合构建复杂的AI应用。
from typing import List, TypedDict
from langgraph.graph import StateGraphclass AgentState(TypedDict):values: List[int]name: strresult: strdef process_values(state: AgentState) -> AgentState:"""This function handles multiple different inputs"""print(state)state["result"] = f"Hi there {state["name"]}! Your sum = {sum(state["values"])}"print(state)return stategraph = StateGraph(AgentState)graph.add_node("processor", process_values)
graph.set_entry_point("processor")
graph.set_finish_point("processor")app = graph.compile()from IPython.display import Image, display
display(Image(app.get_graph().draw_mermaid_png()))answers = app.invoke({"values": [1, 2, 3, 4], "name": "Alex"})
print(answers["result"])
输出:
{'values': [1, 2, 3, 4], 'name': 'Alex'}
{'values': [1, 2, 3, 4], 'name': 'Alex', 'result': 'Hi there Alex! Your sum = 10'}
Hi there Alex! Your sum = 10