feat: update auto reply and packaging

This commit is contained in:
ly1213
2026-06-29 17:44:22 +08:00
parent 1ca66dc0af
commit 2d5ee7f08d
19 changed files with 1147 additions and 227 deletions

View File

@@ -0,0 +1,273 @@
# yuanzhipeng 提交内容梳理
本文基于仓库 `qiweimanager-master-git` 中的 Git 历史整理,统计范围为:
```powershell
git log --all --author=yuanzhipeng
```
作者信息:`yuanzhipeng <2501363769@qq.com>`
## 1. 分支与提交概览
当前仓库里 `yuanzhipeng` 共有 4 个提交:
| 提交 | 日期 | 所在分支 | 标题 |
| --- | --- | --- | --- |
| `a926ee6` | 2026-06-25 | `main`, `origin/main`, `origin/HEAD` | `chore(build): 更新.gitignore配置和清理Wails临时文件` |
| `1517be2` | 2026-06-26 | `origin/develop` 历史 | `feat(auto-reply): 接入万川平台模型配置 + 各模型独立网关回退` |
| `849090a` | 2026-06-26 | `origin/develop` 历史 | `feat(auto-reply): 优化自动回复逻辑和知识库功能` |
| `1ca66dc` | 2026-06-26 | `origin/develop` | `docs(batch): 更新批处理脚本注释` |
需要注意:当前 `main/origin/main` 只包含 `a926ee6`;后续 3 个功能提交目前在 `origin/develop` 上。
`a926ee6^..1ca66dc` 汇总,整体变更约为:
- 51 个文件变化
- 2922 行新增
- 1299 行删除
- 删除旧备份文件 `helper/auto_reply_ai.go.bak`
- 删除 Wails 构建生成文件 `build/windows/installer/wails_tools.nsh`
## 2. 主要完善内容
### 2.1 万川平台模型配置接入
相关提交:`1517be2`
新增了万川平台配置能力,让自动回复模块可以从万川平台拉取模型配置并自动回填到本地 AI 配置。
主要内容:
- 新增后端接口文件 `wanchuan_proxy.go`
- `WanchuanLogin`:登录万川平台并获取 token。
- `WanchuanGetModel`:按模型 code 获取模型配置。
- `GetPlatformConfig` / `SavePlatformConfig`:读取和保存平台账号配置。
- 日志中对密码、token、apiKey 做脱敏处理。
- 配置结构新增 `PlatformConfig`,用于保存万川平台地址、账号、密码。
- 前端 `AutoReply.vue` 新增“万川平台”配置卡片:
- 填写平台地址、账号、密码。
- 一键“登录并获取模型”。
- 自动拉取 chat、vision、embedding、rerank、voice 等用途模型。
- 将模型名、网关地址、API Key 回填到自动回复配置。
- 前端 Wails 绑定新增:
- `GetPlatformConfig`
- `SavePlatformConfig`
- `WanchuanLogin`
- `WanchuanGetModel`
### 2.2 各类模型支持独立网关和独立 Key
相关提交:`1517be2`
完善了自动回复中不同模型的配置拆分,避免所有能力都被迫共用同一个文本模型网关。
主要内容:
- `RetrievalConfig` 新增:
- `embeddingBaseUrl`
- `embeddingApiKey`
- `rerankBaseUrl`
- `rerankApiKey`
- Embedding 和 Rerank 调用优先使用各自独立配置,未配置时才回退到主 AI 网关。
- 非 DashScope 网关下,视觉模型不再强行写死为 DashScope 的默认视觉模型。
- 万川统一网关场景下,视觉模型可动态复用聊天模型;如果平台提供独立 vision 配置,则使用独立 vision 网关。
- 当 embedding 模型或维度变化时,会识别旧向量索引已经属于不同向量空间,并提示或触发重建,避免旧索引造成检索异常。
### 2.3 自动回复上下文逻辑优化
相关提交:`849090a`
优化了客户追问、换话题和上下文拼接逻辑,减少模型被历史对话带偏的问题。
主要内容:
- 新增 `contextPromptForQuestion`
- 只有“它多少钱”“刚才那个再说说”“继续”等指代型追问才注入历史上下文。
- “今天星期几”“你们有什么产品”等自包含问题不再携带上一轮话题。
- 新增换话题识别:
- 如“换个话题吧”“聊点别的”“不聊这个了”会直接回复引导语。
- 如果“换个话题,你们产品多少钱”这类句子带了新问题,则继续正常处理新问题。
- Prompt 中强调上下文只用于理解称呼和承接,不应主动延续旧话题。
- 默认回复详细度从 `detailed` 调整为 `medium`,避免自动回复过长、太像模板。
### 2.4 知识库索引与向量检索增强
相关提交:`849090a`, `1517be2`
修复和增强了知识库扫描、向量索引、重排调用等流程。
主要内容:
- 知识库重建从只扫描根目录改为递归扫描子目录。
- 适配 `01_产品/数控机床/xxx.md``03_售后/故障排查/xxx.md` 这类分类目录。
- 重建知识库后,前端会显示扫描文件数、分片数、失败文件数。
- 如果 0 个文件被扫描到,会给出明显提示。
- 向量索引加载时检测模型名和维度是否与当前配置一致。
- 不一致时清空陈旧向量,回退关键词检索,并提示重建索引。
- Embedding/Rerank 请求支持独立 Base URL 和 API Key。
### 2.5 素材库扫描、匹配和开场白生成
相关提交:`a926ee6`, `849090a`
完善了素材库能力,尤其是目录化素材、误匹配控制和 AI 自动生成素材发送话术。
主要内容:
- 新增大量示例素材到 `config/materials`,包括:
- 产品图片
- 宣传海报
- 工作流图
- 教程截图
- 案例展示
- 联系方式卡片
- 素材扫描从根目录扫描改为递归扫描子目录。
- 素材路径保存为相对路径,并统一使用 `/` 分隔。
- 子目录名也会加入关键词,方便按分类命中素材。
- 新增 `CaptionSource` 字段,区分素材话术来源:
- `manual`:人工维护,重新同步时不覆盖。
- `ai`AI 生成,已有时不重复生成。
- 空值:历史数据或默认话术,可按需生成。
- 新增 `helper/auto_reply_material_caption.go`
- 图片使用视觉模型生成一句自然开场白。
- 视频按标题生成。
- 文档尝试抽取开头内容后概括。
- 生成结果会去引号、压缩换行、过滤 `NO_ANSWER`、限制长度。
- 素材匹配新增“强信号”门槛。
- 只有整词关键词、问句模板、完整标题或文件名命中才会发送素材。
- 仅靠 2-gram 模糊片段命中不会触发发送,减少误发资料。
### 2.6 媒体消息诊断和类型识别修复
相关提交:`849090a`
增强了企业微信媒体消息回调的识别和诊断能力。
主要内容:
- 修正 `rawTypeFromEvent` 对企业微信事件类型的判断。
- 优先使用 DLL 真实 `event` 字段。
- `content_type` 只作为模拟事件或旧版本 DLL 的 fallback。
- 避免文本消息被误判成图片,导致错误触发图片识别。
- 新增媒体字段为空时的诊断日志。
- 仅在图片、视频、链接等媒体消息且 URL、本地路径、FileID 全空时记录。
- 日志只记录媒体相关字段,避免泄露聊天内容。
### 2.7 构建、开发和打包流程完善
相关提交:`a926ee6`, `1ca66dc`
对 Windows/Wails 的开发和打包流程做了明显增强。
主要内容:
- `.gitignore` 增加构建输出、绿色免安装包、Wails 临时文件、WebView2 安装包等忽略规则。
- 删除 `build/windows/installer/wails_tools.nsh` 这类 Wails 自动生成文件,避免把临时产物提交进仓库。
- 新增 `scripts/dev.ps1`
- 自动定位 Go/Wails。
- 自动安装前端依赖和 Go 模块。
- 编译 32 位 GUI 子系统的 `helper.exe`
- 同步 DLL、`eventdata``requestdata` 到运行目录。
- 启动 `wails dev`
- 新增 `scripts/build.ps1`
- 构建 helper、silkdecode、主程序。
- 输出带时间戳的绿色免安装版目录。
- 写入默认配置文件和空素材索引。
- 改进 `scripts/package-windows.ps1`
- 自动探测 NSIS 标准安装路径。
- gcc 缺失时跳过 silkdecode而不是直接失败。
- 前端构建和 Wails NSIS 构建改为按退出码判断。
- 安装包文件名增加时间戳。
- 新增 `install-nsis.ps1`
- 新增根目录批处理:
- `启动开发.bat`
- `打包.bat`
- `1ca66dc` 对这两个 `.bat` 的注释做了英文化和简化。
### 2.8 主程序退出稳定性修复
相关提交:`a926ee6`
修复 Windows 下关闭主程序时可能因 helper 进程处理方式触发崩溃的问题。
主要内容:
- `main.go` 中 Windows 平台优先使用 Windows API 终止 helper。
- 终止后直接返回,不再继续走通用 `Signal/Kill` 分支。
- 避免 Go 1.25+ 中手工构造的 `os.Process` 因句柄模式无效触发 panic。
### 2.9 测试覆盖增加
相关提交:`1517be2`, `849090a`
补充了多个回归测试,主要覆盖自动回复和配置默认值。
新增或扩展的测试点包括:
- 非 DashScope 网关下视觉模型跟随聊天模型。
- DashScope 仍保留默认视觉模型兜底。
- 知识库递归扫描子目录。
- 素材模糊弱命中不应误发。
- 素材开场白生成、清洗、保留人工话术。
- 自动回复上下文只在指代追问时使用。
- 换话题句子的识别。
- embedding 索引模型/维度不一致时判定为陈旧。
- 默认回复详细度变更为 `medium`
## 3. 每个提交的简要说明
### `a926ee6`:构建体系、素材与基础修复
这个提交表面标题是 `.gitignore` 和 Wails 临时文件清理,但实际内容较多:
- 清理 Wails 自动生成文件。
- 新增万川平台对接文档。
- 新增大量素材图片。
- 新增开发/打包 PowerShell 脚本和 `.bat` 入口。
- 优化 Windows 打包脚本。
- 修复主程序退出时 helper 进程处理可能导致崩溃的问题。
### `1517be2`:万川平台模型配置接入
这是核心功能提交之一:
- 增加平台账号配置保存。
- 增加登录万川平台和拉取模型配置的后端接口。
- 前端新增万川平台配置区。
- 自动回填 chat、vision、embedding、rerank、voice 模型。
- Embedding 和 Rerank 支持独立网关。
- 删除旧的 `helper/auto_reply_ai.go.bak` 备份文件。
### `849090a`:自动回复、知识库和素材库优化
这是自动回复体验提升最集中的提交:
- 上下文只在指代追问时注入。
- 换话题句子直接回复引导语。
- 知识库递归扫描子目录。
- 素材库递归扫描子目录。
- 素材匹配增加强信号门槛,减少误发。
- 新增 AI 生成素材开场白。
- 调整回复详细度默认值和 prompt 策略。
- 增加媒体消息字段诊断日志。
### `1ca66dc`:批处理脚本注释更新
这个提交只改了两个 `.bat` 文件的注释:
- `启动开发.bat`
- `打包.bat`
功能逻辑没有明显变化,主要是说明文字调整。
## 4. 总结
整体来看,`yuanzhipeng` 的提交主要完善了 4 条主线:
1. **万川平台接入**:从平台登录、拉模型、保存配置到前端一键回填,形成了完整闭环。
2. **自动回复质量提升**:处理追问、换话题、回复长度、知识库完整性和媒体消息诊断,减少答非所问和误判。
3. **知识库/素材库能力增强**:支持目录化管理、递归扫描、向量索引一致性检查、素材自动开场白和误发控制。
4. **开发与交付流程完善**:新增一键开发/打包脚本,优化 NSIS、Wails、helper、DLL、运行资源同步降低 Windows 环境下的构建和运行成本。
如果按“是否已进主分支”看,目前只有 `a926ee6``main`;万川接入和自动回复深度优化主要还在 `origin/develop`