大语言模型吧 关注:55贴子:123
  • 6回复贴,共1

mem0实现本地无需付费的graph模式

只看楼主收藏回复

刚才看到视频 BV1qb3AznEQV,竟然会有人因为AI记忆重置,哭了三小时……让我感觉,有点太过了些。。也让我觉得,可以提前发出来一些东西吧。本来准备永久记忆相关的东西延迟一段时间,到10月27再发的……
1.mem0的graph模式需要付费的默认用法:
mem0库,默认情况下,得付费之后才能使用graph模式。付费后,只需要在add和search时加上graph参数即可(如何构建add和search请看上个帖子:tieba.baidu.com/p/9780496942,该帖子内也介绍了如何设置mem0 key,openai key的内容)
add:
self.mem0_client.add(message, user_id=user_id, version="v2", metadata=metadata, enable_graph=self.is_graph
)
search:self.mem0_client.search(query,user_id=user_id,top_k=self.top_k,filter_memories=self.filter_memories,enable_graph=True,output_format="v1.1",)
此时,使用的是mem0自己的数据库,和存储空间,和使用mem0自己api key的agent进行各种解析和插入查询操作。
而官方其实提供了config,可以指定自己的数据库和agent的。

2.使用自己定义的config进行mem0的graph模式:
2.1本地需要下载一个neo4j 数据库,neo4j.com/download/。
2.2下载安装好,可成功运行后,有了自己的数据库账号密码后。来定义一个config:

此时,会使用本地的neo4j数据库。然后默认使用gpt-4o-mini作为AI agent,使用env环境变量的gpt密钥(也就是默认使用自己的密钥进行agent的访问)
如果需要修改agent为其他模型,可以这样设置:
config = {
"llm": {
"provider": "openai",
"config": {
"model": "gpt-4o-mini",
"temperature": 0.2,
"max_tokens": 2048,
},
},
"graph_store": {
"provider": "neo4j",
"config": {
"url": "bolt://localhost:7687",
"username": "neo4j",
"password": "你的neo4j密码"
},
"llm" : {
"provider": "openai",
"config": {
"model": "gpt-4.1-mini",
"temperature": 0.0,
"max_tokens": 2048}
}
}
}
解释:config下面直接的llm为add使用的agent设置。graph_store下面的llm为search使用的agent设置。
中间的neo4j为本地neo4j数据库
——graph模式的agent 使用token一下子大了非常多!自己需要额外花一笔apk调用费用了……但是实测更便宜的gpt-4.1-nano表现非常差!还是gpt-4o-mini效果更好些。也是mem0官方验证和测试过的版本。这块我自己就不改了~
2.3 qdrant数据库介绍:
mem0的add和search默认使用了两个数据库用于记忆管理,neo4j保存各种关系和链接。而qdrant保存语义分析内容。add和search是综合两个数据库进行查询和管理的。
而qdrant有一个非常离谱的坑:每次运行,会换一个collection,导致,上次插入的记忆,下次运行后,就是另一个collection了,完全查不到记忆!
为此,必须得固定一下qdrant的collection。在config中加入:
config={
"llm":{...},
"vector_store": {
"provider": "qdrant",
"config": {
"path": str(Path(r"你本地的qdrant_data路径")),
"collection_name": "mem0_vectors", #自己起一个固定的collection名称
"on_disk": True
},
},
"graph_store":{...},
}
这样,每次重新启动,都会使用固定路径,固定collection 的qdrant了。就不会出现,重新运行后,记忆完全查不到情况了。
2.4 在调试期间,依旧因为一些其他问题,导致程序重启后记忆查不到情况。经过我和我的gpt多日鏖战和定位,发现是python版本和第三方库版本问题。由此,请严格按照以下版本安装:
python:3.11.11 (应该3.11.x 版本都行)
mem0==0.1.104
langchain==0.3.9
langchain-neo4j==0.3.0
qdrant-client==1.10.1
numpy<2,>=1.26.4

3.mem0 graph默认的add,search代码,不做对话轮次和时间先后的区分。每次add并不会区分是user说话assistant说话的。为此我开启了一个新的,很重大的方向和领域……
我自己,在和gpt一起的研究与测试下,已经做出来了,能查询完整原文对话,和关联起来先后时间的代码。现在,我希望继续完善和打磨一段时间。现在就先藏着了~~
打算在今年10月27日发布!


IP属地:广东1楼2025-06-30 00:05回复
    最近又出来一个MIRIX,效果比mem0更好。
    哎……AI发展的真的迅猛啊,一边了解一边跟不上。


    IP属地:广东来自Android客户端2楼2025-07-23 13:53
    收起回复