摘要:为 AI 应用添加记忆层,能使它们更好地利用时间这一维度,在与用户的交互中不断学习持续调整,更好地提供个性化的能力。Mem0,就为 AI 应用提供了上下文记忆能力,能更好地适应个体需求。
如今 AI 智能体的应用越来越广泛了,它们各有所长,能为我们的日常生活工作提效。然而,每个人每个场景的需求都是各不一样的,个性化的需求正日益增加。
为 AI 应用添加记忆层,能使它们更好地利用时间这一维度,在与用户的交互中不断学习持续调整,更好地提供个性化的能力。Mem0,就为 AI 应用提供了上下文记忆能力,能更好地适应个体需求。
Mem0 是一个为 LLM 应用打造的智能记忆层,代码仓库位于 https://github.com/mem0ai/mem0。Mem0 为 AI 助手和智能体添加了一层记忆层,从而实现个性化的 AI 交互。其能够记住用户的偏好,适应个体需求,并随着时间的推移不断改进,因此非常适合用于客服聊天机器人和人工智能助手等。
Mem0 记忆层将大语言模型与向量存储相结合,LLM 负责从对话中提取和处理关键信息,而向量存储则支持高效的语义搜索和记忆检索,这种架构使得 AI 智能体能够将历史的交互与当前的上下文联系起来,从而提供更具相关性的回复。
Mem0 拥有以下特色功能:
记忆处理:利用大语言模型自动从对话中提取并存储重要信息,同时保留完整的上下文记忆管理:持续更新存储的信息,解决处理其中前后矛盾的地方,以确保信息的准确性双存储架构:使用向量数据库和图数据库,向量数据库用于记忆存储,图数据库用于关系跟踪智能检索系统:运用语义搜索和图查询,根据重要性和时效性查找相关记忆易用的 API 集成:提供易于使用的接口,用于添加和检索记忆Mem0 提供了 Python 和 JavaScript 支持,可以通过 pip 安装 mem0ai Python 包:
pip install mem0ai或通过 npm 安装 mem0ai JS 包:
npm install mem0aiMem0 依赖 LLM 大模型能力,默认使用 OpenAI 提供的 gpt-4o-mini,同时也支持大部分的主流模型提供商。使用 Mem0,首先引用其提供的 Memory 实现并初始化:
from openai import OpenAIfrom mem0 import Memoryopenai_client = OpenAImemory = Memory接下来实现一个带有记忆的聊天功能,首先使用 memory.search 进行历史记忆的搜索,然后把找到的记忆信息提供给 LLM 作为上下文。在 LLM 完成新一轮的交互回答后,把最新的对话加入到记忆中,以便后续使用。
def chat_with_memories(message: str, user_id: str = "default_user") -> str: # Retrieve relevant memories 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"]) # Generate Assistant response 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="gpt-4o-mini", messages=messages) assistant_response = response.choices[0].message.content # Create new memories from the conversation messages.append({"role": "assistant", "content": assistant_response}) memory.add(messages, user_id=user_id) return assistant_response最后,在 main 函数中启动对话循环,就能完成 Mem0 在 AI 对话中的集成了:
def main: print("Chat with AI (type 'exit' to quit)") while True: user_input = input("You: ").strip if user_input.lower == 'exit': print("Goodbye!") break print(f"AI: {chat_with_memories(user_input)}")if __name__ == "__main__": mainMem0 还支持接入 Ollama 来使用本地的模型能力,更好地保护数据隐私,进行以下配置即可使用:
config = { "llm": { "provider": "ollama", "config": { "model": "llama3.1:latest", "temperature": 0, "max_tokens": 2000, "ollama_base_url": "http://localhost:11434", # Ensure this URL is correct }, }, ...}m = Memory.from_config(config)Mem0 作为一个为 LLM 应用提供记忆层的解决方案,具有多语言支持、记忆检索、支持多种 LLM 等特点,为开发者提供了一个强大而灵活的工具。通过引入记忆层,Mem0 可以让 AI 更好地理解用户的历史交互,从而提供更个性化、更准确的回答。同时,Mem0 还提供了托管平台和开源包两种使用方式,满足了不同用户的需求。
Mem0 应用面广,尤其在一些与人交互频繁的 AI 系统中,能提供优于传统模型架构的用户体验。例如,在在智能客服场景中,Mem0 可以帮助客服机器人记住用户的历史问题和回答,从而提供更连贯、更个性化的服务;而在智能助手应用中,Mem0 可以让助手记住用户的偏好和习惯,提供更符合用户需求的建议和服务。
来源:每日开源代码