- 添加dist/目录到.gitignore,用于排除打包输出的绿色免安装版 - 添加Wails打包过程中的临时文件和自动生成文件到.gitignore - 删除build/windows/installer/wails_tools.nsh自动生成文件 - 添加Windows安装器临时目录和Webview2安装文件到忽略列表 feat(docs): 添加万川平台对接文档和产品素材 - 创建万川平台登录到获取模型信息的流程说明文档 - 添加万川平台对接实施计划文档 - 新增产品图片、公司简介图、宣传海报、教程截图、案例展示等素材文件 refactor(runtime): 扩展通知功能类型定义 - 添加NotificationOptions接口定义 - 添加NotificationAction接口定义 - 添加NotificationCategory接口定义 - 扩展通知相关的运行时API类型声明,包括初始化、发送、注册分类等功能
4.8 KiB
4.8 KiB
万川平台对接 — 实施计划
本文为对接万川 AI 平台(登录 → 拉取模型配置)的实施计划。 接口契约见同目录 万川平台-登录到获取模型信息-流程说明.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 同级,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 新增结构并挂到 Config:
type PlatformConfig struct {
BaseURL string `json:"baseUrl"`
Username string `json:"username"`
Password string `json:"password"`
}
// Config 增加字段:
// PlatformConfig PlatformConfig `json:"platformConfig"`
config/config_manager.go 新增 UpdatePlatformConfig,复用现有 SaveGlobalConfig。
改了 App 方法后需跑
wails dev/wails build重新生成frontend/wailsjs/go/main/App.js绑定。
二、前端
文件:frontend/src/components/AutoReply.vue,在 AI 配置区(#auto-section-ai,02)顶部新增「万川平台」卡片。
2.1 UI
- 输入框:平台地址 / 账号 / 密码(绑 reactive,挂载时
GetPlatformConfig回填,可编辑) - 按钮「登录并获取模型」
- 按钮「重置」:清空凭证(
SavePlatformConfig存空)后重新走一次流程
2.2 「登录并获取模型」逻辑
SavePlatformConfig(当前输入)先存凭证WanchuanLogin(url, user, pwd)→JSON.parse→ 多路径取 token:token/data.token/data.access_token/access_token- 依次
WanchuanGetModel(url, code, token):generic(必拉)vision、voice(可选,失败跳过)
- 每个响应取
data.providerModels,对encryptedConfig做二次JSON.parse, 得{ modelName, apiKey, endpointUrl } 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 配置实现平台动态下发。