Posted in

Mem0 一款超强的可个性化 AI 记忆层的开源项目_AI阅读总结 — 包阅AI

包阅导读总结

1.

关键词:Mem0、AI 记忆层、开源项目、个性化、集成

2.

总结:Mem0 是一个解决大模型记忆能力的开源项目,能提供智能内存系统,支持多层次记忆、自适应个性化等核心功能,有快速开始指南、文档及与其他工具集成的示例,还有高级用法和未来路线图。

3.

主要内容:

– Mem0 项目

– 背景:解决大模型记忆能力问题

– 目标:提供智能、自我改进的内存系统,使 AI 交互个性化和具有上下文感知能力

– 核心功能

– 多层次记忆

– 自适应个性化

– 开发者友好 API

– 跨平台一致性

– 托管服务

– 快速开始

– 安装

– 基本用法:初始化、存储、检索、搜索、更新、记忆历史、删除、重置

– 文档

– 与 MultiOn 集成示例

– 安装库和设置配置

– 向 Mem0 添加记忆

– 检索相关记忆

– 浏览 arXiv

– 高级用法:使用 Qdrant 作为向量存储

– 路线图

– 与各种 LLM 提供商等集成

– 支持 LLM 框架等

– 支持

– 加入社区

– 联系方式

思维导图:

文章地址:https://mp.weixin.qq.com/s/reIJLL09Ma72abfeVP7pwg

文章来源:mp.weixin.qq.com

作者:山行AI

发布时间:2024/7/25 14:24

语言:中文

总字数:2118字

预计阅读时间:9分钟

评分:88分

标签:AI 记忆层,开源项目,个性化 AI,开发者 API,跨平台一致性


以下为原文内容

本内容来源于用户推荐转载,旨在分享知识与观点,如有侵权请联系删除 联系邮箱 media@ilingban.com

前言

一直以来,如何维持大模型的记忆能力都是一个令人工智能从业者头痛的问题,Mem0是一个新的在这方面表现良好的开源项目。

Mem0的目标是提供一个智能的、自我改进的内存系统,能够根据用户互动存储、回忆和完善信息,使AI交互更加个性化和具有上下文感知能力。

Mem0使AI系统能够维护针对特定用户、特定会话和特定代理的内存,这有助于在不同平台和设备上提供一致且定制的用户体验。

Mem0允许开发者通过一个开发者API轻松地将这种内存功能集成到不同的应用中,最终实现跨应用程序的个性化AI体验。

🔑 核心功能

多层次记忆:用户、会话和AI代理记忆保留自适应个性化:根据交互持续改进开发者友好API:简单集成到各种应用跨平台一致性:设备间行为一致托管服务:无忧的托管解决方案

🚀 快速开始

快速开始使用 Mem0!

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

安装

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

基本用法

初始化 Mem0

基本高级

from mem0 import Memorym = Memory()

存储记忆

# 针对某个用户result = m.add("周末喜欢打板球", user_id="alice", metadata={"category": "hobbies"})print(result)

输出:

[  {    'id': 'm1',    'event': 'add',    'data': '周末喜欢打板球'  }]

检索记忆

# 获取所有记忆all_memories = m.get_all()print(all_memories)

输出:

