如何用Python SDK调用MeMem0?
使用Python SDK调用Mem0主要分为和两种方式。下面这个表格汇总了核心的调用流程和关键点,方便你快速把握。特性自托管 (开源)托管服务 (火山引擎/官方平台)Memory类类配置config字典,指定LLM、Embedding模型、向量数据库使用api_key进行身份验证addsearchget_alldelete等方法一致存储在你自己配置的向量数据库(如Chroma, Qdran
使用Python SDK调用Mem0主要分为自托管和托管服务两种方式。下面这个表格汇总了核心的调用流程和关键点,方便你快速把握。
|
特性 |
自托管 (开源) |
托管服务 (火山引擎/官方平台) |
|---|---|---|
|
核心对象 |
|
|
|
初始化关键 |
配置 |
使用 |
|
核心操作 |
|
|
|
数据存储 |
存储在你自己配置的向量数据库(如Chroma, Qdrant)中 |
存储在Mem0官方托管的云端 |
|
适用场景 |
注重数据隐私、需要深度定制、离线环境 |
追求快速上手、省去运维负担、团队协作 |
🔧 初始化客户端
根据你选择的方式,初始化步骤有所不同。
-
自托管模式:你需要一个详细的
config配置来连接本地资源。from mem0 import Memory import os # 配置项:需要指定LLM、嵌入模型和向量数据库 config = { "llm": { "provider": "openai", # 例如使用OpenAI的模型 "config": { "model": "gpt-4o-mini", "api_key": os.getenv("OPENAI_API_KEY"), }, }, "embedder": { "provider": "openai", "config": { "model": "text-embedding-3-small", }, }, "vector_store": { "provider": "chroma", # 例如使用本地的Chroma数据库 "config": { "collection_name": "my_memories", "path": "./chroma_db", }, }, } # 根据配置创建记忆客户端 memory_client = Memory.from_config(config) -
托管服务模式:初始化非常简单,只需要API密钥。
from mem0 import MemoryClient # 替换 'your-api-key-here' 为你在火山引擎或Mem0官方平台获取的密钥 memory_client = MemoryClient(api_key="your-api-key-here")
💾 存储与检索记忆
初始化客户端后,核心操作是统一的。
-
添加记忆:使用
add方法。你可以存储单条信息或完整的对话记录。# 添加单条记忆 memory_client.add("用户计划下个月读一本人工智能相关的书", user_id="user_123") # 添加多轮对话记忆 messages = [ {"role": "user", "content": "我叫李明,喜欢打篮球和编程。"}, {"role": "assistant", "content": "好的李明,已记下你的爱好。"} ] result = memory_client.add(messages, user_id="user_123") -
检索记忆:使用
search方法,Mem0会基于语义相似度返回最相关的记忆片段。# 当用户提问时,搜索相关记忆 query = "我之前和你聊过什么关于爱好的事吗?" relevant_memories = memory_client.search(query=query, user_id="user_123") # 打印检索结果 for memory in relevant_memories["results"]: print(f"- 记忆ID: {memory['id']}, 内容: {memory['memory']}, 相关性得分: {memory.get('score', 'N/A')}")
🔍 其他实用操作
-
获取所有记忆:获取某个用户的全部记忆列表。
all_user_memories = memory_client.get_all(user_id="user_123") -
删除记忆:可以按记忆ID删除单条,或删除用户的全部记忆。
# 删除单条记忆 memory_client.delete(memory_id="具体的记忆ID") # 删除用户的所有记忆 memory_client.delete_all(user_id="user_123")
💡 集成到AI应用中的模式
一个典型的集成模式是“检索-增强-生成”(RAG),即在调用大模型(LLM)生成回复前,先通过Mem0检索相关记忆作为上下文。
def chat_with_memory(user_message, user_id):
# 1. 检索相关记忆
memories = memory_client.search(query=user_message, user_id=user_id)
context = "\n".join([mem["memory"] for mem in memories["results"]])
# 2. 构建增强的Prompt
prompt = f"""基于以下用户背景信息回答问题。
用户背景:
{context}
问题:{user_message}
回答:"""
# 3. 调用LLM生成回复 (这里需要你已有的LLM客户端,如OpenAI)
# response = your_llm_client.chat.completions.create(...)
# assistant_reply = response.choices[0].message.content
# 4. (可选) 将本轮交互作为新记忆存储
# new_messages = [{"role": "user", "content": user_message}, {"role": "assistant", "content": assistant_reply}]
# memory_client.add(new_messages, user_id=user_id)
# return assistant_reply
pass
希望这份指南能帮助你顺利开始使用Mem0。如果你在初始化配置或具体操作中遇到任何问题,可以随时告诉我,例如你倾向于自托管还是托管服务,我可以提供更具体的建议。
更多推荐


所有评论(0)