消息状态(MessagesState)
消息状态
更新消息列表是一个设计 聊天模型(chatModel)
一种通用状态,LangGraph 预构建了一个 MessagesState
from langgraph.graph.message import MessagesState
from langchain_core.messages import AIMessage, HumanMessage
from langgraph.graph import StateGraph, START
def node(state: MessagesState):
return {"messages": [AIMessage(content="你好,有什么可以帮助你吗?")]}
graph = StateGraph(MessagesState).add_node(node).add_edge(START, "node").compile()
result = graph.invoke({"messages": [HumanMessage(content="你好")]})
for message in result["messages"]:
message.pretty_print()
# ================================ Human Message =================================
# 你好
# ================================== Ai Message ==================================
# 你好,有什么可以帮助你吗?
原理
from typing_extensions import TypedDict, Annotated
from langgraph.graph.message import add_messages
from langchain_core.messages import AnyMessage, AIMessage, HumanMessage
from langgraph.graph import StateGraph, START
# 使用 add_messages 归约器追加消息
class State(TypedDict):
messages: Annotated[list[AnyMessage], add_messages]
def node(state: State):
return {"messages": [AIMessage(content="你好,有什么可以帮助你吗?")]}
graph = StateGraph(State).add_node(node).add_edge(START, "node").compile()
result = graph.invoke({"messages": [HumanMessage(content="你好")]})
for message in result["messages"]:
message.pretty_print()
# ================================ Human Message =================================
# 你好
# ================================== Ai Message ==================================
# 你好,有什么可以帮助你吗?