n8n-chat-trigger-api.md 2.4 KB

n8n Chat Trigger API 规范(DataMeta 管理智能体)

本文档描述 https://n8n.citupro.com/webhook/datameta-agent/chat 的 API 规范与调用示例。

参考 URL:https://n8n.citupro.com/webhook/datameta-agent/chat

1. Endpoint

  • URL: https://n8n.citupro.com/webhook/datameta-agent/chat
  • Method: POST
  • Content-Type: application/json

2. 请求体(Request Body)

{
  "chatInput": "用户输入内容",
  "sessionId": "会话ID",
  "metadata": {
    "optional_key": "optional_value"
  }
}

字段说明:

  • chatInput (string, 必填): 用户输入内容。
  • sessionId (string, 建议必填): 会话唯一标识,用于多轮对话记忆。
  • metadata (object, 可选): 额外信息(如用户ID、租户、语言等)。

3. 响应体(Response Body)

响应结构取决于 Chat Trigger 的 Response Mode

  • When Last Node Finishes: 返回最后节点输出(通常是 agent 回复内容)。
  • Using Response Nodes: 返回 Chat / Respond to Webhook 节点中定义的消息。

常见示例:

{
  "output": "这里是智能体的回复内容"
}

4. 调用示例

4.1 cURL

curl -X POST "https://n8n.citupro.com/webhook/datameta-agent/chat" \
  -H "Content-Type: application/json" \
  -d '{
    "chatInput": "查询ID为60的元数据",
    "sessionId": "session-001"
  }'

4.2 JavaScript (fetch)

fetch("https://n8n.citupro.com/webhook/datameta-agent/chat", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    chatInput: "查看ID为60的元数据",
    sessionId: "session-001",
    metadata: { userId: "u-1001" }
  }),
})
  .then((res) => res.json())
  .then((data) => console.log(data));

4.3 Python (requests)

import requests

url = "https://n8n.citupro.com/webhook/datameta-agent/chat"
payload = {
    "chatInput": "新增元数据,中文名测试字段",
    "sessionId": "session-001"
}

resp = requests.post(url, json=payload)
print(resp.status_code, resp.text)

5. 认证与跨域

  • 如 Chat Trigger 配置了 Basic Auth 或 n8n User Auth,请在请求中携带认证信息。
  • 浏览器跨域访问需在 Chat Trigger 中配置 Allowed Origin (CORS)。

6. 常见问题

Q: 返回 403?
A: 反向代理未放行 /webhook/chat/* 或 workflow 未激活。

Q: 浏览器报 CORS?
A: 未配置 Allowed Origin (CORS)。