从 n8n 调用 vLLM 及其他 OpenAI 兼容端点
中级8 分钟阅读自动化

从 n8n 调用 vLLM 及其他 OpenAI 兼容端点

通过 n8n 的 HTTP Request 节点调用本地 OpenAI 兼容的 /v1/chat/completions 端点,并明确配置身份验证、超时预算、base URL 检查和私有网络边界。

您应该能够做到的事情

n8n 可以通过 HTTP Request 节点调用本地 OpenAI 兼容的 /v1/chat/completions 路由,但必须把该端点视为私有基础设施:对暴露的路由进行身份验证、隔离服务、测量延迟,并且绝不能把 vLLM API 密钥当作整台服务器的安全边界。

仅在此浏览器中保存。
本文内容

只有在你的自动化流程能够访问到这些模型时,私有模型才有帮助。n8n 经过验证的通用方法是其 HTTP 请求节点。它可以调用 vLLM OpenAI 兼容服务器 或其他实际暴露并接受 POST /v1/chat/completions 的部署。

使用此操作指南来连接 HTTP 请求,进行身份验证,设置符合本地推理测量结果的超时预算,并确保模型服务远离不受信任的网络。

若仍在判断 n8n 是否适合作为自动化层,可先阅读 n8n、Zapier 与 Make 对比。如需在此基础上构建智能体工作流,请参阅 你的第一个 n8n AI 智能体

无需身份验证即可从公共互联网访问的 OpenAI 兼容端点,实际上是一个开放的推理代理。任何发现该端点的人都可以消耗 GPU 时间。使用 vLLM 时,攻击者还可能访问不受 --api-key 保护的推理和运维路径。提示内容泄露属于日志记录与访问控制风险,并不是聊天路径必然会发生的结果。请将服务限制在私有网络内,并在网关强制执行身份验证。不要为了演示而转发端口。

此处“OpenAI 兼容”的含义

对 n8n 而言,契约很窄:

  • Base URL 指向服务器根或 /v1,取决于节点期望方式。
  • 聊天调用命中 /v1/chat/completions(或节点追加的等价路径)。
  • 请求体像聊天补全:modelmessages,可选 temperaturemax_tokens 等。
  • 响应包含 choices,其中的消息内容可由节点解析。

你不需要复刻 OpenAI 的每一个产品接口。你需要的是一个已从 n8n 验证过的聊天补全接口,包括请求、身份验证、模型标识符和响应格式。

vLLM 文档中描述了这种 OpenAI 兼容服务器模式;其他运行时也提供了类似的接口。在将生产工作流连接之前,请先验证该接口并使用 你的 安装进行一次 curl 示例测试。该接口是通用的,但不同产品和版本之间的路由、模型标识符、身份验证和响应兼容性可能会发生变化。

经过验证的 n8n 路径:HTTP 请求

当前 n8n 官方文档没有说明 OpenAI 凭据或 OpenAI 聊天模型节点可配置自定义 base URL。在确认之前,请将特定 n8n 版本或社区节点中的任何此类字段视为版本特定的。文档中提到的通用路径是 HTTP Request 节点,它可让你明确控制方法、URL、请求头、请求体、身份验证和节点重试设置。

请使用通用的 Bearer 或请求头凭据,不要把密钥直接写入工作流。凭据必须包含推理服务或其网关实际验证的值。局域网端点上的占位符密钥不构成身份验证。

POST http://10.0.0.20:8000/v1/chat/completions
Content-Type: application/json
Authorization: Bearer <secret>
{
  "model": "installer-recommended-local-model",
  "messages": [
    { "role": "system", "content": "Classify the ticket. Reply with JSON only." },
    { "role": "user", "content": "{{ $json.body }}" }
  ],
  "temperature": 0
}

请将模型字符串替换为 /v1/models 返回的确切服务标识符。如果你使用 NVIDIA NemoClaw 的本地 vLLM 路径,请采用运行中服务器或所选托管配置明确记录的标识符。托管 vLLM 是一种受支持的主机方案,但并非每个 NemoClaw 安装都会提供;通用 Linux 环境需要明确选择实验性配置或提供商配置。不要凭记忆猜测检查点名称。

当供应商专用的 AI 节点没有提供自定义端点配置时,HTTP 请求节点也是可靠的备用方案。

实际有效的认证和网络控制

本地不等于无认证。

对于 vLLM,--api-key 并非整个 HTTP 服务的安全边界。官方安全页面记录了受保护和未受保护的端点集合,并在需要暴露时推荐网络隔离和反向代理 (vLLM 安全指南)。推理路由上的 API 密钥并不能证明所有路由都会拒绝未认证的流量。

必需的基础要求: 仅将 vLLM 绑定到回环地址、容器或集群网络,或者由防火墙策略保护的私有接口,并只允许代理或 n8n 工作负载访问。需要跨主机连接时,请在服务前部署 Caddy、nginx、Traefik 或同等的受控网关。如果流量尚未经过可信的加密覆盖网络,请在网关终止 TLS,对所有暴露路由执行身份验证和速率限制,限制请求大小,并仅放行必要路径。n8n 与代理通信,客户端不得直接连接 vLLM。

将 vLLM 的 --api-key 用作支持的推理端点的额外控制手段,而非代理/防火墙的替代方案。将所有凭据存储在 n8n 凭据或经批准的密钥存储中,而非存储在会导出到 Git 的明文工作流字段中。

不要:

  • 临时地在家庭或办公室的 WAN IP 上绑定 0.0.0.0
  • 在 Slack 中分享隧道 URL。
  • 将个人 OpenAI 密钥用作本地服务器的 “密码”,该服务器从不验证该密钥。如果服务器忽略 Authorization,该密钥将毫无意义。

