Mem0 - 有记忆的智能体 -快速上手
Mem0 项目主要解决了以下问题:
- 个性化 AI 体验:Mem0 为大型语言模型提供了一个智能的记忆层,使得 AI 可以根据用户的行为和偏好进行自我改进,从而提供更加个性化的体验。(其实用langchain或者自己写一个reacll都可以)
- 跨应用记忆保留:Mem0 实现了多层次记忆,包括用户记忆、会话记忆和 AI 代理记忆,确保了用户在不同应用中都能获得一致的体验。
- 开发者友好:提供了简单易用的 API,使得开发者可以轻松地将 Mem0 集成到各种应用程序中。(其实不方便, 暂时只支持openai)
快速使用 Mem0 的步骤如下:
- 安装:首先,你需要在你的开发环境中安装 Mem0。这通常可以通过包管理工具完成,例如使用 pip 安装 Python 包。
- 设置环境变量:在使用 Mem0 之前,需要设置一些环境变量,比如
OPENAI_API_KEY,这通常是为了使用某些依赖服务,如 OpenAI API。 - 初始化 Mem0:在代码中导入 Mem0 并初始化它。例如,在 Python 中,你可以这样做:
python
import os from mem0 import Memory os.environ["OPENAI_API_KEY"] = "你的API密钥" m = Memory() - 存储记忆:使用 Mem0 的
add方法存储来自任何非结构化文本的记忆。例如:python
result = m.add("我正在提高我的网球技能。推荐一些在线课程。", user_id="alice", metadata={"category": "hobbies"}) print(result) - 检索记忆:使用
get_all方法检索所有记忆,或者使用search方法根据特定查询搜索相关记忆。 - 更新和获取记忆历史:使用
update方法更新记忆,并使用history方法获取特定记忆的历史记录。
通过这些步骤,你可以快速开始使用 Mem0 来增强你的应用程序的个性化 AI 功能。如果你需要更详细的指导,可以访问 Mem0 的官方文档 docs.mem0.ai。
实际测试
需要openai 的api,如果不能翻墙,可以使用中转服务,我这里用的是xiapi、
先上Xi-Api 注册账号, 注册完之后就可以调用gpt了, 赠送额度为0.2美金。用完了需要充值。
然后在令牌中创建一个新令牌, 获得api key ,填入下面的OPENAI_API_KEY、
然后用 m.add 新增一些记忆
再用m.search进行记忆搜索
import os
from mem0 import Memory
# 设置base url
os.environ["OPENAI_API_KEY"] = "sk-a2Are0G0rkXe4115A0381555D0F10c4c"
os.environ["OPENAI_BASE_URL"] = "https://api.xi-ai.cn/v1"
# Initialize Mem0
m = Memory()
# Store a memory from any unstructured text
# result = m.add("我正在努力提高我的网球技能。请推荐一些在线课程。", user_id="爱丽丝", metadata={"category": "hobbies"})
# print(result)
# # Created memory: Improving her tennis skills. Looking for online suggestions.
#
# # Retrieve memories
# all_memories = m.get_all()
# memory_id = all_memories[0]["id"] # get a memory_id
# print(all_memories)
#
# # Search memories
# related_memories = m.search(query="爱丽丝的爱好是什么", user_id="alice")
# print(related_memories)
girl = {
"name": "李晓晴",
"birthplace": "深圳南山",
"birthdate": "2004-06-15",
"zodiac": "双子座",
"mbti": "ENFP",
"personality": "乐观开朗,富有创造力和同情心,喜欢与人交流,对新鲜事物充满好奇。",
"hobbies": [
"绘画",
"旅行",
"阅读科幻小说",
"学习外语"
],
"appearance": {
"height": "165cm",
"weight": "50kg",
"hair_color": "黑发",
"eye_color": "棕色"
},
"friend_circle": [
{
"name": "张婷",
"relationship": "闺蜜",
"common_interests": ["绘画", "旅行"]
},
{
"name": "王浩",
"relationship": "同学",
"common_interests": ["阅读", "学习外语"]
},
{
"name": "赵敏",
"relationship": "邻居",
"common_interests": ["运动", "音乐"]
}
]
}
prompt = """
李晓晴出生在深圳南山。
她的生日是2004年6月15日。
李晓晴是双子座。
她的MBTI类型是ENFP。
李晓晴性格乐观开朗,富有创造力和同情心。
她喜欢绘画、旅行、阅读科幻小说和学习外语。
李晓晴身高165厘米,体重50公斤。
她的头发是黑色的,眼睛是棕色的。
李晓晴有一个闺蜜叫张婷,她们共同喜欢绘画和旅行。
她有一个同学叫王浩,他们共同喜欢阅读和学习外语。
李晓晴还有一个邻居叫赵敏,他们共同喜欢运动和音乐。
"""
for content in prompt.splitlines() :
if content.strip():
m.add(data=content, user_id="李晓晴" )
qs = """
李晓晴的生日是哪一天?
李晓晴的星座是什么?
李晓晴的MBTI类型是哪一种?
李晓晴有哪些兴趣爱好?
李晓晴的身高和体重分别是多少?
"""
for content in qs.splitlines() :
if content.strip():
related_memories = m.search(content, user_id="李晓晴")
print(content )
print([e['text'] for e in related_memories][:3])
# # Update a memory
# result = m.update(memory_id=memory_id, data="Likes to play tennis on weekends")
# print(result)
#
# # Get memory history
# history = m.history(memory_id=memory_id)
# print(history)
记忆搜索效果
李晓晴的生日是哪一天?
ji['生日是2004年6月15日', '有一个同学叫王浩', '出生在深圳南山']
李晓晴的星座是什么?
['星座是双子座', '性格乐观开朗', '出生在深圳南山']
李晓晴的MBTI类型是哪一种?
['MBTI类型是ENFP', '性格乐观开朗', '富有创造力']
李晓晴有哪些兴趣爱好?
['喜欢学习外语,和同学王浩共同喜欢学习外语', '喜欢绘画,有一个闺蜜叫张婷,和闺蜜共同喜欢绘画', '喜欢阅读科幻小说,和同学王浩共同喜欢阅读']
李晓晴的身高和体重分别是多少?
['身高165厘米', '体重50公斤', '有一个同学叫王浩']
更多推荐
所有评论(0)