自托管服务端
自托管服务器
相关源文件
本章引用的主要源码文件:
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 端点、内部状态管理以及底层存储后端之间的关系。
服务器实体关系
来源: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 到库
来源: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