发送到本地端点的提示仍会离开 n8n 主机,并可能被推理服务器、代理和 n8n 执行历史记录日志记录。本地托管可减少第三方云存储的数据保留,但不会消除日志记录、截图或操作员访问权限。根据你的政策和适用法律,将客户文本分类为可能敏感或个人数据,然后验证数据保留和访问控制。

如需更完整的集成规范,包括限定作用域的凭据、服务账户和审计记录,请采用 安全连接 AI 中的模式。

超时与慢推理

本地模型的延迟会随着模型、提示长度、硬件、并发量和冷启动状态而显著变化。n8n 节点的有效超时还取决于节点类型和安装版本。对于 HTTP 请求节点,文档中说明的超时时间仅涵盖等待响应头或响应体开头的时间;它并不能证明流式或长时间运行的生成在端到端上是受限制的。因此,从教程中复制的默认值可能会导致一个健康的任务失败,或使另一层缺乏明确的限制。

刻意设置超时:

  1. 从 n8n 主机上使用 curl 测量冷调用和热调用的响应时间。
  2. 将节点的初始响应超时时间设置为高于测得的 p95 值,并留出合理余量以应对负载高峰。
  3. 将工作流、代理、客户端和推理服务器的限制与完整的生成预算对齐。
  4. 对于分类或路由任务,优先使用较短的提示词和较小的 max_tokens;将长篇生成任务留给能够异步继续处理的草稿步骤。

若某个步骤经常持续数分钟以上,更适合把它放入可异步继续处理的队列,而不是同步 webhook 响应。

n8n 进程网络命名空间冒烟测试,不要只从笔记本测。容器化 n8n 无法到达主机上的 localhost,除非你把模型端口发布到该网络。使用 Docker 服务名、主机网关 IP,或容器可路由到的 LAN 地址。

Base URL 规范检查清单

在将凭证标为生产就绪之前:

检查项通过条件
可达性n8n 运行时可以访问文档中说明的健康检查路由和经过认证的 /v1/models,且无需离开私有网络
路径/v1/chat/completions 能使用小型测试负载成功执行
认证未认证的推理请求被拒绝;私有边界外无法访问未受保护的 vLLM 路由
模型 ID字符串必须与服务器声明的完全一致
TLS如果路径经过不受信任的网络,则必须启用 TLS
日志提示/响应日志是故意记录的,并且有保留期限限制
故障转移当端点不可用时,工作流应有明确的行为
超时初始响应和端到端限制应反映来自 n8n 运行时的测量结果

端点不可用时的故障处理方式应明确:按退避策略重试、转入人工队列,或明确失败。除非该回退路径已经记录并获批,否则不要在未明确告知的情况下切换到隐私策略不同的公共 API。

未设门控前绝不暴露

规则很简单:不要将 vLLM 直接暴露给不受信任的网络。 其 API 密钥无法保护整个 HTTP 服务。请使用网络隔离,并通过经过认证且有速率限制的网关仅暴露必要的路径。

可接受模式:

  • 仅使用回环或 Docker 网络,n8n 与同一主机或覆盖网络上的服务通信。
  • 本地局域网 + 防火墙允许列表,仅放行代理或 n8n 工作负载的身份/IP;同时验证其他主机确实会被拒绝。
  • 使用 VPN 或 Tailscale/ZeroTier 网络;不使用 WAN 监听器。
  • 如果必须为多个可信客户端提供服务,使用具有强认证、TLS 和速率限制的反向代理。

不可接受模式:

  • 未认证 WAN 绑定。
  • 在真实数据集上“以后再认证”的演示。
  • 与访客 Wi-Fi 上每台笔记本共享同一未认证端点。

如果你正在构建包含本地推理、n8n 编排和智能体步骤的私有技术栈,请把模型 Base URL 作为内部服务契约。Hermes 和其他运行时可以指向同一个私有服务。n8n 调用 Hermes 时,如果需要同步取得结果,应选择经过身份验证的 API 服务器;如果需要接收事件并由 Hermes 按既定配置交付结果,则使用 HMAC Webhook 适配器。具体区别见 n8n → Hermes:API 调用还是事件 Webhook

最小私有支持路径

可实现的示意流程,无需发明性能数字:

  1. 工单 webhook 请求到达 n8n。
  2. 校验字段并按要求脱敏。
  3. HTTP 请求调用私有 /v1/chat/completions 端点以获取分类 JSON。
  4. Switch 节点按标签分流。
  5. 准备发送到公司外部的草稿需等待人工审核(幂等性和人工审核)。

这足以在加入功能更丰富的智能体之前证明该本地端点值得保留。

交付或更新当天要核实什么

产品 UI 和凭据字段名会随版本变化。在交付或更新此工作流当天:

  1. 确认推理服务器 OpenAI 兼容路由的最新文档。
  2. 确认 HTTP 请求凭证和节点配置仍发送所需的认证信息、请求头和原始 JSON 格式。
  3. 使用非生产数据重新运行 curl 命令,并执行一次 n8n 测试。
  4. 确认监听器仍为私有 (ss/lsof,防火墙规则,无意外隧道),未认证的推理请求会失败,并且 vLLM 文档中提到的未受保护端点无法从外部边界访问。

本地 OpenAI 兼容端点使 n8n 无需重写自动化流程图即可使用私有推理。关键不在巧妙的提示工程,而在于把推理服务当作其他内部 API 一样管理:在暴露边界执行身份验证,测量实际性能,有意识地控制日志,并确保未授权者无法访问。

继续阅读

通过下一篇文章继续沿着相同的学习路径进行学习。