Langgraph使用MemorySaver建立有记忆的图
学习链接:https://langgraph.com.cn/tutorials/get-started/3-add-memory/index.html
完整实例代码:
fromdotenvimportload_dotenv load_dotenv()fromtypingimportAnnotatedfromtyping_extensionsimportTypedDictfromlangchain_openaiimportChatOpenAIfromlanggraph.graphimportStateGraph,STARTfromlanggraph.graph.messageimportadd_messagesfromlanggraph.checkpoint.memoryimportMemorySaver model=ChatOpenAI(model="**",temperature=0,timeout=60,max_retries=3,)classState(TypedDict):messages:Annotated[list,add_messages]graph_builder=StateGraph(State)defchatbot(state:State):return{"messages":[model.invoke(state["messages"])]}graph_builder.add_node("chatbot",chatbot)graph_builder.add_edge(START,"chatbot")memory=MemorySaver()graph=graph_builder.compile(checkpointer=memory)config={"configurable":{"thread_id":"1"}}user_input="Hi there! My name is Will."defstream_graph_updates(user_input:str):events=graph.stream({"messages":[{"role":"user","content":user_input}]},config,stream_mode="values",)foreventinevents:event["messages"][-1].pretty_print()stream_graph_updates(user_input)whileTrue:try:user_input=input("User: ")ifuser_input.lower()in["quit","exit","q"]:print("Goodbye!")breakstream_graph_updates(user_input)exceptException:user_input="What do you know about LangGraph?"print("User: "+user_input)stream_graph_updates(user_input)break