274 lines
11 KiB
Markdown
274 lines
11 KiB
Markdown
# 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`。
|