前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Mem0 AI:开源一天斩获万星!超越 RAG、为LLM、Agent加上超强个性记忆!

Mem0 AI:开源一天斩获万星!超越 RAG、为LLM、Agent加上超强个性记忆!

作者头像
AI进修生
发布2024-12-02 19:07:14
发布2024-12-02 19:07:14
1.8K00
代码可运行
举报
文章被收录于专栏:AI进修生AI进修生
运行总次数:0
代码可运行

Aitrainee | 公众号:AI进修生

🌟Mem0 为大型语言模型提供了一个智能、自我改进的内存层,从而实现跨应用程序的个性化 AI 体验。

https://github.com/mem0ai/mem0

Hi,这里是Aitrainee,欢迎阅读本期新文章。

最近,OpenAI 投资了 370 万美金给一个叫 Dot 的应用,这个应用背后的核心技术是「超强个性记忆」,现在由 Mem0 开源了。

Mem0 在 GitHub 上开源仅 1 天就斩获近万星,超越 RAG、为LLM和Agent提供长期记忆。

Mem0 有几个厉害的地方:

  • 多层次的记忆:它能记住用户的偏好、过去的交互、事情的进展,就像你跟朋友聊天,朋友能记住你喜欢什么、不喜欢什么。
  • 自适应的个性化:从交互中持续学习,越用越聪明,真是个贴心的小助手。
  • 跨平台、API 友好:支持私有化部署,开发者可以轻松集成到各种平台。

Mem0 与 RAG 有何不同?

Mem0 可以用在很多场景,比如虚拟陪伴、生产力工具、健康关怀和 AI 客户支持等。

Mem0 是 RAG(Retrieval-Augmented Generation)技术的升级版。RAG 是从静态文档中检索信息,而 Mem0 更聪明:

  • 它关注实体和实体关系,能理解更复杂的信息。
  • 它关注最近、最相关的信息,还会遗忘不重要的东西。
  • 它能接力上下文,理解前后文的关系。
  • 它会动态更新信息,适应性学习。

Mem0 的核心价值是为个性化 AI 构建记忆层,这让 AI 更加智能和人性化。

OpenAI 投资的 Dot 应用已经上架 iOS,感兴趣的可以去试试。Mem0 的官方文档在这里:

https://docs.mem0.ai/integrations/multion

支持的大模型

如何在现有应用程序中使用mem0?

使用 Mem0,你可以创建基于 LLM 有状态的应用程序,例如聊天机器人、虚拟助理或 AI 代理。Mem0 通过提供做出响应的内存层来增强您的应用程序:

  • 更个性化
  • 更可靠
  • 通过减少LLM交互次数来实现成本效益
  • 更吸引人
  • 启用长期记忆

以下是 Mem0 如何集成到各种应用程序中的一些示例:

常见用例:

  • 个性化学习助手:长期记忆使学习助手能够记住用户的偏好、过去的互动和进度,从而提供更加定制化、有效的学习体验
  • 客户支持 AI 代理:通过保留以前交互的信息,客户支持机器人可以提供更准确、更具情境感知的帮助,提高客户满意度并缩短解决时间。
  • 医疗助理:长期记忆使医疗助理能够跟踪患者病史、用药时间表和治疗计划,确保个性化和一致的护理。
  • 虚拟伴侣:虚拟伴侣可以利用长期记忆,通过记住个人详细信息、偏好和过去的对话来与用户建立更深层次的关系,使互动更有意义。
  • 生产力工具:长期记忆可帮助生产力工具记住用户习惯、常用文档和任务历史记录,从而简化工作流程并提高效率。
  • 游戏 AI:在游戏中,具有长期记忆的 AI 可以通过记住玩家的选择、策略和进度并相应地调整游戏环境来创造更身临其境的体验。

🚀 快速入门

快速开始使用 Mem0!

欢迎来到 Mem0 快速入门指南。本指南将帮助您迅速上手 Mem0。

安装

要安装 Mem0,您可以使用 pip。在终端中运行以下命令:

代码语言:javascript
代码运行次数:0
运行
复制
pip install mem0ai

基本用法

初始化 Mem0
基础
代码语言:javascript
代码运行次数:0
运行
复制
from mem0 import Memory
m = Memory()
存储记忆
代码语言:javascript
代码运行次数:0
运行
复制
# 对用户存储记忆
result = m.add("Likes to play cricket on weekends", user_id="alice", metadata={"category": "hobbies"})
print(result)

输出:

代码语言:javascript
代码运行次数:0
运行
复制
[
  {
    'id': 'm1',
    'event': 'add',
    'data': 'Likes to play cricket on weekends'
  }
]
检索记忆
代码语言:javascript
代码运行次数:0
运行
复制
# 获取所有记忆
all_memories = m.get_all()
print(all_memories)

输出:

代码语言:javascript
代码运行次数:0
运行
复制
[
  {
    'id': 'm1',
    'text': 'Likes to play cricket on weekends',
    'metadata': {
      'data': 'Likes to play cricket on weekends',
      'category': 'hobbies'
    }
  },
  # 其他记忆...
]

# 通过 ID 获取单个记忆
specific_memory = m.get("m1")
print(specific_memory)

输出:

代码语言:javascript
代码运行次数:0
运行
复制
{
  'id': 'm1',
  'text': 'Likes to play cricket on weekends',
  'metadata': {
    'data': 'Likes to play cricket on weekends',
    'category': 'hobbies'
  }
}
搜索记忆
代码语言:javascript
代码运行次数:0
运行
复制
related_memories = m.search(query="What are Alice's hobbies?", user_id="alice")
print(related_memories)

输出:

代码语言:javascript
代码运行次数:0
运行
复制
[
  {
    'id': 'm1',
    'text': 'Likes to play cricket on weekends',
    'metadata': {
      'data': 'Likes to play cricket on weekends',
      'category': 'hobbies'
    },
    'score': 0.85  # 相似度得分
  },
  # 其他相关记忆...
]
更新记忆
代码语言:javascript
代码运行次数:0
运行
复制
result = m.update(memory_id="m1", data="Likes to play tennis on weekends")
print(result)

输出:

代码语言:javascript
代码运行次数:0
运行
复制
{
  'id': 'm1',
  'event': 'update',
  'data': 'Likes to play tennis on weekends'
}
记忆历史
代码语言:javascript
代码运行次数:0
运行
复制
history = m.history(memory_id="m1")
print(history)

输出:

代码语言:javascript
代码运行次数:0
运行
复制
[
  {
    'id': 'h1',
    'memory_id': 'm1',
    'prev_value': None,
    'new_value': 'Likes to play cricket on weekends',
    'event': 'add',
    'timestamp': '2024-07-14 10:00:54.466687',
    'is_deleted': 0
  },
  {
    'id': 'h2',
    'memory_id': 'm1',
    'prev_value': 'Likes to play cricket on weekends',
    'new_value': 'Likes to play tennis on weekends',
    'event': 'update',
    'timestamp': '2024-07-14 10:15:17.230943',
    'is_deleted': 0
  }
]
删除记忆
代码语言:javascript
代码运行次数:0
运行
复制
m.delete(memory_id="m1") # 删除单个记忆

m.delete_all(user_id="alice") # 删除所有记忆
重置记忆
代码语言:javascript
代码运行次数:0
运行
复制
m.reset() # 重置所有记忆

希望这篇文章对你有帮助,感谢阅读!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI进修生 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何在现有应用程序中使用mem0?
    • 🚀 快速入门
    • 安装
    • 基本用法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档