目錄
- 1. 創建MemorySaver檢查指針
- 2. 構建并編譯Graph
- 3. 與聊天機器人互動
- 4. 問一個后續問題
- 5. 檢查State
- 參考
1. 創建MemorySaver檢查指針
??創建MemorySaver檢查指針:
from langgraph.checkpoint.memory import MemorySavermemory = MemorySaver()
??這是位于內存中的檢查指針,僅適用于QuickStart教程。在實際生產應用程序中,建議將其更改為SqliteSaver或PostgresSaver并連接數據庫。
2. 構建并編譯Graph
??Graph的構建如下:
from typing import Annotatedfrom langchain.chat_models import init_chat_model
from typing_extensions import TypedDictfrom langgraph.graph import StateGraph, START
from langgraph.graph.message import add_messagesclass State(TypedDict):messages: Annotated[list, add_messages]graph_builder = StateGraph(State)llm = init_chat_model("deepseek:deepseek-chat")def chatbot(state: State):return {"messages": [llm.invoke(state["messages"])]}# The first argument is the unique node name
# The second argument is the function or object that will be called whenever
# the node is used.
graph_builder.add_node("chatbot", chatbot)
graph_builder.add_edge(START, "chatbot")
??使用提供的檢查指針編譯Graph,它將在圖遍歷每個節點時檢查State:
graph = graph_builder.compile(checkpointer=memory)
3. 與聊天機器人互動
??選擇一個線程作為這個對話的標簽:
config = { "configurable": { "thread_id": "1" } }
??與聊天機器人聊天:
user_input = "Hi there! My name is Will."events = graph.stream({ "messages": [ { "role": "user", "content": user_input } ] },config,stream_mode="values"
)for event in events:event["messages"][-1].pretty_print()
??運行結果為:
4. 問一個后續問題
??問一個后續問題:
user_input = "What is My Name?"events = graph.stream({ "messages": [ { "role": "user", "content": user_input } ] },config,stream_mode="values"
)for event in events:event["messages"][-1].pretty_print()
??運行結果為:
??注意,上面的代碼沒有使用外部列表來存儲內存。下面嘗試使用不同的配置:
events = graph.stream({ "messages": [ { "role": "user", "content": user_input } ] },{ "configurable": { "thread_id": "2" } },stream_mode="values"
)for event in events:event["messages"][-1].pretty_print()
??運行結果為:
??注意,上面的代碼僅更改了配置中的thread_id。
5. 檢查State
??到目前為止,我們已經跨兩個不同的線程設置了幾個檢查點。但是什么會進入檢查點呢?要在任何時候檢查給定配置的圖State,調用get_state(config):
snapshot = graph.get_state(config)
snapshot
??輸出如下:
參考
https://langchain-ai.github.io/langgraph/tutorials/get-started/3-add-memory/