简介
mem0 是一个用于管理 AI 对话记忆的强大工具,它能够帮助我们实现对话的上下文管理和记忆检索。本文将介绍如何安装和测试 mem0,并通过一个实际的例子来展示其功能。
安装
首先需要安装 mem0 包:
pip install mem0ai
基本配置
mem0 的配置主要包含两个部分:
- LLM(大语言模型)配置
- Embedder(嵌入模型)配置
配置示例
from mem0.configs.base import MemoryConfig
from mem0.embeddings.configs import EmbedderConfig
from mem0.llms.configs import LlmConfig
config = MemoryConfig(
llm = LlmConfig(
provider="openai",
config={
"model": "qwen-turbo",
"api_key": "your-api-key",
"openai_base_url":"https://dashscope.aliyuncs.com/compatible-mode/v1"
}
),
embedder = EmbedderConfig(
provider="openai",
config={
"embedding_dims": 1536,
"model": "text-embedding-v2",
"api_key": "your-api-key",
"openai_base_url":"https://dashscope.aliyuncs.com/compatible-mode/v1"
}
)
)
实现对话记忆功能
以下是一个完整的示例,展示如何使用 mem0 实现带记忆的对话:
from openai import OpenAI
from mem0 import Memory
def chat_with_memories(message: str, user_id: str = "default_user") -> str:
# 检索相关记忆
relevant_memories = memory.search(query=message, user_id=user_id, limit=3)
memories_str = "\n".join(f"- {entry['memory']}" for entry in relevant_memories["results"])
# 生成回复
system_prompt = f"You are a helpful AI. Answer the question based on query and memories.\nUser Memories:\n{memories_str}"
messages = [{"role": "system", "content": system_prompt}, {"role": "user", "content": message}]
response = openai_client.chat.completions.create(model="qwen-turbo", messages=messages)
assistant_response = response.choices[0].message.content
# 创建新的记忆
messages.append({"role": "assistant", "content": assistant_response})
memory.add(messages, user_id=user_id)
return assistant_response
测试效果
运行以上代码,我们可以看到如下对话效果:
You: I'm bob.
AI: Hello Bob! How can I assist you today?
You: what's my name
AI: According to my records, your name is Bob.
从测试结果可以看出,mem0 成功地:
- 记住了用户的名字(Bob)
- 在后续对话中能够检索并使用这个信息
- 保持了对话的连贯性
总结
mem0 是一个功能强大且易于使用的对话记忆管理工具。通过简单的配置和集成,就能为 AI 对话系统添加记忆功能,提升用户体验。上述示例展示了其基本用法,开发者可以根据实际需求进行更深入的定制和扩展。