IT 智能服务台 — 技术架构

基于《IT智能服务台-项目情况报告-2026-08-07》第二章「技术架构」可视化
编制:Duckula(AI) · 日期:2026-08-07 · 数据来源:项目记忆库 / 战略路线图 v1.0

图 1总体技术架构(六层)

① 接入层 ② 通道层 ③ 后端层 ④ AI 中台 ⑤ 数据层 ⑥ 外部集成 员工端 H5 Vue3 + Vant4 · 企微免登 坐席端 Web Vue3 + Element Plus · 三栏 管理端 Web Vue3 + Element + Tailwind WebSocket 双连接池 employee_connections(H5) + active_connections(Agent) 企微 JS-SDK 双鉴权 wx.config + wx.agentConfig(不可混用) ③ 后端服务层(FastAPI · SQLAlchemy · Redis 客户端) 会话路由 D1 意图/业务分类透传 消息处理管线 process_h5_ai_reply 诊断→修复闭环 queue/quiz/closing 审批待办桥接 12 类 18 流程 内容审核 content_moderation 资产管理 IT 资产推送 Dify 工作流编排 主对话 / 分诊 / 审批 / 知识 RAGFlow 知识检索 10.80.0.85:8080 千问大模型 LLM 推理 单通道消息 {text,action,options} PostgreSQL 会话 / 工单 / 知识库 / 审批 Redis 会话状态 / 队列 / 缓存 / WS 池 企微通讯录 API Secret 鉴权 · access_token 火绒、联软、aTrust 终端安全 → 用户 映射 ITSM 工单平台 待 API 授权(BLK-B) AI 推理调用 持久化读写 外部系统集成
用户接入(前端) 实时通道 / 后端服务 AI 中台 数据层 外部系统集成 虚线 = 集成/旁路调用

图 2WebSocket 双连接池与消息推送拓扑

员工端 H5 employee_connections 池 坐席端 Web active_connections 池 后端 WS 网关 双池管理 + 广播 AI 推理 / 诊断 Dify + RAGFlow + 千问 ai_reply / ai_thinking agent 操作 / 接管 推理请求 统一消息回传

后端维护两套独立连接池:employee_connections(员工 H5)与 active_connections(坐席 Web)。 一次 AI 推理产出的统一消息 {text,action,options} 经后端解析后,拆分为 ai_reply(聊天气泡)与 dynamic_recommend(侧边栏卡片),并通过 ai_thinking 事件同时推送两端,实现"员工看到思考过程、坐席同步可见"的协同体验。

图 3AI 单通道统一消息流(Dify → 后端 → 双端)

Dify 输出 {text, action, options} 后端解析 & 分发 JSON 解析 + 双 WS 推送 员工 H5 气泡文字 + 侧栏推荐卡片 坐席 Web AI 思考指示器 + 草稿 ai_reply ai_thinking

早期各场景各自调用 AI、消息格式不统一。重构后统一为 单通道:Dify 仅输出结构化 JSON {text, action, options}, 后端做阻塞式解析与降级(30s 超时 / 15s still_thinking),再向双端推送—— 文字进聊天气泡、选项卡片进侧边栏、思考状态两端同步,彻底消除"员工与坐席看到不同 AI 状态"的断层。

表 1技术栈明细

分层技术选型与说明
员工前端Vue3 + Vant4,运行于企微 H5 环境,集成企微 JS-SDK(OAuth2 免登、语音转文字、原生审批表单)
坐席 / 管理前端Vue3 + Element Plus(坐席三栏工作台)/ Tailwind(管理后台);键盘快捷键 v2.3 中央管理器
后端FastAPI + SQLAlchemy + PostgreSQL + Redis;消息管线 process_h5_ai_reply、诊断闭环(queue/quiz/closing)、内容审核
AI 中台Dify(工作流编排:主对话/分诊/审批意图/知识)+ RAGFlow(知识检索,10.80.0.85:8080)+ 千问大模型(LLM 推理)
实时通道WebSocket 双连接池(employee_connections / active_connections),推送 ai_reply / dynamic_recommend / ai_thinking
外部集成企微通讯录(Secret 鉴权、access_token 缓存)+ JS-SDK 双鉴权;联软(主)/aTrust( VPN )/eHR(静态) 终端→用户映射
部署Docker Compose:后端 + nginx + 多前端 ro bind mount;WAF 前置按 path 缓存,版本化 PATH + 302 跳板破除缓存

表 2外部依赖与对接状态

系统用途 / 接入点状态
Dify主对话 app-8f0f3d62…、分诊 app-z3S9…、审批 app-7jkRk…(老应用 app-UaTWY… 已禁用)✅ 已上线
RAGFlow知识检索服务 http://10.80.0.85:8080/(API :9380)✅ 已上线
企微通讯录通讯录 Secret 鉴权、access_token 缓存(Redis key wecom:contact_access_token);JS-SDK wx.config + wx.agentConfig 双鉴权✅ 已上线
联软 / aTrust / eHR终端 IP / 主机名 → 用户身份映射(联软为主,aTrust 备选,eHR 静态兜底)✅ 已接入
ITSM 工单平台工单卡片跳转与目标系统打通(需 app_id/app_secret 授权)⏸️ 待授权(BLK-B,阻塞 26 天)
企微会议室会议室预定功能所需 Secret(影响 /itterminal/)⏸️ 待申请(BLK-A,阻塞 26 天)
⚠️ 部署铁律提示:所有前端 dist 均为只读 bind mount,仅能在宿主机源路径(含 /src/,如 /opt/wecom-it-desk/src/frontend-h5/dist)操作; 域名前置 WAF 按 path 缓存、忽略 query,故发版须用版本化 PATH + 302 跳板(如 /h5/go → /h5/v<日期>/),禁用 ?v= 查询参数打缓存。