Files
kefu/wechat_rpa/BACKEND.md
T
2026-08-27 14:04:28 +08:00

101 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 配置管理后台
项目内置了一个零额外依赖的配置后台,用于统一管理登录账号、角色、AI 模型和 MCP 配置。
> 如果要把后台部署到另一台电脑、局域网服务器或云服务器,请直接查看独立文档 [BACKEND_DEPLOY.md](BACKEND_DEPLOY.md)。部署端只需要 `admin_api.py`(及它依赖的 `admin_backend.py` 数据层),不需要上传桌面端代码或安装桌面端依赖。
## 1. 启动后台
在项目目录运行:
```powershell
python admin_api.py
```
后台监听 `8766`(管理界面 + JSON 接口 + 桌面端同步都在这一个服务上)。端口被占用时会直接报错退出,不再静默顺延——顺延过的端口没人知道,排查时只会看到"连不上"。
桌面端会读取 `backend_runtime.json` 自动发现实际地址,无需手工修改。
> 早期版本还有一个 `8765` 的网页后台(服务端渲染 HTML)。它已整体退役:界面由 Vue 管理端承担,桌面端同步、调用留痕上报也都并进了 `admin_api.py`。`admin_backend.py` 仍在,但只作为数据层被引用,不再自己起服务。
浏览器打开控制台打印的地址。首次创建数据库时使用:
- 用户名:`admin`
- 初始密码:`Admin@123456`
首次登录必须修改密码。也可以在第一次启动前通过环境变量 `WECOM_ADMIN_INITIAL_PASSWORD` 设置不同的初始密码。
数据库默认保存在 `backend.db`,已加入 `.gitignore`。首次建库会读取当前 `ai_settings.json` 作为第一版模型配置。
## 2. 用户与角色
- 管理员(admin):管理用户、角色并发布模型配置。
- 配置员(operator):查看和发布模型配置,不能管理用户。
- 只读用户(viewer):查看后台并登录桌面端同步配置,不能修改配置。
管理员创建的新用户第一次登录网页时也必须修改初始密码,之后才能从桌面端登录。
## 3. 桌面端自动配置
启动 `wechat_gui.py`,进入“AI 人格与能力”页:
1. 点击“登录后台”。
2. 填写后台地址、用户名和密码。
3. 登录成功后,后台配置立即写入本机 `ai_settings.json` 并生效。
4. 桌面端以后会在启动时及每 5 分钟自动同步,也可以点击“立即同步”。
本机只保存 30 天有效的访问令牌,不保存后台密码。登录后台并启用自动同步后,本地 AI 配置字段会变成只读,以后台配置为准;退出后台后可恢复本地编辑。
后台发生端口冲突并自动更换端口时,同一项目目录中的桌面端会自动发现新地址;已有登录令牌可以继续使用。
同一台电脑上启动后台与桌面端时,后台会在 `backend_runtime.json` 发布一个仅限回环地址使用的临时只读同步凭证。桌面软件启动时会先检测该服务并拉取最新配置,所以即使没有保存后台账号登录,也会立即刷新“能力开关”“模型与身份”和“MCP 服务器”中的内容。该凭证不能管理用户或修改后台配置,后台停止后即失效。
## 4. 连接已部署的后台
后台所在电脑启动服务:
```powershell
python admin_api.py --host 0.0.0.0 --port 8766
```
桌面端后台地址填写服务器的局域网地址,例如 `http://192.168.1.20:8766`。需要在 Windows 防火墙中仅对可信局域网放行该端口。
Docker、云服务器、HTTPS、备份和升级步骤统一放在 [BACKEND_DEPLOY.md](BACKEND_DEPLOY.md),不再与桌面端使用说明混在一起。
## 5. 管理员密码恢复
停止后台后运行:
```powershell
python admin_api.py --reset-admin-password
```
按提示输入新密码。重置后已有 admin 登录令牌会失效,下次登录仍需再修改一次密码。
## API
- `POST /api/v1/auth/login`:桌面端登录并取得令牌。
- `POST /api/v1/auth/logout`:注销令牌。
- `GET /api/v1/me`:读取当前用户及角色。
- `GET /api/v1/config`:读取当前版本的模型配置。
- `POST /api/v1/model/test`:使用当前提交的模型地址、名称和可选密钥测试连通性(仅管理员和配置员;不会保存配置)。
- `GET /api/v1/desktop/config`:桌面软件启动时只读同步云端配置。
- `GET /health`:健康检查。
模型测试支持三种 `AI_PROVIDER_TYPE`
- `openai`OpenAI 兼容接口,向 `chat/completions` 发送最小对话请求。
- `dify`Dify 应用接口,向 `chat-messages` 发送 blocking 请求。
- `comfyui`ComfyUI 文生图服务,通过 `GET /system_stats` 检查服务状态。
管理页面可直接选择服务类型并点击“测试模型连通性”。测试使用页面当前值,不保存配置;API Key 留空时沿用后台已保存值,响应和审计记录均不会包含密钥。
## 云端开发模式
管理员或配置员可在“能力开关”中开启“开发模式”并发布。桌面端下次启动或定时同步后,会在“运行日志”显示:
- 云端配置请求的具体地址、配置版本和更新时间;
- 云端返回的具体配置;
- 每次模型调用采用的服务类型、模型名称、基础地址和最终请求地址。
所有诊断均会隐藏 API Key、Token、密码、认证头、Cookie 等敏感值,也不会输出聊天内容。关闭开关并发布后,桌面端下次同步起停止输出这些诊断信息。