# n8n 工作流 Internal Server Error 修复报告 **问题时间**: 2025-11-04 **工作流 ID**: tWfjLZE1FmMfQAIn **错误信息**: Internal Server Error **访问地址**: https://n8n.citupro.com/chat/tWfjLZE1FmMfQAIn --- ## 🔍 问题分析 ### 发现的问题 #### 1. **Set 节点配置不完整** ❌ 在执行日志中发现两个 Set 节点配置异常: **问题节点**: - `设置确认消息` - `assignments: {}` (空配置) - `设置拒绝消息` - `assignments: {}` (空配置) **影响**: - 这两个节点无法正确设置输出数据 - 导致工作流执行失败 - Chat 界面报 Internal Server Error #### 2. **工作流配置问题** ```json { "parameters": { "mode": "manual", "duplicateItem": false, "assignments": {}, // ❌ 空配置 "includeOtherFields": false, "options": {} } } ``` **正确的配置应该是**: ```json { "parameters": { "mode": "manual", "fields": { "values": [ { "name": "output", "type": "string", "stringValue": "消息内容..." } ] }, "options": {} } } ``` --- ## ✅ 修复方案 ### 已执行的修复 #### 1. 更新 "设置确认消息" 节点 ```json { "type": "updateNode", "nodeName": "设置确认消息", "updates": { "parameters": { "mode": "manual", "fields": { "values": [ { "name": "output", "type": "string", "stringValue": "好的!已为您发起元数据新增工作流程。\n\n操作结果:成功创建元数据\n\n如需继续其他数据治理操作,请告诉我。" } ] }, "options": {} } } } ``` #### 2. 更新 "设置拒绝消息" 节点 ```json { "type": "updateNode", "nodeName": "设置拒绝消息", "updates": { "parameters": { "mode": "manual", "fields": { "values": [ { "name": "output", "type": "string", "stringValue": "好的,已取消元数据管理操作。\n\n还有其他需要帮助的吗?\n- 数据标准制定\n- 数据质量检查\n- 其他数据治理服务" } ] }, "options": {} } } } ``` --- ## 📊 修复后的状态 ### 工作流验证结果 ✅ **工作流有效**: `valid: true` ✅ **总节点数**: 7 ✅ **有效连接**: 6 ✅ **无效连接**: 0 ✅ **错误数**: 0 ⚠️ **警告数**: 12 (大部分是版本过时警告,不影响功能) ### 节点配置状态 | 节点 | 状态 | 说明 | |------|------|------| | Chat Trigger | ✅ 正常 | Webhook 已注册 | | AI Agent | ✅ 正常 | 系统消息已配置 | | DeepSeek Chat Model | ✅ 正常 | 凭证已连接 | | 判断用户意图 | ✅ 正常 | IF 条件正确 | | 调用元数据新增API | ✅ 正常 | HTTP 请求配置正确 | | 设置确认消息 | ✅ 已修复 | 输出字段已配置 | | 设置拒绝消息 | ✅ 已修复 | 输出字段已配置 | --- ## 🧪 测试建议 ### 1. 验证修复 **立即测试步骤**: ```bash 1. 访问 Chat URL https://n8n.citupro.com/chat/tWfjLZE1FmMfQAIn 2. 检查是否还有 Internal Server Error - 如果没有错误,进入下一步 - 如果仍有错误,查看 n8n 服务器日志 3. 测试确认流程 输入: "是" 预期: 看到确认消息和成功信息 4. 测试拒绝流程 输入: "否" 预期: 看到拒绝消息和选项列表 5. 查看执行日志 在 n8n 界面 → Executions → 查看最新执行 检查所有节点是否正常执行 ``` ### 2. 检查执行日志 访问 n8n 界面的 Executions 页面: ``` https://n8n.citupro.com/workflows/tWfjLZE1FmMfQAIn/executions ``` 检查项: - [ ] Chat Trigger 正常触发 - [ ] AI Agent 正常响应 - [ ] DeepSeek API 调用成功 - [ ] IF 节点正确判断 - [ ] Set 节点输出正确 - [ ] 消息正确返回到聊天界面 --- ## 🔧 其他潜在问题 ### 1. DeepSeek API 可能的问题 虽然凭证已配置,但可能存在的问题: **检查清单**: - [ ] DeepSeek API Key 是否有效 - [ ] API Key 是否有足够的额度 - [ ] 网络连接是否正常 - [ ] 是否有防火墙限制 **测试方法**: ```bash # 在 n8n 服务器上测试 DeepSeek API curl -X POST https://api.deepseek.com/v1/chat/completions \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "deepseek-chat", "messages": [{"role": "user", "content": "测试"}], "max_tokens": 100 }' ``` ### 2. Chat Trigger 响应模式 **当前配置**: 未明确指定响应模式 **建议配置**: ```json { "options": { "responseMode": "lastNode" // 或 "streaming" } } ``` **说明**: - `lastNode`: 等待整个工作流执行完成后返回最后一个节点的输出 - `streaming`: 流式返回 AI 响应(推荐,用户体验更好) ### 3. AI Agent 输出格式 **当前问题**: AI Agent 输出可能不是标准格式 **建议修改 IF 节点条件**: 当前: ```javascript ={{ $json.output }} ``` 可能需要改为: ```javascript ={{ $json.text || $json.output || $json.content }} ``` --- ## 📋 完整测试清单 ### 测试前检查 - [x] Set 节点配置已修复 - [x] 工作流已保存 - [x] 工作流已激活 - [ ] n8n 服务器正常运行 - [ ] DeepSeek API 可访问 ### 功能测试 - [ ] Chat 界面可以打开(无 Internal Server Error) - [ ] 欢迎消息正常显示 - [ ] 可以输入消息 - [ ] 输入 "是" 能看到确认消息 - [ ] 输入 "否" 能看到拒绝消息 - [ ] AI 响应时间合理(< 5秒) ### 执行日志检查 - [ ] Chat Trigger 执行成功 - [ ] AI Agent 执行成功(无 DeepSeek API 错误) - [ ] IF 节点正确判断 - [ ] Set 节点输出正确(不是空对象) - [ ] 整个工作流执行成功 --- ## 🚨 如果问题仍然存在 ### 调试步骤 #### 1. 查看 n8n 服务器日志 ```bash # 如果使用 Docker docker logs n8n-container # 如果使用 PM2 pm2 logs n8n # 查找错误关键字 grep -i "error\|exception\|failed" n8n.log ``` #### 2. 检查 DeepSeek API 在 n8n 界面中: ``` 1. 进入 Settings → Credentials 2. 找到 DeepSeek API 凭证 3. 点击 "Test" 按钮测试连接 4. 查看是否有错误消息 ``` #### 3. 简化工作流测试 创建一个简化版本测试: ``` Chat Trigger → Set (静态消息) → 返回 ``` 如果这个可以工作,说明问题在 AI Agent 或 DeepSeek 配置。 #### 4. 检查 AI Agent 输出 在 n8n 界面中: ``` 1. 手动执行工作流 2. 输入测试数据到 Chat Trigger 3. 查看 AI Agent 节点的输出 4. 确认输出格式是否包含 "output" 字段 ``` --- ## 📄 相关文档 | 文档 | 路径 | 说明 | |------|------|------| | 测试报告 | `docs/n8n_workflow_test_report.md` | 完整测试指南 | | DeepSeek 升级 | `docs/n8n_deepseek_upgrade.md` | DeepSeek 配置说明 | | 快速开始 | `docs/n8n_chat_workflow_quickstart.md` | 快速启动指南 | --- ## ✅ 修复总结 ### 已完成 - ✅ 识别了 Set 节点配置问题 - ✅ 修复了 "设置确认消息" 节点 - ✅ 修复了 "设置拒绝消息" 节点 - ✅ 工作流验证通过 - ✅ 更新时间:2025-11-04 07:23:44 ### 下一步 1. **立即测试** ⭐⭐⭐ ``` 访问: https://n8n.citupro.com/chat/tWfjLZE1FmMfQAIn 验证: 是否还有 Internal Server Error ``` 2. **功能测试** ⭐⭐ ``` 输入: "是" 和 "否" 验证: 消息是否正确返回 ``` 3. **查看日志** ⭐ ``` n8n Executions → 查看最新执行 确认: 所有节点执行成功 ``` --- ## 🎊 预期结果 修复后,访问 `https://n8n.citupro.com/chat/tWfjLZE1FmMfQAIn` 应该: ✅ 不再显示 Internal Server Error ✅ 看到聊天界面和欢迎消息 ✅ 可以正常输入和发送消息 ✅ AI 能正确理解用户意图 ✅ 返回正确的确认或拒绝消息 **现在请重新访问 Chat URL 测试!** 🚀