告别ALOS老数据:手把手教你用大疆无人机+RTK+两步路APP搞定小区域高精度DEM
2026/5/30 18:33:14
没有记忆 → 问完就忘
有记忆 →能连贯聊天、记住上下文
# 安装依赖# pip install langchain langchain-openai# ==========================# 1. 导入模块# ==========================fromlangchain_openaiimportChatOpenAIfromlangchain.memoryimportConversationBufferMemory# 记忆核心fromlangchain.agentsimportAgentExecutor,create_react_agentfromlangchain.toolsimportToolfromlangchainimporthub# ==========================# 2. 初始化LLM# ==========================llm=ChatOpenAI(model="gpt-3.5-turbo",temperature=0.3,api_key="你的API_KEY",base_url="https://api.chatanywhere.tech/v1")# ==========================# 3. 【核心】添加记忆!# 记忆会自动保存对话历史# ==========================memory=ConversationBufferMemory(memory_key="chat_history",# 记忆键(固定)return_messages=True# 返回消息格式)# ==========================# 4. 定义工具# ==========================defsimple_calculate(expression):returnstr(eval(expression))tools=[Tool(name="Calculator",func=simple_calculate,description="用于计算数学表达式")]# ==========================# 5. 创建带记忆的 Agent# ==========================prompt=hub.pull("hwchase17/react-chat")# 支持记忆的提示词agent=create_react_agent(llm,tools,prompt)# 执行器 + 记忆agent_executor=AgentExecutor(agent=agent,tools=tools,memory=memory,# 把记忆加进来verbose=True,max_iterations=3)# ==========================# 6. 多轮对话测试# ==========================print("=== 带记忆的AI助手(输入exit退出)===")whileTrue:user_input=input("你:")ifuser_input.lower()=="exit":print("对话结束")break# 运行Agent(记忆自动保存)response=agent_executor.invoke({"input":user_input})print("AI:",response["output"])你:我叫小明 AI:好的,我记住你叫小明啦! 你:我是谁? AI:你是小明! 你:10+20等于多少? AI:等于30。 你:刚才算的结果是多少? AI:刚才算的是 10+20=30。这就是记忆的作用!
没有记忆,AI 根本不知道“刚才算的是什么”。
| 组件 | 特点 | 适合场景 |
|---|---|---|
| ConversationBufferMemory | 存全部原文,最简单 | 短对话 |
| ConversationBufferWindowMemory | 只存最近几轮 | 长对话 |
| ConversationSummaryMemory | 存总结,省token | 超长篇对话 |