# Data-governance 工作流更新总结 **更新时间**: 2025-11-04 **工作流 ID**: `tWfjLZE1FmMfQAIn` **工作流名称**: Data-governance --- ## 🎯 更新目标 修改工作流,使其能够: 1. 在聊天中获取元数据名称 2. 自动判断元数据是否已经存在 3. 如果不存在就添加元数据 4. 如果已经存在就返回存在的信息 --- ## ✅ 已完成的更新 ### 1. 更新 Chat Trigger 节点 **修改内容**: - **欢迎消息**: 更新为更直接的提示,让用户直接输入元数据名称 - **输入提示**: 从"请输入您的需求..."改为"请输入元数据名称..." - **副标题**: 从"帮助您进行元数据管理和数据治理"改为"智能元数据管理和查询" **新的欢迎消息**: ``` 您好!我是数据治理助手。 我可以帮助您管理和创建元数据。 请直接告诉我您想要查询或创建的元数据名称,例如: - "检查元数据:其他费用定额" - "创建元数据:其他费用定额,类型string,描述医疗行业费用元数据" 我会自动检查该元数据是否已存在,如果不存在则为您创建。 ``` --- ### 2. 更新 AI Agent 系统消息 **新的工作流程**: 1. **当用户提供元数据名称时**(无论是要求查询还是创建),首先使用 `check_metadata` 工具检查该元数据是否已存在 2. **根据检查结果**: - **如果元数据已存在(exists=true)**: * 告诉用户该元数据已经存在于系统中 * 返回元数据的相关信息 * 询问用户是否需要其他帮助 - **如果元数据不存在(exists=false)**: * 如果用户提供了完整信息(名称、类型、描述),使用 `create_metadata` 工具创建元数据 * 如果用户只提供了名称,询问用户是否需要创建,如果需要则询问类型和描述信息 * 创建成功后,确认创建结果并返回给用户 3. **如果用户输入包含元数据名称,直接提取名称并使用工具检查,不需要额外询问** **关键原则**: - 始终先检查元数据是否存在,再决定是否需要创建 - 如果元数据已存在,明确告诉用户,不要重复创建 - 友好地引导用户提供信息(如果需要创建) - 每次只处理一个元数据 - 使用工具返回的 `exists` 字段判断是否存在,不要猜测 --- ## 📊 工作流结构 ### 当前节点 1. **Chat Trigger** - 聊天触发器 2. **AI Agent** - AI 代理(核心处理节点) 3. **DeepSeek Chat Model** - DeepSeek 语言模型 4. **检查元数据工具** (toolHttpRequest) - 调用 `/api/meta/check` 接口 5. **创建元数据工具** (toolHttpRequest) - 调用 `/api/meta/node/add` 接口 ### 保留但未使用的节点(可以删除) - **判断用户意图** (IF 节点) - 不再需要,AI Agent 内部处理逻辑 - **调用元数据新增API** (HTTP Request) - 不再需要,使用工具替代 - **设置确认消息** (Set 节点) - 不再需要 - **设置拒绝消息** (Set 节点) - 不再需要 --- ## 🔄 工作流程 ### 流程 1: 用户查询已存在的元数据 ``` 用户输入: "其他费用定额" ↓ AI Agent 提取元数据名称 ↓ 调用 check_metadata 工具 ↓ 工具返回: exists=true ↓ AI Agent 告诉用户: "该元数据已存在" ↓ 返回给用户 ``` ### 流程 2: 用户创建新元数据(提供完整信息) ``` 用户输入: "创建元数据:测试数据,类型string,描述测试描述" ↓ AI Agent 提取元数据名称: "测试数据" ↓ 调用 check_metadata 工具 ↓ 工具返回: exists=false ↓ AI Agent 提取类型和描述信息 ↓ 调用 create_metadata 工具 ↓ 工具返回: 创建成功 ↓ AI Agent 告诉用户: "元数据创建成功" ↓ 返回给用户 ``` ### 流程 3: 用户只提供名称,需要创建 ``` 用户输入: "测试元数据" ↓ AI Agent 提取元数据名称: "测试元数据" ↓ 调用 check_metadata 工具 ↓ 工具返回: exists=false ↓ AI Agent 询问用户: "该元数据不存在,是否需要创建?如果需要,请提供类型和描述" ↓ 用户提供信息 ↓ 调用 create_metadata 工具 ↓ 返回创建结果 ``` --- ## 🔧 工具配置 ### 检查元数据工具 - **URL**: `http://192.168.3.143:5000/api/meta/check?name_zh={name_zh}` - **方法**: GET - **参数**: `name_zh` (元数据中文名) - **返回**: `{exists: true/false, name_zh: "..."}` ### 创建元数据工具 - **URL**: `http://192.168.3.143:5000/api/meta/node/add` - **方法**: POST - **参数**: - `name_zh` (必填) - `data_type` (默认 string) - `description` (选填) - **返回**: 创建结果 --- ## ✅ 测试建议 ### 测试用例 1: 查询已存在的元数据 **输入**: "其他费用定额" **预期结果**: - 调用 check_metadata 工具 - 返回 exists=true - 告诉用户元数据已存在 --- ### 测试用例 2: 创建新元数据(完整信息) **输入**: "创建元数据:新测试数据,类型string,描述这是一个测试" **预期结果**: - 调用 check_metadata 工具 - 返回 exists=false - 调用 create_metadata 工具 - 创建成功 - 告诉用户创建成功 --- ### 测试用例 3: 创建新元数据(只提供名称) **输入**: "新元数据名称" **预期结果**: - 调用 check_metadata 工具 - 返回 exists=false - AI Agent 询问是否需要创建,需要类型和描述 - 用户提供后创建 --- ### 测试用例 4: 尝试创建已存在的元数据 **输入**: "创建元数据:其他费用定额,类型string,描述测试" **预期结果**: - 调用 check_metadata 工具 - 返回 exists=true - 告诉用户元数据已存在,不进行创建 --- ## 📝 注意事项 1. **AI Agent 是终端节点**: AI Agent 的输出会直接返回到聊天界面,无需后续节点 2. **工具自动调用**: AI Agent 会根据系统消息的指导,自动决定何时调用工具 3. **错误处理**: 如果工具调用失败,AI Agent 会收到错误信息并告知用户 4. **接口验证**: 确保 `/api/meta/check` 和 `/api/meta/node/add` 接口正常工作 --- ## 🚀 下一步 1. **测试工作流**: 使用上述测试用例验证工作流是否正常工作 2. **清理节点** (可选): 可以删除不再使用的节点(IF、HTTP Request、Set 节点),但不影响功能 3. **验证接口**: 确保接口在 `192.168.3.143:5000` 上正常工作 --- **更新完成时间**: 2025-11-04 **状态**: ✅ 配置已更新,等待测试验证