# n8n Data-governance 工作流文档 ## 工作流概述 **工作流名称**: Data-governance **工作流ID**: rZK08l4aNUGgwmfO **状态**: 未激活(inactive) **创建时间**: 2025-11-04 ## 功能描述 这是一个基于 n8n 的数据治理对话工作流,通过交互式对话实现元数据管理功能: 1. 主动询问用户是否需要进行元数据管理 2. 根据用户的确认或拒绝响应,执行不同的操作: - **确认**:发起元数据新增工作节点,调用 DataOps API - **拒绝**:返回到对话,提供其他数据治理服务选项 ## 工作流结构 ### 节点说明 #### 1. When chat message received (Manual Trigger) - **类型**: Manual Trigger - **位置**: (240, 380) - **功能**: 手动触发工作流启动 - **说明**: 在实际使用中,可以替换为 Webhook 或 Chat Trigger 节点 #### 2. Initial Message (Set Node) - **类型**: Set Node - **位置**: (460, 380) - **功能**: 设置初始欢迎消息 - **消息内容**: ``` 您好!我是数据治理助手。 我可以帮助您: - 进行元数据管理 - 数据标准制定 - 数据质量检查 请问您需要进行元数据管理吗?(请回答:是 或 否) ``` #### 3. Check User Response (IF Node) - **类型**: IF 条件判断节点 - **位置**: (680, 380) - **条件**: 检查 `user_response` 字段是否等于 "是" - **输出**: - **True分支**: 用户确认,执行元数据新增 - **False分支**: 用户拒绝,返回对话 #### 4. Add Metadata (HTTP Request Node) - **类型**: HTTP Request - **位置**: (920, 280) - **方法**: POST - **URL**: `http://localhost:5000/api/meta/add` - **请求体**: ```json { "name_zh": "新建元数据", "data_type": "string", "description": "通过工作流创建的元数据", "source": "data-governance-workflow" } ``` - **说明**: 调用 DataOps 平台的元数据新增接口 #### 5. Confirm Message (Set Node) - **类型**: Set Node - **位置**: (1140, 280) - **功能**: 返回确认消息 - **消息内容**: ``` 好的!已为您发起元数据新增工作流程。 操作结果:{{ $json.statusMessage || '处理中...' }} 如需继续其他数据治理操作,请告诉我。 ``` #### 6. Reject Message (Set Node) - **类型**: Set Node - **位置**: (920, 480) - **功能**: 返回拒绝消息 - **消息内容**: ``` 好的,已取消元数据管理操作。 还有其他需要帮助的吗? - 数据标准制定 - 数据质量检查 - 其他数据治理服务 ``` ## 工作流程图 ``` ┌─────────────────────┐ │ When chat message │ │ received │ │ (Manual Trigger) │ └──────────┬──────────┘ │ v ┌─────────────────────┐ │ Initial Message │ │ (显示欢迎信息) │ └──────────┬──────────┘ │ v ┌─────────────────────┐ │ Check User Response │ │ (判断用户回答) │ └──────┬──────────┬───┘ │ │ 是 │ │ 否 v v ┌─────────────┐ ┌──────────────┐ │Add Metadata │ │Reject Message│ │(调用API) │ │ (返回对话) │ └──────┬──────┘ └──────────────┘ │ v ┌─────────────┐ │Confirm Msg │ │(确认消息) │ └─────────────┘ ``` ## 数据流 ### 输入数据格式 ```json { "user_response": "是" // 或 "否" } ``` ### 输出数据格式 **确认路径输出**: ```json { "response": "好的!已为您发起元数据新增工作流程。\n\n操作结果:成功\n\n如需继续其他数据治理操作,请告诉我。" } ``` **拒绝路径输出**: ```json { "response": "好的,已取消元数据管理操作。\n\n还有其他需要帮助的吗?\n- 数据标准制定\n- 数据质量检查\n- 其他数据治理服务" } ``` ## 配置说明 ### 环境变量 工作流中使用的 API 端点: - **DataOps API**: `http://localhost:5000` - **元数据新增接口**: `/api/meta/add` ### 时区设置 - **时区**: Asia/Shanghai (中国标准时间) ### 执行数据保存 - **成功执行**: 保存所有数据 - **失败执行**: 保存所有数据 - **执行顺序**: v1 ## 使用方法 ### 1. 激活工作流 在 n8n 界面中找到 "Data-governance" 工作流,点击激活按钮。 ### 2. 测试工作流 1. 点击 "Execute Workflow" 按钮 2. 在弹出的对话框中输入用户响应 3. 观察工作流执行结果 ### 3. 集成到实际应用 #### 方式 1: 使用 Webhook 触发 将 Manual Trigger 节点替换为 Webhook 节点: ```json { "type": "n8n-nodes-base.webhook", "parameters": { "httpMethod": "POST", "path": "data-governance-chat", "responseMode": "responseNode" } } ``` #### 方式 2: 使用 Chat Trigger 将 Manual Trigger 节点替换为 Chat Trigger 节点(需要 @n8n/n8n-nodes-langchain 包): ```json { "type": "@n8n/n8n-nodes-langchain.chatTrigger", "parameters": { "options": { "public": true, "welcomeMessage": "您好!我是数据治理助手..." } } } ``` ## 扩展建议 ### 1. 添加 AI 智能理解 可以在 "Check User Response" 节点之前添加 AI 节点,使用 LLM 理解用户意图: ```json { "type": "@n8n/n8n-nodes-langchain.agent", "parameters": { "promptType": "define", "text": "判断用户是否确认进行元数据管理,返回 CONFIRM 或 REJECT" } } ``` ### 2. 支持更多数据治理功能 在拒绝分支添加 Switch 节点,根据用户选择执行不同的数据治理操作: - 数据标准制定 - 数据质量检查 - 数据标签管理 ### 3. 添加数据验证 在调用 API 之前,添加数据验证节点,确保请求数据的完整性: ```json { "type": "n8n-nodes-base.function", "parameters": { "functionCode": "// 验证必填字段\nif (!$json.name_zh) {\n throw new Error('元数据名称不能为空');\n}\nreturn $json;" } } ``` ### 4. 添加错误处理 为 HTTP Request 节点添加错误处理分支: ```json { "type": "n8n-nodes-base.if", "parameters": { "conditions": { "conditions": [{ "leftValue": "={{ $json.code }}", "rightValue": 200, "operator": {"type": "number", "operation": "equals"} }] } } } ``` ## 故障排查 ### 常见问题 1. **API 调用失败** - 检查 DataOps 平台是否正常运行 - 验证 API 端点 URL 是否正确 - 查看 n8n 日志获取详细错误信息 2. **用户响应未正确识别** - 检查 IF 节点的条件配置 - 确认 user_response 字段名称正确 - 考虑使用不区分大小写的比较 3. **消息格式问题** - 检查 Set 节点中的表达式语法 - 确认换行符 `\n` 正确显示 ## 相关接口 ### DataOps 元数据新增接口 **端点**: `POST /api/meta/add` **请求参数**: ```json { "name_zh": "元数据中文名称", "data_type": "数据类型", "description": "描述信息", "source": "数据来源" } ``` **响应格式**: ```json { "code": 200, "data": {}, "msg": "success" } ``` ## 版本历史 - **v1.0** (2025-11-04): 初始版本 - 实现基本的对话流程 - 支持确认/拒绝两种路径 - 集成元数据新增 API ## 后续规划 - [ ] 集成 LLM 提升对话理解能力 - [ ] 支持更多数据治理操作 - [ ] 添加用户会话管理 - [ ] 实现多轮对话能力 - [ ] 添加数据验证和错误处理 - [ ] 支持批量操作 ## 联系方式 如有问题或建议,请联系 DataOps 平台开发团队。