🎉 新版站点已上线 — 新用户请在 v2.cloudmist.cloud 注册使用,本站教程均以新站地址为准 · 老用户账号已迁移完成,用原用户名/邮箱 + 原密码可直接登录 新站(登不上请在用户名后加 _82350),原站余额可继续在 api.cloudmist.cloud 用完,新站需重建令牌并改用新站 base_url
首页 › 教程 · 文章 › n8n 怎么调用聊天 API?HTTP Request 配置、取值与工作流验收

n8n 怎么调用聊天 API?HTTP Request 配置、取值与工作流验收

云岚API · 教程 · 更新于 2026-10-25

在 n8n 调用 OpenAI 兼容聊天 API,可用 HTTP Request 发送完整端点、凭据和 JSON 请求体,再把返回内容映射到下一个节点。先跑通单条非流式文本,再检查多条输入是否各自对应;节点显示成功,还不代表结果已正确写入业务系统。本文核对日期为 2026-10-25,未运行真实 n8n 节点或调用云岚API。

先选节点:现成操作够用,还是需要自己写请求?

n8n 当前 OpenAI 节点分别提供 Generate a Chat Completion 和 Generate a Model Response,对应 Chat Completions 与 Responses。现成操作、凭据和字段符合目标服务时,可以直接使用;需要明确控制兼容端点和请求字段时,再考虑 HTTP Request。n8n 文本操作说明

本文只搭“手动触发 → Edit Fields 准备输入 → HTTP Request → 检查并提取回答”的短流程。它不是 AI Agent,也不自动执行模型返回的函数;已有工具调用循环另行承接。

凭据和请求地址怎样配对?

在 HTTP Request 设置 Method: POST,URL 填目标服务的完整聊天端点。例如 OpenAI 官方地址是 https://api.openai.com/v1/chat/completions;兼容服务须用其确认的地址与 Key,不能只填 SDK 的基础前缀。已有云岚API账号先核对控制台的模型权限与地址说明,本文不保证某渠道支持该流程。

选择 Authentication → Generic Credential Type → Header Auth,创建凭据:Name 为 Authorization,Value 为 Bearer 后接对应服务的 Key,注意中间空格。若选专用 Bearer Auth,则按字段填 token,不再手工重复前缀。两种方式择一,也不要再在普通请求头里重复设置认证。n8n 凭据字段

Key 放凭据对象,别塞进提示词、节点正文或分享的工作流。URL 由维护者配置,避免让外部输入任意改变携带凭据的目标地址。凭据存在,不等于地址、分组和模型已经匹配。

动态提示词怎样进入 JSON,而不变成固定文本?

把 Edit Fields 节点命名为“准备输入”,在其中准备三个字段:record_id、prompt、model_id。前两个来自本条业务数据,模型 ID 由维护者按目标服务配置;调用前用条件分支检查提示词和模型 ID 为非空字符串;空值、仅空白或类型错误进入输入错误分支,不发送请求。手工示例可以用“把这句话改写得更简洁”,不需要客户资料。Edit Fields 用法

HTTP Request 开启 Send Body,选择 JSON、Using JSON,将整个输入切到 Expression 模式,填下面的对象表达式。它是 n8n 参数表达式,不是可导入的工作流 JSON:

{{
  {
    model: $json.model_id,
    messages: [{ role: "user", content: $json.prompt }],
    stream: false
  }
}}

$json 指当前输入 item。先看预览,确认模型名与提示词已有值,messages 是数组、stream 是布尔值;提示词含双引号或换行时也要完整保留。不要用手拼字符串的办法绕过 JSON 报错。数据引用、JSON 表达式说明

收到响应后,回答到底在哪一层?

选择 Response Format: JSON。在紧接 HTTP Request 的节点中,先展开实际 INPUT,再按响应配置取值:

HTTP Request 输出设置 单候选文本示例的取值表达式
默认只返回响应正文 {{ $json.choices[0].message.content }}
开启 Include Response Headers and Status {{ $json.body.choices[0].message.content }}

