2.1 KiB
2.1 KiB
Mem0 常见问题
Q: Mem0 和 OpenMemory 是什么关系?
A: OpenMemory 是 mem0ai/mem0 仓库下的一个子目录,不是独立项目。OpenMemory 使用 Qdrant 作为唯一存储后端,已被官方废弃(sunset),建议使用 server/ 目录。
Q: 为什么需要 TEI 和 Qdrant 两个东西?
A: 它们是完全不同的组件,分工合作:
- TEI:把文本转换成向量(理解语义)
- Qdrant:存储向量 + 搜索相似向量
类比:TEI 是翻译软件,Qdrant 是图书馆。两者缺一不可,但互相不知道对方存在,全靠 Mem0 Server 协调。
Q: Neo4j 是必须的吗?
A: 不是。大部分场景不需要 Neo4j:
- 普通语义搜索:Qdrant 足够
- 关系推理(如"我老婆的表哥的同事"):需要 Neo4j
建议先不加,只部署 Qdrant + PostgreSQL,跑起来后再按需扩展。
Q: 写入和读取记忆需要多少次请求?
A:
- 写入:2次(TEI生成向量 → Qdrant存储)
- 读取/搜索:3次(TEI生成查询向量 → Qdrant搜索 → LLM生成回答)
Q: 中国网络环境下如何部署?
A: 主要问题:
- 无法从 Docker Hub 拉镜像 → 提前下载导入或使用国内镜像
- 无法访问 GitHub → 使用 gitea 托管代码
Q: Self-host 需要哪些环境变量?
A: 核心变量:
# 数据库
POSTGRES_HOST=
POSTGRES_PORT=5432
POSTGRES_DB=
POSTGRES_USER=
POSTGRES_PASSWORD=
# 向量库
QDRANT_HOST=
QDRANT_PORT=6333
# Embedder
EMBEDDER_PROVIDER=tei
TEI_ENDPOINT=
# LLM
LLM_PROVIDER=
OPENAI_API_KEY=
# Auth
JWT_SECRET=
ADMIN_API_KEY=
AUTH_DISABLED=false
Q: Mem0 有官方 K8s 部署吗?
A: 没有官方 Helm Chart 或 K8s YAML。需要自行转换 docker-compose.yaml 为 K8s 资源,或使用社区方案。
Q: TEI 是否需要知道 Qdrant?
A: 不需要。TEI 只做向量生成(文本→向量),不存储任何数据,不与 Qdrant 通信。
Q: 为什么你的 mem0 代码 clone 这么慢?
A: 可能网络问题。可以尝试:
- 使用断点续传:
curl -C - -L -o file.tar.gz URL - 使用国内镜像或代理
- 通过 Gitea 等国内 Git 服务托管