Mem0 项目主要解决了以下问题:

  1. 个性化 AI 体验:Mem0 为大型语言模型提供了一个智能的记忆层,使得 AI 可以根据用户的行为和偏好进行自我改进,从而提供更加个性化的体验。(其实用langchain或者自己写一个reacll都可以)
  2. 跨应用记忆保留:Mem0 实现了多层次记忆,包括用户记忆、会话记忆和 AI 代理记忆,确保了用户在不同应用中都能获得一致的体验。
  3. 开发者友好:提供了简单易用的 API,使得开发者可以轻松地将 Mem0 集成到各种应用程序中。(其实不方便, 暂时只支持openai)

快速使用 Mem0 的步骤如下:

  1. 安装:首先,你需要在你的开发环境中安装 Mem0。这通常可以通过包管理工具完成,例如使用 pip 安装 Python 包。
  2. 设置环境变量:在使用 Mem0 之前,需要设置一些环境变量,比如 OPENAI_API_KEY,这通常是为了使用某些依赖服务,如 OpenAI API。
  3. 初始化 Mem0:在代码中导入 Mem0 并初始化它。例如,在 Python 中,你可以这样做:
     

    python

    import os from mem0 import Memory os.environ["OPENAI_API_KEY"] = "你的API密钥" m = Memory()

  4. 存储记忆:使用 Mem0 的 add 方法存储来自任何非结构化文本的记忆。例如:
     

    python

    result = m.add("我正在提高我的网球技能。推荐一些在线课程。", user_id="alice", metadata={"category": "hobbies"}) print(result)

  5. 检索记忆:使用 get_all 方法检索所有记忆,或者使用 search 方法根据特定查询搜索相关记忆。
  6. 更新和获取记忆历史:使用 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公斤', '有一个同学叫王浩']
 

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