# 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`。