Files
kefu/wechat_rpa/UI_COMPONENT_SPEC.md
T
2026-08-19 17:35:59 +08:00

147 lines
10 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.
# 甄养堂企业微信 AI 自动回复 v2.0 — UI 与交互规格
## 1. 全局规范
- 参考画布:窗口内容区固定基准为 `1630 × 920`Windows 原生标题栏约 `45px`,完整窗口对应 `1630 × 965`。小屏幕只做等比可用性收缩,不改变模块顺序。
- 字体:页面标题 `HarmonyOS Sans SC Bold / 700`;菜单和模块标题 `Medium / 500600`;正文 `Regular / 400`;数字指标 `Inter Semibold / 600`Windows 回退 `Microsoft YaHei UI`
- 字体文件随程序打包注册;没有安装系统字体时仍使用同一字体资源。
- 左侧导航:点击切换页面;选中态为蓝紫发光圆形图标和浅蓝背景;hover 为浅蓝底;底部监控球在停止时启动监听,在运行时停止监听。
- 数据原则:设计稿里的数值和会话文字是构图示例;运行时显示真实企业微信、队列、档案、AI 与日志数据,不以假数据覆盖业务状态。
- 页面内容区在基准窗口内不显示滚动条;会话正文、任务列表等局部数据区域按需内部滚动。
## 2. 桌面自动化控制台
### 顶部状态与任务概览
- 企业微信、AI 服务、发送模式和监听按钮:均展示真实运行状态;`自动发送` 启动监听,`暂停监听 / 恢复监听` 安全停止或恢复同一后台线程。
- `监听状态 / 排队 / 今日回复 / 失败`:从当前线程、待回复队列和执行日志动态汇总;只读展示,不允许直接改数。
- 任务队列:加载真实待处理会话;筛选和排序图标按既定顺序循环,不改变参考稿的图标、按钮数量或占位尺寸;刷新按钮立即重读队列与档案。
### 当前任务、执行链路与事件
- 当前处理任务:只读显示客户、已读取消息数、来源消息、回复预览、置信度和模型耗时;没有任务时保持同一卡片区域并显示空状态。
- `终止本任务`:二次确认后取消对应未完成回复;`转人工`:二次确认后停止自动发送并保留档案。
- 自动化执行状态:按真实阶段展示扫描、读取、合并、AI、回填和发送进度;企业微信窗口状态展示窗口识别、当前会话、DPI、人工保护和最小化恢复状态。
- 实时事件:显示最近四条真实事件;`查看完整日志` 跳转运行日志页。
## 3. 任务队列
### 顶部操作
- `自动发送`:点击后启动真实监听线程;线程已运行时给出运行中日志,不重复创建线程。
- `暂停监听`:点击后安全停止监听;未完成任务保留,恢复监听后继续处理。
- 企业微信、AI 状态胶囊:动态状态展示,不可编辑。
### 状态带与任务列表
- `处理中 / 等待中 / 待重试 / 平均等待`:每 2 秒从真实待回复文件更新。
- `全部 / 处理中 / 等待中 / 待重试`:单选筛选;只隐藏不匹配行,不删除任务。
- 任务列表:动态加载、内部滚动、不分页;选择任务后右侧详情同步更新。
- 刷新按钮:立即重读队列和执行记录。
- 空队列:正常运行显示“当前没有待处理任务”,不会伪造设计稿任务;只有 `--qt-smoke-test` 截图模式在真实队列不足时注入五条隔离的参考构图数据,演示项不能执行删除、转人工或导出。
### 任务详情
- 会话 ID、等待时间、重试次数、来源消息、当前阶段:只读动态数据。
- `取消任务`:要求二次确认;取消未完成自动回复,保留会话档案和执行记录。
- `立即重试`:只对所选 `retry_wait` 任务清除退避并重新排队;发送中、回执不确定、等待人工审核和正常任务受保护。监听未运行时会先启动监听,并在机器人初始化后执行重试。
- `转人工`:要求二次确认;取消该任务的后续自动发送并记录转人工日志,会话档案保留。
- `查看完整日志`:跳转运行日志页。
## 4. 会话归档
### 顶部筛选
- 搜索框:占位文字“搜索客户或会话 ID”,最大 80 字;按客户名、会话 ID 和摘要即时过滤。
- `全部会话 / 今日 / AI 已回复 / 已转人工 / 日期`:互斥筛选;筛选仅影响左侧可见列表。
- `导出记录`:打开保存对话框,导出全部真实会话及消息为 UTF-8 JSON;取消对话框不写文件。
### 数据区域
- 最近会话:最多加载 500 份档案,列表内部滚动,不分页;头像、名称、摘要、时间和状态来自档案数据。
- 会话记录:选择左侧会话后加载最近 8 条用于页面展示;区域内部滚动;完整记录仍可从详情和导出读取。
- 客户记忆、业务沉淀:展示长期上下文、挂号登记、回访和人工跟进状态。
- `复制全部记录`:打开所选会话的完整记录窗口,可复制完整文本。
- `标记已联系`:对选中的真实登记记录更新状态;没有选择时提示。
- `删除所选`:二次确认后删除所选会话档案;不可撤销。
## 5. AI 设置
### 顶部与分页锚点
- `基础设置 / 知识与工具 / 安全策略`:互斥选中;点击滚动定位到对应模块,不重排页面。
- `测试 AI`:先做配置预检,再异步调用真实 `ai_chat.call_ai_text`;只有收到非空响应才显示成功,模型未保存或请求失败会返回真实错误。
- `保存并发布`:校验 MCP JSON 后保存客服名、主模型、上下文轮数、最大回复、温度、工具开关和工具轮数;成功或失败给出短时状态反馈。
### 表单限制
- 客服名称:可编辑,最大 40 字;空值回退云端客服名。
- 人格提示词:明确标注为只读安全模板摘要,避免在 UI 层绕过现有 `build_system_prompt` 安全拼装逻辑。
- 当前模型:点击可输入模型标识并持久化为 `AI_MODEL`;备用模型由云端策略管理,本地点击只显示说明,不伪装成已切换。
- 上下文:`150` 轮;最大回复:`5032000 tokens`;温度:`0.002.00`
- MCP 最大轮数:`120`;高级 JSON 根节点必须为数组,否则禁止保存并显示错误。
- `立即同步`:执行真实云端配置同步;`管理知识`:打开本地数据目录。
- 数据区为动态状态展示;知识库、工具和安全策略卡片不分页。
## 6. 自动化设置
### 模式与保存
- `自动发送`:AI 回复通过全部安全校验后自动按 Enter,并按真实聊天证据核对回执。
- `审核后发送`:完成识别、AI 生成和全部发送前校验,只把回复填入企业微信输入框,绝不按 Enter;任务持久化为“等待人工审核”,人工发送后再按真实聊天证据完成归档。
- 两个模式按钮互斥,写入 `send_mode`;运行中修改会热更新,下一条回复起生效,经典界面共享同一配置。
- `保存设置`:立即保存;输入控件修改后 500ms 自动保存,成功或失败短时显示状态。
### 输入与开关
- 扫描间隔:`0.2300.0 秒`
- 连续消息等待:使用运行时允许的消息合并最小值和最大值。
- 发送前等待:独立参数 `030 秒`,发生在任何剪贴板/输入操作之前,可被停止或删除任务打断;等待结束重新执行任务与安全检查。
- 人工操作保护恢复:独立参数 `03600 秒`,默认 `5 秒`,不与发送前等待共用。
- 固定回复:最大 120 字;空值保存时使用安全默认回复。
- 人工操作保护开关:开启后只在鼠标达到静止时间后自动操作。
- `重新检测`:调用真实企业微信窗口检测并报告句柄或失败原因。
- 诊断、用药调整、投诉退款是内置只读风险类别,使用禁用状态而非空点击;`规则管理` 跳转到“AI 设置 → 安全策略”。
## 7. 运行日志
### 顶部操作
- `实时刷新`:默认开启;点击暂停可见事件流更新,再次点击恢复。暂停不影响后台日志落盘。
- `导出日志`:打开保存对话框,导出当前内存日志为 UTF-8 文本。
- `清空日志`:清空内存日志、五行事件流和警告计数;不删除已经落盘的历史日志文件。
- `监控中`:只读状态胶囊。
### 事件流
- `全部 / 连接 / 识别 / AI / 发送 / 警告`:互斥筛选。
- 搜索框:最大 80 字,按标题、详情和状态即时过滤。
- 页面保留最近 5 条结构化事件;完整内存日志最多 2000 个文本块,后台磁盘日志独立保留。
- 系统健康、回复链路、异常追踪和最近活动均为动态或运行状态展示,不分页。
## 8. 系统设置
### 基础、数据和通知
- 开机启动、启动后监听、最小化到托盘、关闭窗口后台运行、四类通知:可切换;点击“保存设置”后写入本地设置并跨重启保留。
- 最小化到托盘关闭时,运行中的窗口保持在任务栏;开启时进入监控胶囊。关闭窗口后台运行关闭时会正常停止并退出,开启时运行中关闭主窗进入监控胶囊。
- 界面语言当前固定为简体中文;缩放比例选项保存为 Qt 启动偏好,默认“自动”,重启后生效。
- 日志保留:`7365 天`
- `打开目录`:打开应用数据目录。
- `立即备份`:新建时间戳备份目录,复制存在的设置、档案、队列和登记数据。
- `清理缓存`:二次确认后只删除视觉状态和误判缓存,不删除会话及队列。
### 维护与诊断
- `连接测试`:显示本地服务状态。
- `检查更新`:读取缓存的发布状态并显示版本信息。
- `导出诊断`:保存版本、设置、数据目录和文件清单为 JSON。
- `恢复默认设置`:二次确认后恢复系统选项,不删除业务数据。
- `查看许可信息`:显示软件版本及随包字体许可说明。
- 系统状态带为只读结果展示,不分页。
## 9. 原有功能兼容层
- 原 PySide6 页面继续作为真实数据和业务动作的后端,不再作为可见页面重复占位;HTML 七页只负责按参考稿呈现。
- 队列、档案、AI、自动化、日志和系统设置仍复用既有存储、线程、安全校验与导出逻辑,换肤不会绕过原有安全检查或丢失已有数据。