服务端仪表盘
服务器仪表盘
相关源文件
本章引用的主要源码文件:
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 后端交互,为核心内存操作提供了一个用户友好的界面。
概述与目的
服务器仪表盘专为开发者和运维人员设计,用于实时监控内存层。它提供了内存提取、存储和检索过程的可视化能力,这对于调试代理行为以及确保自托管部署中的数据质量至关重要 docs/open-source/features/rest-api.mdx:7-14。
主要功能
- 请求日志:API 调用的实时审计日志,包含方法、路径、状态和延迟信息
server/README.md:97-97。 - 内存浏览器:浏览内存,并支持按
user_id进行筛选server/README.md:98-98。 - 实体管理:列出并管理
user_id、agent_id和run_id实体,支持级联删除关联内存server/README.md:99-99。 - API 密钥管理:创建、标记和撤销每个用户的
m0sk_密钥server/README.md:100-100。 - 配置界面:热加载大语言模型(LLM)和嵌入向量的系统设置
server/README.md:101-101。
架构与数据流
仪表盘是一个独立的、使用 Next.js 构建的前端应用(运行在 3000 端口),它与 FastAPI 服务器(运行在 8888 端口)进行通信 server/docker-compose.yaml:9-55。
系统组件关系
下图展示了仪表盘如何与服务器的内部路由以及底层存储后端进行交互。
仪表盘到代码实体的映射
来源: server/main.py:153-166, server/server_state.py:34-34, server/main.py:101-112, server/docker-compose.yaml:52-60
核心仪表盘模块
1. 请求日志
仪表盘提供了服务器处理的每个请求的详细审计日志。这由 RequestLog 模型和 requests 路由支持 server/main.py:27-32。
- 排除项:为保持日志整洁,某些路径如
/api/health、/docs和/openapi.json会被排除。此外,以/requests为前缀的路径也会被跳过,以避免递归记录日志server/main.py:52-53。 - 实现:每个请求通过
new_request_id()分配一个唯一的request_id,并通过request_id_varContextVar 进行追踪,确保日志在异步任务中可追溯server/main.py:17-21。 - 保留策略:日志根据
REQUEST_LOG_RETENTION_DAYS(默认 30 天)进行维护,并可使用make prune-logs命令进行清理server/.env.example:31-33,server/Makefile:55-56。
2. 内存浏览器与实体管理
浏览器允许用户以可视化方式执行 search 和 get_all 操作。它支持 SDK 中提供的全部参数 server/main.py:189-195。
| 仪表盘部分 | 后端模型/路由 | 功能 |
|---|---|---|
| 内存 | SearchRequest | 支持 top_k 和 threshold 参数的语义搜索 server/main.py:189-195, tests/test_server_params.py:61-114 |
| 实体 | entities_router | 列出所有唯一标识符(user_id、agent_id、run_id)及其内存计数 server/main.py:31-31, server/README.md:99-99 |
| 操作 | MemoryCreate | 使用 infer 模式或自定义 prompt 插入内存 server/main.py:173-182, tests/test_server_params.py:132-166 |
3. 配置管理
仪表盘允许管理员在运行时查看和更新 MemoryConfig。更改会持久化到应用数据库,并在重启后重新应用,覆盖 .env 中的默认值 server/README.md:101-101。
配置数据流
来源: server/server_state.py:34-34, server/main.py:135-136, server/README.md:101-101
安全与认证
仪表盘通过多层认证系统来加强安全性。
- 登录流程:用户通过
POST /auth/login进行认证,以获取一个 JWTaccess_tokendocs/open-source/features/rest-api.mdx:152-155。 - CORS(跨域资源共享):服务器允许
DASHBOARD_URL(默认为http://localhost:3000),并支持allow_credentials=True以进行会话管理server/main.py:153-160。 - 敏感数据保护:诸如
admin_api_key、jwt_secret和password等密钥在SENSITIVE_CONFIG_KEYS中被标识,并会被编辑或过滤,以防止意外泄露server/main.py:42-51。 - 安全头部:仪表盘设置
X-Frame-Options: DENY和Content-Security-Policy: frame-ancestors 'none'以防止点击劫持server/README.md:113-122。
管理员设置与恢复
首次运行时,如果 User 表中没有用户,服务器会记录一条警告,并提供在 /setup 注册管理员的说明 server/main.py:59-80。管理员可以通过主机 shell 使用 make reset-admin-password 重置忘记的密码 server/README.md:64-73。
来源: server/main.py:16-16, server/main.py:162-163, server/README.md:57-63, server/Makefile:50-53