449c6d4875
## H5 员工端 v4 (2026-07-13 00:48 已部署)
- 人工按钮三态文案统一为"人工坐席"
- 按钮位置移至发送键和语音按钮上方(垂直堆叠)
- 点按钮直接调 store.shakeAgent(),删除 CallAgentModal 弹窗动画
- 截图快捷键提示改为"截图->粘贴:Alt+Shift+A-Ctrl+V ---> Ctrl+V"
- 移动端隐藏截图提示(CSS 媒体查询)
- AI转人工提示改为"已为您呼叫人工坐席,请稍等!"
- 坐席接入提示改为"坐席正在查看您的信息,请等待处理回复!"
- 删除"摇铃呼叫坐席"入口和文案
- 删除孤儿组件 MessageList.vue + shake 动画 CSS
## H5 员工端 v5 (2026-07-13 02:08 已部署)
- RightPanel v2.1:删除"软件安装"和"资源权限"标签页
- 移除标签栏,智能推荐(DynamicRecommend)直接展示
- 删除 SoftwareDownloads/ApprovalLinks 引用和相关 CSS
## AI 对话链路全栈改造 Phase 1-6 (已部署)
- Phase 1: Dify JSON输出 + 后端blocking解析 + 双WS推送 + 错误降级
- Phase 2: 关键词收窄(~25强意图词) + 两级分类Prompt + 删除前端checkApprovalIntent
- Phase 3: WS扩展(ai_thinking+dynamic_recommend) + ai_structured气泡 + RightPanel v2 + 选项回传
- Phase 4: VisionService接入 + 图片消息融合(5秒窗口) + 降级策略
- Phase 5: 坐席端ai_thinking指示器 + ai_structured/byod_card渲染 + handleNewMessage修复
- Phase 6: diagnosis_stage(6值) + response_time_ms计时 + 慢响应告警(>10s)
## 坐席端 v5 (2026-07-13 01:38 已部署)
- ai_structured/byod_card 只读渲染
- AI思考指示器 UI
- handleNewMessage 透传 msg_type/extra_data 修复
- 布局优化v2.0: QuickReplyBar L1+L2悬浮 + ReplyBox左右分区 + 右栏260/560px切换
- 键盘快捷键v2.3: 纯数字路由 + ESC分层撤销 + Shift+Space用event.code
## 上下文感知智能诊断闭环 (2026-07-12 已部署)
- 三层诊断(API→Script→AI) + 三段排队(VIP→info_locked→not locked)
- 答题插队 + 五场景关闭
- 迁移052(6表+6列) + queue_service + quiz_service + closing_service
- H5前端: QueueWaiting + RightPanel双Tab + InputBar三态 + ResolveConfirmCard
- 坐席前端: pending_close结单流程 + 信息锁定(Dify步骤完成+有效回答率≥70%)
## 知识库迭代3 (2026-07-12 已部署)
- 分诊交互(H5+坐席+Dify独立应用)
- 拓扑预览(ECharts只读)
- 代答排除(4种匹配器: keyword/regex/intent/category)
- 迁移051 + 44文件43测试通过
## 后端变更
- 6个Python文件改造(h5_ai_task.py/h5.py/ai_service.py/closing_service.py等)
- funny_phrase_service.py: shake/connected/keyword 默认文案更新
- session_service.py: 企微消息文案同步
- 新增: queue.py/quiz.py/triage.py/exclusion_rules.py 等API端点
- 新增: diagnostic.py/quiz.py/triage_session.py 等模型
- 新增: closing_service/queue_service/quiz_service/triage_service 等服务
## 文档更新
- CHANGELOG.md: 新增 [未发布] 区全部变更记录
- 项目管理主文档 v2.5: 新增v0.7.3版本 + 已完成看板 + 最近搞定
- 版本记录: 新增v0.7.3条目
- AI对话链路实施计划: Phase 1-6 全部标记✅已实施
- 新增架构图/时序图/类图(mermaid)
## 部署路径修正
- 服务器项目根路径: /opt/wecom-it-desk/
- 所有前端dist均为ro bind mount,只能在宿主机源路径操作
- 服务器nginx /h5/ 是静态文件服务(非proxy_pass)
- elFinder上传二进制不可靠(MD5不匹配),改用base64分块上传
9.2 KiB
9.2 KiB
IT智能服务台 - 项目记忆
设计决策(锁定)
- AI交互:小段多回合;术语:员工端"人工坐席"按钮 = 用户呼叫坐席(统一命名,不再用"人工"/"摇人"变体);"摇人"=坐席呼叫坐席
- 原型:坐席v5.3 + H5 v1.1;UI:企微浅色扁平,accent=#07C160
- 统一入口
/itportal/→ user/agent/admin;admin需OTP - H5 v4(2026-07-13 00:48 已部署):人工按钮三态文案统一为"人工坐席";位置在"发送键和语音按钮上方"(垂直堆叠于
.input-bar__controls容器内);点按钮直接调store.shakeAgent(),不弹 CallAgentModal 浮窗动画;截图说明 PC 显示/移动端隐藏(CSS 媒体查询) - H5 v5(2026-07-13 02:08 已部署):RightPanel v2.1 — 删除"软件安装"和"资源权限"标签页,移除标签栏,智能推荐直接展示;JS hash
index-BP1rEZIf.js,CSS hashindex-DC1iZpKe.css - Agent v5(2026-07-13 01:38 已部署):ai_structured/byod_card 只读渲染 + AI思考指示器 + handleNewMessage 透传 msg_type/extra_data 修复;JS hash
index-2BTn4SZz.js - 后端 v5(2026-07-13 01:38 已部署):6个Python文件(h5_ai_task.py/h5.py/ai_service.py/closing_service.py等);diagnosis_stage(6值)+response_time_ms计时+VisionService接入+双WS推送(ai_reply+dynamic_recommend)+ai_thinking同时推员工和坐席
技术架构
- 前端:坐席(Vue3+Element Plus) / H5(Vue3+Vant4) / 管理后台(Vue3+Element+Tailwind)
- 后端:FastAPI + SQLAlchemy + PostgreSQL + Redis(代码在
app/) - 字段映射:后端
id/sender_type→ 前端message_id/message_type(conversation.ts的mapMessage()) - WS双连接池:
active_connections(agent) +employee_connections(H5)
部署
- 正式服务器:itsupport.servyou.com.cn (10.90.5.110),出口IP
218.75.34.87 - 堡垒机:sxn@10.212.189.210:2222 (OTP),脚本
C:\Users\simon\.workbuddy\skills\jumpserver-ops\scripts\jms_ops.py - 服务器项目根路径:
/opt/wecom-it-desk/(非本地仓库路径) - 后端卷挂载:
./app:/app/app,.py变更→docker compose restart backend;env变更→up -d backend - 前端部署铁律:所有前端 dist 均为 ro bind mount,只能在宿主机源路径操作,不可在容器内修改
- H5:
/opt/wecom-it-desk/frontend-h5/dist→/usr/share/nginx/html/h5(ro) - Agent:
/opt/wecom-it-desk/frontend-agent/dist→/usr/share/nginx/html/itagent(ro) - Admin:
/opt/wecom-it-desk/frontend-admin/dist→/usr/share/nginx/html/itadmin(ro) - Portal:
/opt/wecom-it-desk/frontend-portal/dist→/usr/share/nginx/html/itportal(ro) - Terminal:
/opt/wecom-it-desk/frontend-terminal/dist→/usr/share/nginx/html/itterminal(ro) - nginx.conf:
/opt/wecom-it-desk/nginx/nginx.conf→/etc/nginx/nginx.conf(ro) - 部署命令模板:
H5_DIR=/opt/wecom-it-desk/frontend-h5/dist && cp -r $H5_DIR ${H5_DIR}_bak && rm -rf $H5_DIR/* && tar -xzf /tmp/h5-dist-vX.tar.gz -C $H5_DIR/ && docker exec wecom_it_nginx nginx -s reload
- H5:
- 服务器 nginx /h5/ 配置(与本地仓库不同):静态文件服务
root /usr/share/nginx/html; try_files $uri /h5/index.html;+/h5/api/反代后端 - Docker bind mount铁律:rm后重建必须重启容器(或
nginx -s reload热重载) - 文件上传:elFinder Web UI(
hz-oa-ai-g-dataquery-90-5-110目录=服务器/tmp/)/ fast_upload_v3.py(~20KB/s)/ jms_ops.py pack-upload - ⚠️ elFinder 上传二进制文件不可靠(2026-07-13 确认):tar.gz 上传后 MD5 不匹配(差90字节)。推荐用 base64 分块上传:
jms_ops.py batch模式,45KB/块,~113秒/7.6MB(脚本.workbuddy/tmp/chunked_upload_v2.py) - pscp/plink -T不可用;elFinder上传后需手动mv;httpx.Timeout须含default
- JumpServer v2.28 变更:登录新增图片验证码(CAPTCHA);connection-token 端点改为
/api/v1/authentication/connection-token/
外部集成
- 企微通讯录:Secret
BM6iosc3gKnPqkEXmsQN3ErJUpfO-whfMUN646eezB8,Redis key=wecom:contact_access_token - Dify:
http://yw-dify.dc.servyou-it.com/v1/chat-messages;审批意图Keyapp-7jkRkAzvX4QM9v9SM3P8mMEO;分诊Keyapp-z3S9AEUUAVPbtR2rioxpiIvp - ⚠️ 禁止使用
app-UaTWYdBSwN6VktKQlbh5YN5H(老线上Dify应用,未收到明确指令前不可调用);应使用副本app-7jkRkAzvX4QM9v9SM3P8mMEO或自建app-J3s8sHarZQ2SCaNF3xCppliL(后者不适合dify2openai代理,仅限直接API调用) - RAGFlow:生产
http://10.80.0.85:8080// API:9380 - 映射策略:联软(主) > aTrust(VPN) > eHR(静态)
企微JS-SDK技术
- 双鉴权:
wx.config()(jsapi_ticket) +wx.agentConfig()(agent_config_ticket),签名算法相同但不能混用 wx.invoke('thirdPartyOpenPage', {oaType:'10001', templateId, thirdNo, extData})原生打开审批表单- 后端端点:
GET /wecom/jsapi-config?url=...&with_agent_config=true - 前端composable:
frontend-h5/src/composables/useWecomApproval.ts(懒加载+全降级+超时保护) - 既有bug:
EmergencyDispatcher.vue第99-119行 复用jsapi签名给agentConfig(靠3秒超时兜底)
已上线功能模块
- 群聊(摇人/邀请/四角色) / 审批(12类型18流程/三级意图) / 代办(getapprovalinfo+Semaphore/缓存45s)
- IT资产推送(模板
Bs7ucT...) / 语音转文字(手机JS-SDK/PC百度ASR) / 截图拍照 / 复杂场景P0~P3 - 会议室预定(终端
/itterminal/,企微会议室Secret待申请)
坐席端布局优化v2.0(2026-07-12 部署)
- 8新增+7修改+3删除;QuickReplyBar L1+L2悬浮;ReplyBox左右分区;右栏260↔560px模式切换
- 键盘快捷键v2.3:纯数字1~9上下文路由(AI/L1/L2);ESC分层撤销;Shift+Space用
event.code匹配(不受IME影响) useKeyboardShortcuts.ts中央管理器,IME/ScreenCapture守卫;L1 chip移除模板数量徽章只保留kbd编号
知识库迭代3功能(2026-07-12 部署)
- 分诊交互(H5+坐席+Dify独立应用) + 拓扑预览(ECharts只读) + 代答排除(4种匹配器)
- 44文件43测试通过;迁移051;路由顺序铁律:固定路径必须在参数路由前注册
上下文感知智能诊断→修复闭环(2026-07-12 已部署)
- 三层诊断(API→Script→AI) + 三段排队(VIP→info_locked→not locked) + 答题插队 + 五场景关闭
- 后端:迁移052(6表+6列) / queue_service / quiz_service / closing_service / seed_quiz / 每日3:00定时生成
- H5前端:QueueWaiting / RightPanel双Tab / InputBar三态"人工"按钮 / ResolveConfirmCard
- 坐席前端:pending_close结单流程;信息锁定(Dify步骤完成+有效回答率≥70%)
- 部署时间:2026-07-12 21:24(H5前端通过jms_ops.py upload elFinder通道上传7.61MB)
- 验证:Queue API 200 ✅ / Quiz API 200 ✅ / H5页面200+新JS hash ✅ / Agent前端v2.3 ✅ / Nginx healthy ✅
Dify App改造 + 右边栏v2(2026-07-12 设计确认 → Phase 1-3 已完成)
- Dify App现状:85节点→计划精简至~35;保留RAGFlow+Vision节点(后端未接入前不删)
- 单通道统一消息架构:Dify输出JSON
{text, action, options}→ 后端发两条WS(ai_reply+dynamic_recommend)→ 文字到聊天气泡/卡片到侧边栏 - 审批意图优化:删除前端
checkApprovalIntent();关键词预过滤收窄(~40→~25);两级分类(4粗→12细);后端统一入口 - 右边栏v2.1已实施(v2.1 2026-07-13:删除软件安装/资源权限标签,全面AI化):
- 手风琴两大区域:设备信息(默认折叠) / 自助诊断(默认折叠)
- 智能推荐区域:DynamicRecommend 组件直接展示(无标签栏切换,始终可见)
- 设备信息:CPU/内存/硬盘默认隐藏(避免焦虑)
- 自助诊断标签:网络联通/账号权限/设备硬件
- Phase 1-3 完成状态(2026-07-12):
- Phase 1 ✅:Dify Prompt(JSON输出) + 后端blocking+JSON解析+双WS推送 + 错误降级(30s超时/15s still_thinking)
- Phase 2 ✅:关键词收窄(~25强意图词) + 两级分类Prompt v4.0 + 删除前端checkApprovalIntent
- Phase 3 ✅:WS扩展(ai_thinking+dynamic_recommend) + MessageBubble ai_structured渲染(文字+选项按钮) + RightPanel v2.1(手风琴+智能推荐直接展示) + DynamicRecommend.vue(新建) + sendOptionSelect WS回传
- Phase 4 ✅:VisionService接入(
_enrich_image_content+_fetch_recent_employee_text5秒融合) + 图片消息跳过关键词拦截 + 降级策略 - Phase 5 ✅:坐席端
ai_thinkingWS+指示器UI +MessageBubbleai_structured/byod_card渲染 +handleNewMessage修复(msg_type/extra_data透传) - Phase 6 ✅:
diagnosis_stage字段(6种值) →closing_service辅助方法 +response_time_ms计时+慢响应告警(>10s)
- v2.0 新增前端文件:
DynamicRecommend.vue(动态推荐卡片,3种类型 approval/action/info) - v2.0 关键架构:
sendWsMessage()模块级导出函数(useH5WebSocket.ts),供 store 在 composable 外部发送 WS 消息 - 实施计划文档:
docs/02-产品需求/AI对话链路全栈改造实施计划-v1.0.md(6阶段Phase 1-6,10个Task #59-#69跟踪)
运维工具
- SOP:
docs/10-项目管理/IT智能服务台-标准作业流程SOP.md - 故障排查:
docs/09-部署运维/00-标准故障排查手册.md