| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- """
- Mem0 实战:多用户持久记忆聊天机器人
- 运行前:export OPENAI_API_KEY="sk-xxx"
- 运行:python mem0_practice.py
- """
- import os
- from mem0 import Memory
- from dotenv import load_dotenv
- load_dotenv()
- memory = Memory() # 数据位置、模型调用与密钥传输必须按配置逐项确认
- # 模拟两个用户的对话
- conversations = {
- "alice": [
- {"role": "user", "content": "我是全栈开发,后端用 Python FastAPI,前端用 React"},
- {"role": "assistant", "content": "好的,记住了你的技术栈偏好。"},
- {"role": "user", "content": "我最近在做一个电商项目,数据库选的 PostgreSQL"},
- {"role": "assistant", "content": "PostgreSQL 很适合电商场景,记下来了。"},
- {"role": "user", "content": "对了,我之前说前端用 React,现在改成 Vue 3 了"},
- {"role": "assistant", "content": "已更新,前端技术栈改为 Vue 3。"},
- ],
- "bob": [
- {"role": "user", "content": "我是后端开发,只用 Java Spring Boot"},
- {"role": "assistant", "content": "了解,Java 技术栈。"},
- {"role": "user", "content": "我在做一个支付系统,用 MySQL 存交易数据"},
- {"role": "assistant", "content": "好的,支付系统 + MySQL,记住了。"},
- ],
- }
- # 写入记忆
- for user_id, messages in conversations.items():
- result = memory.add(messages, user_id=user_id)
- print(f"[{user_id}] 提取到的记忆:")
- for mem in result.get("results", []):
- print(f" {mem.get('event')}: {mem.get('memory')}")
- # 检索记忆
- queries = [
- ("alice", "我的前端技术栈是什么?"), # 核验最终状态、来源与有效期
- ("alice", "我的数据库选型?"), # → PostgreSQL
- ("bob", "你用什么语言开发?"), # → Java
- ]
- for user_id, query in queries:
- results = memory.search(query, user_id=user_id, top_k=3)
- print(f"[{user_id}] 查询:{query}")
- for item in results.get("results", []):
- print(f" → {item['memory']}")
|