微信扫码
添加专属顾问
我要投稿
一个能让AI助手拥有“长期记忆”的创新工具,大幅提升交互体验和智能化水平。 核心内容: 1. Mem0记忆层工具的设计理念和功能特性 2. 多层次记忆保留与自适应个性化能力 3. 开发者友好的API接口和跨平台一致性
随着 AI 技术的飞速发展,大模型在自然语言处理领域能力也是显而易见的,无论是 Kimi 的超长上下文处理能力,还是最近爆火的 DeepSeek 推理大模型,都能够处理复杂的语言任务并生成高质量的文本。然而,这些大模型在记忆方面存在明显的局限性。以 ChatGPT 和 DeepSeek 为例,尽管它们能够处理的上下文越来越长,但一旦超出上下文窗口的限制,就需要重新开启一个对话,仿佛“失忆”一般忘记之前交流的内容。这种“记忆断片”的现象严重影响了用户体验,尤其是在需要长期记忆和上下文连贯性的场景中。
#Github地址https://github.com/mem0ai/mem0#项目地址https://mem0.ai/
多层次记忆:支持用户级、会话级和AI代理级的记忆保留,确保信息在不同层面上得到适当的存储和利用。这使得Mem0能够处理不同层次的交互信息,从而提供更丰富的个性化体验
自适应个性化:根据用户交互不断改进,提供精准的个性化记忆。Mem0通过分析用户的使用模式,自动调整其行为以更好地满足用户需求
开发者友好的API:提供简单易用的API接口,方便开发者集成到现有的应用程序中。无论是构建虚拟陪伴应用还是生产力工具,Mem0都能轻松融入
跨平台一致性:无论在哪种设备上使用,Mem0都能保持统一的行为,确保用户体验的连贯性
混合数据库管理:Mem0利用混合数据库方法来管理和检索AI代理和助手的长期记忆。每个记忆都与一个唯一标识符关联,如用户ID或代理ID,允许Mem0组织和访问特定于个人或上下文的记忆
高效记忆检索:当使用 add()
方法向Mem0添加消息时,系统会提取相关的事实和偏好,并将其存储在向量数据库、键值数据库和图数据库中。这种混合方法确保了不同类型的信息以最有效的方式存储,使后续搜索快速有效
智能记忆更新:当AI代理或大型语言模型(LLM)需要回忆记忆时,它会使用search()
方法。Mem0然后在这些数据存储中执行搜索,从每个源检索相关信息。然后通过评分层传递这些信息,根据相关性、重要性和时效性评估其重要性,确保只有最个性化和有用的上下文信息被提取出来
增强的用户体验:检索到的记忆可以根据需要附加到LLM的提示中,增强其回应的个性化程度和相关性,从而显著提升用户体验
用户输入文本:用户向系统输入一段文本。
文本嵌入:将文本转换为向量表示,以便进行相似性搜索和记忆存储。
记忆提取:从文本中提取出有价值的记忆信息,如用户的偏好和事实。
记忆存储:将提取的记忆信息存储在向量数据库中。
LLM处理:利用大语言模型(LLM)生成回答。
记忆更新:将新的对话内容作为记忆写入系统。
记忆检索:在后续对话中检索相关记忆,为LLM提供上下文信息。
pip install mem0ai
import requests
from mem0 import Memory
# 初始化记忆对象
memory = Memory()
def chat_with_memories(message: str, user_id: str = "default_user") -> str:
"""
利用 Mem0 和 Ollama 部署的 DeepSeek 实现带有记忆功能的对话
Args:
message (str): 用户输入的消息
user_id (str, optional): 用户的唯一标识符,默认为 "default_user"
Returns:
str: AI 的回答
"""
# 搜索与当前消息相关的记忆
relevant_memories = memory.search(query=message, user_id=user_id, limit=3)
# 将记忆格式化为字符串,以便在提示中使用
memories_str = "\n".join(f"- {entry['memory']}" for entry in relevant_memories)
# 定义系统提示,包含记忆信息
system_prompt = f"你是一个乐于助人的AI。请根据用户的问题和相关记忆来回答。\n用户记忆:\n{memories_str}"
# 构建提示内容,包含系统提示和用户消息
prompt = f"{system_prompt}\n\n用户问题:{message}"
# 调用 Ollama 部署的 DeepSeek API 获取回答
response = requests.post(
"http://xxx.xxx.xxx.xxx:11434/api/generate",
json={
"model": "deepseek-r1:1.5b",
"prompt": prompt,
"stream": false
}
).json()
# 提取助手的回答内容
assistant_response = response.get('response', '很抱歉,我无法理解你的问题。')
# 将对话内容作为记忆写入
memory.add([
{"role": "user", "content": message},
{"role": "assistant", "content": assistant_response}
], user_id=user_id)
return assistant_response
def main():
"""主函数,用于与 AI 进行对话"""
print("与AI聊天(输入'exit'退出)")
while True:
user_input = input("您: ").strip()
if user_input.lower() == 'exit':
print("再见!")
break
print(f"AI: {chat_with_memories(user_input)}")
if __name__ == "__main__":
main()
初始化记忆对象:
memory = Memory()
创建一个记忆对象,用于存储和检索用户记忆。
定义对话函数 chat_with_memories
:
参数:
message
:用户输入的消息。
user_id
:用户的唯一标识符,用于区分不同用户的记忆。
功能:
搜索与当前消息相关的记忆。
格式化记忆信息,构建系统提示。
调用 Ollama 部署的 DeepSeek API 获取 AI 的回答。
将对话内容作为记忆写入 Mem0
主函数 main
:
提供一个简单的命令行界面,可以与 AI 进行对话。
循环获取用户输入,调用 chat_with_memories
函数获取 AI 回答,并打印结果。
与AI聊天(输入'exit'退出)您: 你好,今天天气怎么样?AI: 你好!今天天气不错,适合出去走走。你最近喜欢什么样的天气呢?您: 我喜欢晴天。AI: 晴天确实是个好天气,阳光明媚,心情也会变好呢!那你会在晴天做些什么呢?您: 我会在晴天去公园散步。AI: 听起来很惬意呢!下次晴天的时候,你可以去公园散散步,放松一下心情。希望你有个美好的一天!您: exit再见!
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-10-27
2024-09-04
2024-07-18
2024-05-05
2024-06-20
2024-06-13
2024-07-09
2024-07-09
2024-05-19
2024-07-07