Self-Hosted 服务端(中文译文)
原始 DeepWiki 页面:https://deepwiki.com/mem0ai/mem0/12-self-hosted-server
翻译时间:2026-05-27T08:44:59.742Z
翻译模型:deepseek-chat
原文字符数:6670
项目:Mem0 (mem0)
---
自托管服务器
相关源文件
以下文件被用作生成此 Wiki 页面的上下文:
docs/open-source/features/rest-api.mdxexamples/graph-db-demo/alice-memories.pngexamples/graph-db-demo/memgraph-example.ipynbserver/.env.exampleserver/Dockerfileserver/Makefileserver/README.mdserver/dev.Dockerfileserver/docker-compose.yamlserver/main.pyserver/requirements.txttests/test_server_auth.pytests/test_server_params.py
Mem0 自托管服务器是一个基于 FastAPI 构建的 REST 层,通过 HTTP 协议暴露 Mem0 的全部功能。它允许团队将 Mem0 记忆层集成到任何应用栈中,无论使用何种编程语言,并提供了内置仪表盘用于记忆管理和监控 docs/open-source/features/rest-api.mdx:7-14。
该服务器专为生产环境的高可用性而设计,具备基于 JWT 的认证机制、按用户划分的 API 密钥管理,以及使用 PostgreSQL(含 pgvector 扩展)进行向量嵌入存储、使用 SQLite 进行记忆历史记录存储的健壮数据层 server/main.py:101-109, server/README.md:58-62。
系统总览
自托管架构由三个主要组件构成:
- FastAPI 服务器:负责处理记忆操作、搜索和配置的核心逻辑
server/main.py:139-149。 - 仪表盘:基于 Next.js 的 Web 界面,用于管理记忆、查看日志和配置系统
server/README.md:93-103。 - 数据库层:使用 PostgreSQL(含
pgvector)进行向量存储,使用本地 SQLite 数据库进行历史记录追踪server/main.py:101-109,server/docker-compose.yaml:32-33。
架构图
下图展示了 REST API 端点、内部状态管理以及底层存储后端之间的关系。
服务器实体关系
graph TD
subgraph "客户端层"
User["用户/代理"] -- "HTTP 请求 (X-API-Key)" --> FastAPI["FastAPI (main.py)"]
Admin["管理员用户"] -- "JWT 认证" --> Dashboard["Next.js 仪表盘"]
end
subgraph "API 层 (FastAPI)"
FastAPI --> AuthRouter["auth_router (server/routers/auth.py)"]
FastAPI --> MemRouter["记忆端点 (/memories, /search)"]
FastAPI --> ConfigRouter["server_state.py"]
end
subgraph "逻辑与状态"
MemRouter --> MemInst["记忆实例 (mem0ai)"]
ConfigRouter --> InitState["initialize_state()"]
InitState --> MemInst
end
subgraph "存储层"
MemInst --> PG["PostgreSQL (pgvector)"]
MemInst --> HistDB["history.db (SQLite)"]
AuthRouter --> SessionLocal["SessionLocal (db.py)"]
end
来源:server/main.py:162-165, server/main.py:126-132, server/server_state.py:34-34, server/README.md:93-103, server/db.py:26-26
---
服务器组件
自托管服务器将 Mem0 核心库与多用户环境所需的基础设施捆绑在一起。
核心 API 端点
服务器实现了标准的记忆 CRUD 操作,直接映射到 mem0 库的 Memory 类方法。
| 端点 | 方法 | 描述 | 库调用 |
|---|---|---|---|
/memories | POST | 从消息中添加新记忆 | memory.add() |
/search | POST | 使用过滤器搜索记忆 | memory.search() |
/memories/{id} | GET | 检索特定记忆 | memory.get() |
/memories | GET | 列出所有记忆(可带过滤器) | memory.get_all() |
/reset | POST | 清除所有记忆 | memory.reset() |
来源:server/main.py:173-200, tests/test_server_params.py:64-160
配置与状态
服务器通过 server_state.py 管理全局状态。启动时,它会使用 DEFAULT_CONFIG 初始化一个 Memory 实例,该配置包含 PostgreSQL 连接详情以及默认的大语言模型(LLM)/嵌入向量(Embedder)设置 server/main.py:113-136。
代码映射:API 到库
graph LR
subgraph "FastAPI 路由 (server/main.py)"
R1["POST /memories"]
R2["POST /search"]
end
subgraph "Pydantic 模式 (server/main.py)"
S1["MemoryCreate"]
S2["SearchRequest"]
end
subgraph "核心库 (mem0ai)"
M1["Memory.add()"]
M2["Memory.search()"]
end
R1 --> S1 --> M1
R2 --> S2 --> M2
来源:server/main.py:173-195, tests/test_server_params.py:64-143
---
子页面
服务器设置与部署
涵盖使用 make bootstrap 的启动流程、Docker Compose 编排以及环境变量配置 server/README.md:5-17。详细说明了如何设置 PostgreSQL/pgvector 后端以及处理初始管理员注册 server/docker-compose.yaml:32-50。 *详情请参阅 服务器设置与部署。*
服务器认证与安全
解释自托管服务器的安全模型。这包括仪表盘的 JWT 认证、按用户划分的 X-API-Key 管理(用于程序化访问),以及用于本地开发的 AUTH_DISABLED 标志 server/main.py:139-146, docs/open-source/features/rest-api.mdx:127-138。 *详情请参阅 服务器认证与安全。*
服务器仪表盘
内置管理界面的文档。涵盖按 user_id 浏览记忆、查看实时请求日志以进行审计、管理实体,以及运行时覆盖大语言模型(LLM)和嵌入向量(Embedder)提供商的配置 server/README.md:93-103。 *详情请参阅 服务器仪表盘。*
---
关键环境变量
服务器的行为主要由 .env 文件中定义的环境变量控制。
| 变量 | 用途 | 默认值 |
|---|---|---|
ADMIN_API_KEY | 用于程序化访问的旧版主密钥 | 无 |
JWT_SECRET | 用于签署仪表盘会话令牌的密钥 | 必填 |
AUTH_DISABLED | 绕过所有安全机制(仅限开发环境) | false |
POSTGRES_HOST | pgvector 数据库的主机 | postgres |
MEM0_TELEMETRY | 选择加入/退出匿名使用统计 | true |
来源:server/main.py:101-112, server/.env.example:14-29, server/main.py:83-87