Files
qiweimanager-master/config/docs/万川平台对接-实施计划.md
yuanzhipeng a926ee6b1b chore(build): 更新.gitignore配置和清理Wails临时文件
- 添加dist/目录到.gitignore,用于排除打包输出的绿色免安装版
- 添加Wails打包过程中的临时文件和自动生成文件到.gitignore
- 删除build/windows/installer/wails_tools.nsh自动生成文件
- 添加Windows安装器临时目录和Webview2安装文件到忽略列表

feat(docs): 添加万川平台对接文档和产品素材

- 创建万川平台登录到获取模型信息的流程说明文档
- 添加万川平台对接实施计划文档
- 新增产品图片、公司简介图、宣传海报、教程截图、案例展示等素材文件

refactor(runtime): 扩展通知功能类型定义

- 添加NotificationOptions接口定义
- 添加NotificationAction接口定义
- 添加NotificationCategory接口定义
- 扩展通知相关的运行时API类型声明,包括初始化、发送、注册分类等功能
2026-06-25 18:13:11 +08:00

4.8 KiB
Raw Permalink Blame History

万川平台对接 — 实施计划

本文为对接万川 AI 平台(登录 → 拉取模型配置)的实施计划。 接口契约见同目录 万川平台-登录到获取模型信息-流程说明.md

范围

本期做

登录平台 → 拉模型配置 → log 打印。平台凭证可编辑、可持久化、可重置。

本期不做(留第二期)

  • 回填 AI 表单(form.ai.*
  • SaveAutoReplyConfig 落盘 + 推 helper 重载

理由:先打印确认平台返回的数据结构与解析结果正确,再接回填与保存。

架构决策

  • Go 只做透传代理 + 凭证存取,不碰业务解析。仅用于绕开 WebView 的 CORS 限制。
  • 业务逻辑全在前端:取 token、按 code 拉取、解析 encryptedConfig、字段映射。
  • 持久化存 config/config.jsonexe 同级,重启自动恢复,与浏览器无关),新增 platformConfig 段。不使用 localStorage。
    • ⚠️ 密码以明文存在 config.json本地桌面工具常见做法。如需更稳可加简单混淆但非真加密。

一、Go 端

新文件:wanchuan_proxy.go(与 app.go 同级main 包)。

1.1 透传代理方法(绑定到 App

方法 行为
WanchuanLogin(baseUrl, username, password string) string POST {baseUrl}/api/loginbody {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-ai02顶部新增「万川平台」卡片。

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(必拉)
    • visionvoice(可选,失败跳过)
  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 配置实现平台动态下发。