Files
qiweimanager-master/yuanzhipeng提交内容梳理.md
2026-06-29 17:44:22 +08:00

274 lines
11 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.
# 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`