[  {    'id': 'm1',    'text': '周末喜欢打板球',    'metadata': {      'data': '周末喜欢打板球',      'category': 'hobbies'    }  },  # ... 其他记忆 ...]
# 按ID获取单个记忆specific_memory = m.get("m1")print(specific_memory)

输出:

{  'id': 'm1',  'text': '周末喜欢打板球',  'metadata': {    'data': '周末喜欢打板球',    'category': 'hobbies'  }}

搜索记忆

related_memories = m.search(query="Alice 的爱好是什么?", user_id="alice")print(related_memories)

输出:

[  {    'id': 'm1',    'text': '周末喜欢打板球',    'metadata': {      'data': '周末喜欢打板球',      'category': 'hobbies'    },    'score': 0.85  # 相似度得分  },  # ... 其他相关记忆 ...]

更新记忆

result = m.update(memory_id="m1", data="周末喜欢打网球")print(result)

输出:

{  'id': 'm1',  'event': 'update',  'data': '周末喜欢打网球'}

记忆历史

history = m.history(memory_id="m1")print(history)

输出:

[  {    'id': 'h1',    'memory_id': 'm1',    'prev_value': None,    'new_value': '周末喜欢打板球',    'event': 'add',    'timestamp': '2024-07-14 10:00:54.466687',    'is_deleted': 0  },  {    'id': 'h2',    'memory_id': 'm1',    'prev_value': '周末喜欢打板球',    'new_value': '周末喜欢打网球',    'event': 'update',    'timestamp': '2024-07-14 10:15:17.230943',    'is_deleted': 0  }]

删除记忆

m.delete(memory_id="m1") # 删除某条记忆
m.delete_all(user_id="alice") # 删除所有记忆

重置记忆

📖 文档

有关详细的使用说明和API参考,请访问我们的文档docs.mem0.ai[2]

MultiOn

构建记住用户偏好并自动化网页任务的个人浏览器代理。它将 Mem0 用于记忆管理,并与 MultiOn 集成,以执行浏览器操作,实现个性化和高效的网页交互。

概述

在此示例中,我们将创建一个基于浏览器的AI代理,在arxiv.org[3]上搜索与用户研究兴趣相关的论文。

设置和配置

安装必要的库:

pip install mem0ai multion

首先,我们将导入必要的库并设置配置。

import osfrom mem0 import Memoryfrom multion.client import MultiOn
# 配置OPENAI_API_KEY = 'sk-xxx' # 替换为你的实际OpenAI API密钥MULTION_API_KEY = 'your-multion-key' # 替换为你的实际MultiOn API密钥USER_ID = "deshraj"
# 设置OpenAI API密钥os.environ['OPENAI_API_KEY'] = OPENAI_API_KEY
# 初始化 Mem0 和 MultiOnmemory = Memory()multion = MultiOn(api_key=MULTION_API_KEY)

向 Mem0 添加记忆

接下来,我们将定义用户数据并将其添加到 Mem0。

# 定义用户数据USER_DATA = """关于我- 我是 Deshraj Yadav,Mem0 的联合创始人兼 CTO,感兴趣的领域是 AI 和 ML 基础设施。- 之前,我是特斯拉的高级自动驾驶工程师,负责自动驾驶 AI 平台。- 我在佐治亚理工学院开发了 EvalAI,一个用于评估 ML 算法的开源平台。- 工作之外,我喜欢在旧金山的两个联盟中打板球。"""
# 向记忆中添加用户数据memory.add(USER_DATA, user_id=USER_ID)print("用户数据已添加到记忆中。")

检索相关记忆

现在,我们将定义搜索命令并从 Mem0 中检索相关记忆。

# 定义搜索命令并检索相关记忆command = "找到我应该阅读的与我的兴趣相关的论文。"
relevant_memories = memory.search(command, user_id=USER_ID, limit=3)relevant_memories_text = '\n'.join(mem['text'] for mem in relevant_memories)print(f"相关记忆:")print(relevant_memories_text)

浏览 arXiv

最后,我们将使用 MultiOn 根据我们的命令和相关记忆浏览 arXiv。

# 创建提示并浏览 arXivprompt = f"{command}\n 我的过去记忆:{relevant_memories_text}"browse_result = multion.browse(cmd=prompt, url="https://arxiv.org/")print(browse_result)

结论

通过将 Mem0 与 MultiOn 集成,你已经创建了一个个性化的浏览器代理,它记住用户偏好并自动化网页任务。有关更多详情和高级用法,请参阅完整的cookbook here[4]

🔧 高级用法

对于生产环境,可以使用 Qdrant 作为向量存储:

from mem0 import Memory
config = { "vector_store": { "provider": "qdrant", "config": { "host": "localhost", "port": 6333, } }}
m = Memory.from_config(config)

🗺️ 路线图

与各种 LLM 提供商集成支持 LLM 框架与 AI 代理框架集成可定制的记忆创建/更新规则支持托管平台

🙋‍♂️ 支持

加入我们的 Slack 或 Discord 社区以获得支持和讨论。如果你有任何问题,请通过以下方式联系我们:

加入我们的 Discord[5]加入我们的 Slack[6]关注我们 Twitter[7]给我们发邮件[8]

声明

本文由山行翻译整理自:https://github.com/mem0ai/mem0,如果对您有帮助,请帮忙点赞、关注、收藏,谢谢!

其他热门项目速览:

GraphRAG-Local-UI将GraphRAG与本地大模型界面化的AI原生应用

GraphRAG会成为AI原生应用中RAG的终局吗?

Agentic Workflow会是AI的未来吗?

llm-graph-builder——从非结构化数据创建知识图谱

References

[1]:https://github.com/mem0ai/mem0#-documentation
[2]docs.mem0.ai:https://docs.mem0.ai/
[3]arxiv.org:https://arxiv.org/
[4]cookbook here:https://github.com/mem0ai/mem0/blob/main/cookbooks/mem0-multion.ipynb
[5]加入我们的 Discord:https://embedchain.ai/discord
[6]加入我们的 Slack:https://embedchain.ai/slack
[7]关注我们 Twitter:https://twitter.com/mem0ai
[8]给我们发邮件:mailto:founders@mem0.ai