# Dify 工作流 System Prompt 改造指南 ## 改造目标 将 Dify 输出从 `action` 字段改为 `intent` 标签,让后端根据 intent 查询资产库生成真正的推荐卡片。 ## 当前输出格式(需改造) ```json { "text": "回答文本...", "action": { "type": "approval_card", "title": "软件安装审批", "description": "申请安装 Adobe 系列软件", "approval_type": "software_install", "confidence": 0.95 }, "options": [...], "diagnosis_stage": "diagnosing" } ``` ## 目标输出格式 ```json { "text": "给用户的回答文本(50-200字)", "intent": "用户意图标签", "need_approval": 是否需要审批入口 (true/false), "need_asset": 是否需要资产推荐 (true/false), "asset_keywords": ["关键词1", "关键词2"], "options": [ {"label": "选项文字", "value": "选项值"} ], "diagnosis_stage": "greeting|diagnosing|resolved|transfer" } ``` ## 改造步骤 ### 1. 登录 Dify Console 访问:`http://yw-dify.dc.servyou-it.com/console` ### 2. 找到目标应用 找到「智能IT支持-员工咨询」应用(App ID: `8f0f3d62-f63d-4cf3-815e-b10529c66f1d`) ### 3. 进入工作流编辑 1. 点击应用名称进入详情 2. 点击「编辑」 3. 进入「编排」页面 ### 4. 找到 LLM 节点 找到输出 JSON 结构的 LLM 节点(通常在"开始"节点之后的第一个 LLM 节点) ### 5. 修改 System Prompt 在 LLM 节点的「系统提示词」中添加以下内容(追加到现有 Prompt 末尾): ``` ## 输出格式要求 你是一个 IT 智能助手。请根据用户问题,输出以下 JSON 结构: { "text": "给用户的回答文本(50-200字)", "intent": "用户意图标签", "need_approval": 是否需要审批入口 (true/false), "need_asset": 是否需要资产推荐 (true/false), "asset_keywords": ["关键词1", "关键词2"], "options": [ {"label": "选项文字", "value": "选项值"} ], "diagnosis_stage": "greeting|diagnosing|resolved|transfer" } ## 意图标签说明 intent 字段可选值: - software_install: 软件安装 - hardware_issue: 硬件问题 - network_vpn: 网络/VPN 问题 - printer: 打印机问题 - account_permission: 账号权限问题 - email_outlook: 邮箱问题 - mobile_device: 移动设备问题 - other: 其他问题 ## 资产推荐规则 当用户询问以下内容时,设置 need_asset=true 并指定 asset_keywords: - VPN 相关 → asset_keywords: ["vpn"] - 打印机相关 → asset_keywords: ["打印机", "打印机驱动"] - 软件安装 → asset_keywords: ["软件安装"] - 邮箱问题 → asset_keywords: ["outlook", "邮箱"] - 账号权限 → asset_keywords: ["账号", "权限"] - 网络问题 → asset_keywords: ["网络", "wifi"] 重要:不要在 text 中推荐具体的下载链接或服务器地址,这些信息由系统根据 asset_keywords 智能匹配后推送到右侧栏。 ``` ### 6. 发布工作流 点击右上角「发布」按钮 ### 7. 验证 在「发布」页面点击「运行」测试,验证输出格式是否符合预期。 ## 回滚方案 如果新版本有问题,可以在 Dify Console 的「版本历史」中找到上一个版本,点击「恢复」即可回滚。 ## 后端适配 后端代码 `asset_recommend_service.py` 已支持处理新的 `intent` 格式。 当 Dify 返回 `need_asset=true` + `asset_keywords` 时,后端会根据关键词查询 `assets.yaml` 中的资产信息,生成 L1 推荐卡片。 ## 预期效果 用户说"VPN 连不上": - **中间栏**:AI 回复排查步骤 - **右侧栏 L1**:VPN 相关信息(客户端下载、服务器地址、申请审批)