chore(build): 更新.gitignore配置和清理Wails临时文件
- 添加dist/目录到.gitignore,用于排除打包输出的绿色免安装版 - 添加Wails打包过程中的临时文件和自动生成文件到.gitignore - 删除build/windows/installer/wails_tools.nsh自动生成文件 - 添加Windows安装器临时目录和Webview2安装文件到忽略列表 feat(docs): 添加万川平台对接文档和产品素材 - 创建万川平台登录到获取模型信息的流程说明文档 - 添加万川平台对接实施计划文档 - 新增产品图片、公司简介图、宣传海报、教程截图、案例展示等素材文件 refactor(runtime): 扩展通知功能类型定义 - 添加NotificationOptions接口定义 - 添加NotificationAction接口定义 - 添加NotificationCategory接口定义 - 扩展通知相关的运行时API类型声明,包括初始化、发送、注册分类等功能
This commit is contained in:
108
config/docs/万川平台对接-实施计划.md
Normal file
108
config/docs/万川平台对接-实施计划.md
Normal file
@@ -0,0 +1,108 @@
|
||||
# 万川平台对接 — 实施计划
|
||||
|
||||
> 本文为对接万川 AI 平台(登录 → 拉取模型配置)的实施计划。
|
||||
> 接口契约见同目录 [万川平台-登录到获取模型信息-流程说明.md](万川平台-登录到获取模型信息-流程说明.md)。
|
||||
|
||||
## 范围
|
||||
|
||||
### 本期做
|
||||
登录平台 → 拉模型配置 → **log 打印**。平台凭证可编辑、可持久化、可重置。
|
||||
|
||||
### 本期不做(留第二期)
|
||||
- 回填 AI 表单(`form.ai.*`)
|
||||
- 调 `SaveAutoReplyConfig` 落盘 + 推 helper 重载
|
||||
|
||||
理由:先打印确认平台返回的数据结构与解析结果正确,再接回填与保存。
|
||||
|
||||
## 架构决策
|
||||
|
||||
- **Go 只做透传代理 + 凭证存取**,不碰业务解析。仅用于绕开 WebView 的 CORS 限制。
|
||||
- **业务逻辑全在前端**:取 token、按 code 拉取、解析 `encryptedConfig`、字段映射。
|
||||
- **持久化存 `config/config.json`**(exe 同级,重启自动恢复,与浏览器无关),新增 `platformConfig` 段。不使用 localStorage。
|
||||
- ⚠️ 密码以明文存在 config.json(本地桌面工具常见做法)。如需更稳可加简单混淆,但非真加密。
|
||||
|
||||
## 一、Go 端
|
||||
|
||||
新文件:`wanchuan_proxy.go`(与 [app.go](../../app.go) 同级,main 包)。
|
||||
|
||||
### 1.1 透传代理方法(绑定到 App)
|
||||
|
||||
| 方法 | 行为 |
|
||||
|------|------|
|
||||
| `WanchuanLogin(baseUrl, username, password string) string` | POST `{baseUrl}/api/login`,body `{username, password, loginType:"user"}`;**原样返回**平台响应 JSON 字符串;日志打印(密码/token 打码) |
|
||||
| `WanchuanGetModel(baseUrl, code, token string) string` | GET `{baseUrl}/api/system/model/getByCode/{code}`;带头 `Authorization: Bearer {token}` 和 `token: Bearer {token}`;**原样返回**响应 JSON;日志打印 |
|
||||
|
||||
不解析 token、不合并字段、不存盘——平台返什么就返什么。
|
||||
|
||||
### 1.2 凭证存取方法(绑定到 App)
|
||||
|
||||
| 方法 | 行为 |
|
||||
|------|------|
|
||||
| `GetPlatformConfig() interface{}` | 读 config.json 的 `platformConfig` 段回前端 |
|
||||
| `SavePlatformConfig(jsonData string) (bool, string)` | 存 `platformConfig` 段(重置 = 存空值) |
|
||||
|
||||
### 1.3 config 结构改动
|
||||
|
||||
[config/types.go](../types.go) 新增结构并挂到 `Config`:
|
||||
|
||||
```go
|
||||
type PlatformConfig struct {
|
||||
BaseURL string `json:"baseUrl"`
|
||||
Username string `json:"username"`
|
||||
Password string `json:"password"`
|
||||
}
|
||||
|
||||
// Config 增加字段:
|
||||
// PlatformConfig PlatformConfig `json:"platformConfig"`
|
||||
```
|
||||
|
||||
[config/config_manager.go](../config_manager.go) 新增 `UpdatePlatformConfig`,复用现有 `SaveGlobalConfig`。
|
||||
|
||||
> 改了 App 方法后需跑 `wails dev` / `wails build` 重新生成 `frontend/wailsjs/go/main/App.js` 绑定。
|
||||
|
||||
## 二、前端
|
||||
|
||||
文件:[frontend/src/components/AutoReply.vue](../../frontend/src/components/AutoReply.vue),在 AI 配置区(`#auto-section-ai`,02)顶部新增「万川平台」卡片。
|
||||
|
||||
### 2.1 UI
|
||||
|
||||
- 输入框:平台地址 / 账号 / 密码(绑 reactive,挂载时 `GetPlatformConfig` 回填,可编辑)
|
||||
- 按钮「登录并获取模型」
|
||||
- 按钮「重置」:清空凭证(`SavePlatformConfig` 存空)后重新走一次流程
|
||||
|
||||
### 2.2 「登录并获取模型」逻辑
|
||||
|
||||
1. `SavePlatformConfig(当前输入)` 先存凭证
|
||||
2. `WanchuanLogin(url, user, pwd)` → `JSON.parse` → 多路径取 token:
|
||||
`token` / `data.token` / `data.access_token` / `access_token`
|
||||
3. 依次 `WanchuanGetModel(url, code, token)`:
|
||||
- `generic`(必拉)
|
||||
- `vision`、`voice`(可选,失败跳过)
|
||||
4. 每个响应取 `data.providerModels`,对 `encryptedConfig` 做**二次 `JSON.parse`**,
|
||||
得 `{ modelName, apiKey, endpointUrl }`
|
||||
5. **`console.log` + `LogFrontend` 打印**原始响应与解析结果 —— **到此为止。**
|
||||
|
||||
### 2.3 字段映射(供第二期参考)
|
||||
|
||||
| 万川 code | 解析字段 | AIConfig 字段 |
|
||||
|-----------|---------|---------------|
|
||||
| `generic` | endpointUrl / apiKey / modelName | `baseUrl` / `apiKey` / `model` |
|
||||
| `vision` | endpointUrl / apiKey / modelName | `visionBaseUrl` / `visionApiKey` / `visionModel` |
|
||||
| `voice` | endpointUrl / apiKey / modelName | `audioBaseUrl` / `audioApiKey` / `audioModel` |
|
||||
|
||||
(`summary_*` 无对应业务,忽略;知识库列表不拉。)
|
||||
|
||||
## 三、验证
|
||||
|
||||
- `go build` 通过;`wails dev` 起来后在 AI 配置区填真实平台地址/账号/密码,点「登录并获取模型」,
|
||||
看浏览器控制台和后端日志打印出 generic/vision/voice 的解析结果,确认 `endpointUrl/apiKey/modelName` 拿对。
|
||||
- 重启应用,确认账号密码自动回填(持久化生效)。
|
||||
- 点「重置」,确认凭证清空。
|
||||
|
||||
## 四、第二期(确认数据无误后)
|
||||
|
||||
把 2.2 第 5 步从"打印"改为:
|
||||
- 按 2.3 映射回填 `form.ai.*`
|
||||
- 调现有 `SaveAutoReplyConfig(form)` 落盘 + 推 helper 重载
|
||||
|
||||
至此 AI 配置实现平台动态下发。
|
||||
Reference in New Issue
Block a user