81 lines
2.3 KiB
Markdown
81 lines
2.3 KiB
Markdown
# 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: 主要问题:
|
||
1. 无法从 Docker Hub 拉镜像 → 提前下载导入或使用国内镜像
|
||
2. 无法访问 GitHub → 使用 gitea 托管代码
|
||
|
||
## Q: Self-host 需要哪些环境变量?
|
||
|
||
A: 核心变量:
|
||
```bash
|
||
# 数据库
|
||
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 服务托管
|
||
|
||
## Q: Swagger UI 可以随意注册用户,生产环境安全吗?
|
||
|
||
A: Mem0 系统级别的单用户模式——注册第一个 admin 用户后,系统禁止再注册新用户。 |