完整响应还包含状态码和响应头;开关变动后要同步核对路径。默认只有 2xx 被视为成功;Never Error 会改变这个行为,因此不要为了让节点变绿就打开它。若确需接收错误响应,必须另做状态与错误正文分支。HTTP Request 响应选项

取文本前检查 choices 非空、候选数量符合预期、message.content 是所需字符串,并检查 finish_reason、拒绝或工具调用。length、tool_calls 不能当成本文短文本任务已完成;stop 也仍要检查内容。不要用空字符串默认值掩盖缺失字段。Chat Completions 返回结构

检查通过后,接一个 Edit Fields 节点,使用 Manual Mapping 新建字符串字段 answer,Value 切到 Expression 并填表中对应表达式。再加入 record_id,从“准备输入”的关联条目读取 {{ $('准备输入').item.json.record_id }}。先在 OUTPUT 确认两项都正确,再让下游读取 $json.answer 与 $json.record_id;字段名应与目标表格或数据库列对应。若中间节点拆分或合并了条目,先核对关联关系,不能靠改成 .first() 消除配对错误。

从单节点测试到整条工作流,怎样验收?

下载n8n 聊天 API 检查包,按单条、多条、空提示词和异常响应分别留记录。每条保留业务 record_id,通过 item linking 或明确业务键关联结果;不要把上游 .first() 的值当作所有条目的输入。结果路径正确,还要检查最终写入对象是否对应原记录。

Execute step 可能执行为它提供输入的前置节点。固定数据(pin data)会在手动测试中替代节点的新运行,而生产执行忽略固定数据。因此,用旧响应检查取值通过,只能说明这组样例的逻辑通过。执行类型

正式验收时核对实际触发、执行记录、输入输出条数、API 日志和下游结果;失败重跑前确认是否已经写入,避免重复处理。用量、重试与账单分别记录,继续按费用核对检查。检查包只有静态资料和人工样例,没有可导入流程、真实调用或预填成功结果。

常见问题

curl 能用,n8n 却连不上,先查哪里?

核对 n8n 实际运行环境、完整 URL、选中的凭据和表达式结果。本地电脑的 curl 成功不证明 n8n 所在服务器网络可达;保留脱敏错误,按报错排查定位。

节点成功但下一个节点取到空值怎么办?

先看实际 JSON 层级、完整响应开关和当前 item,再查拒绝、截断与工具分支。不要直接改成 output_text:那可能属于另一种协议或节点简化输出。

两条输入为什么拿到同一段回答?

先排查固定提示词、引用 .first()、固定响应和业务键错配。给两条人工输入设置不同编号与要求,检查最终映射,而不是仅凭回答相似判定 API 异常。

HTTP Request 的 Batching 就是 OpenAI Batch API 吗?

不是。前者安排输入条目的请求批次与间隔;后者是供应商的异步批任务接口,输入和对账规则不同,见Batch 结果核对。

超时后重跑,怎样避免重复请求和写入?

先核对 n8n 的节点重试、外层任务重跑与上游已有记录,不能只统计手动点了几次执行。继续按 API 超时与自动重试检查区分一次逻辑任务、HTTP 尝试和最终业务写入;响应未收到时,保留“结果待确认”,不要直接当作上游未执行。

注册后查看试用额度与领取条件

按当前模型列表选择服务,先核对令牌分组、接口协议与价格,再用自己的任务验证。

注册并查看试用条件 →已有账号?进入控制台创建令牌 · 调用报错先排查
注册、充值和调用均在云岚API 新业务站完成
相关内容
本站为云岚API 注册、登录与充值入口站点 · 模型与价格以控制台实时数据为准 · 更新于 2026-10-25
Claude、GPT、Gemini 等名称为各自权利人商标,本站为独立第三方 API 中转/聚合服务,与上述厂商无隶属或授权关系。