n8n 接入 OpenAI 是自动化工作流里很常见的需求,比如自动给文章生成摘要、给邮件写回复、给内容起标题。很多人在这一步卡住,不是因为 n8n 不会用,而是 API 配置、节点选择、权限设置容易出问题。这篇文章直接用真实场景演示,从零开始把一个 n8n 工作流跑起来,让 OpenAI 帮你干活。

准备工作:VPS 上的 n8n 和 OpenAI API Key
在动手之前,确保你手头有这些东西:
• 一台能跑 Docker 的 VPS,建议 2 核 4G 以上(n8n 本身不重,但后续调用 OpenAI 时网络和内存要稳)。
• n8n 已经部署好,推荐用 Docker 部署。如果还没装,参考官方文档 `docker run -it –rm –name n8n -p 5678:5678 n8nio/n8n`,记得加上 `-v n8n_data:/home/node/.n8n` 持久化数据。
• 一个 OpenAI 账号,获取 API Key。注意:如果你用国内 VPS,可能需要配置代理或者用兼容 OpenAI 接口的国内服务商(如 DeepSeek、通义千问),这里以 OpenAI 官方为例,实际替换 endpoint 和 key 即可。
• n8n 后台端口(默认 5678)建议用 Nginx 反代加 HTTPS,不要直接裸露公网,否则 API Key 有泄露风险。
创建第一个工作流:用 OpenAI 生成文章摘要
这个场景最典型:你有一个文本内容(比如 RSS 抓来的文章、用户提交的表单),想让 OpenAI 自动提炼摘要。
第一步:添加触发器节点
在 n8n 编辑器中,拖入一个Webhook节点作为触发器。这样你可以通过 POST 请求把文本发过来。配置:
• HTTP Method: POST
• Path: `/generate-summary`
• Response Mode: Last Node
• 勾选 “Respond to Webhook”
第二步:添加 OpenAI 节点
n8n 从 0.218 版本开始内置了OpenAI节点(如果没有,可以用 HTTP Request 节点手工调用,后面会讲)。拖入一个 OpenAI 节点,连接 Webhook 的输出。
点击节点,在Credential里新建一个 OpenAI 凭证:
• API Key: 填入你的 key
• Base URL: 默认是 `https://api.openai.com/v1`,如果使用代理或国内接口,改成对应的地址,比如 `https://api.deepseek.com/v1`
然后配置Operation为Message(聊天补全),Model 选 `gpt-3.5-turbo` 或 `gpt-4o-mini`(便宜且够用)。在Messages里添加一条系统消息:
你是一个专业的文章摘要生成器。请根据用户提供的文本,生成一段 100 字以内的中文摘要。
再添加一条用户消息,内容来自 Webhook 传入的字段。假设 Webhook 的 body 里有个字段叫 `text`,那么用户消息里写:
{{ $json.body.text }}
第三步:输出结果
拖入一个Respond to Webhook节点,把 OpenAI 节点的输出(`$json.choices[0].message.content`)作为响应返回。保存并激活工作流。
测试:用 curl 或 Postman 发一个 POST 请求到 `http://你的VPS:5678/webhook/generate-summary`,body 为 JSON `{"text": "你的文章正文……"}`,几秒后就能收到摘要。
自动生成标题:只需要改 Prompt
把上面的工作流复制一份,修改系统消息为:
你是一个标题生成专家。根据用户提供的文本,生成 3 个吸引人的中文标题,每个标题不超过 20 个字,用换行分隔。
其他配置完全一样。这样你就有了一个专门生成标题的接口。如果觉得每次都要改 Prompt 麻烦,可以在 Webhook 的 body 里加一个 `type` 字段,用IF节点判断走不同的 OpenAI 节点,实现多合一。
自动回复邮件:接入 IMAP 和 SMTP
这个场景更贴近实际工作:当新邮件到达时,用 OpenAI 自动生成回复草稿,然后发出去。
触发:IMAP Email 节点
拖入一个IMAP Email节点,配置你的邮箱(需要开启 IMAP 服务,获取专用密码)。设置轮询间隔,比如每 5 分钟检查一次。在Criteria里可以只读取未读邮件。
处理:用 OpenAI 生成回复
连接一个 OpenAI 节点,系统消息设为:
你是一个专业的邮件助手。根据用户收到的邮件内容,生成一封礼貌、专业的回复邮件。回复要简洁,直接针对邮件中的问题或请求。只输出邮件正文,不要主题。
用户消息里引用 IMAP 节点输出的 `html` 或 `text` 字段(取决于邮件格式)。注意:如果邮件内容包含过多 HTML 标签,可以先用HTML节点提取纯文本。
发送:SMTP 节点
拖入一个SMTP节点,配置发件邮箱的 SMTP 参数。在Message字段里引用 OpenAI 输出的回复内容。Subject可以沿用原邮件的主题加上 "Re: " 前缀,或者让 OpenAI 也生成一个主题(建议单独用一个 OpenAI 节点处理主题,避免 Prompt 冲突)。
关键点:IMAP 节点输出的 `subject` 和 `from` 字段可以用在 SMTP 的To和Subject里。别忘了设置Reply-To为你自己的邮箱,避免对方直接回复到 OpenAI 生成的无效地址。
老鸟叮嘱:避坑指南
1.API Key 安全:永远不要在 n8n 的 Webhook URL 里明文传递 API Key。n8n 的凭证是加密存储的,但如果你用 HTTP Request 节点手调 API,记得把 Key 放在 Header 里,不要放在 URL 参数里。
2.Token 消耗控制:每次调用 OpenAI 都会消耗 token。建议在 Prompt 里限制输出长度(比如 `max_tokens: 200`),或者在 n8n 的 OpenAI 节点设置Max Tokens参数。生产环境务必监控 API 费用。
3.错误处理:OpenAI 偶尔会返回 429(限流)或 500。在 n8n 的节点设置里开启Error Workflow,或者用Try/Catch节点捕获异常,避免整个工作流卡死。
4.邮件回复不要自动发送:建议把 SMTP 节点放在手动审批环节。可以先用Wait节点暂停,或者将生成的回复写入数据库/待办列表,人工审核后再触发发送。自动回复出事故的案例太多了。
5.VPS 内存:n8n 本身占用不大,但如果你同时跑多个工作流且频繁调用外部 API,2G 内存可能不够。建议至少 4G,并开启 swap。
FAQ
Q1: n8n 没有内置 OpenAI 节点怎么办?
A: 使用HTTP Request节点手动调用 OpenAI 的 chat/completions 接口。方法:Method 选 POST,URL 填 `https://api.openai.com/v1/chat/completions`,Authentication 选Header Auth,填入 `Authorization: Bearer 你的Key`。Body 用 JSON 格式,参考官方文档构造 messages 和 model。记得在Response里解析 `data.choices[0].message.content`。
Q2: 我想用本地模型(比如 Ollama)代替 OpenAI,怎么改?
A: 把 OpenAI 节点替换成HTTP Request节点,URL 改为 `http://你的Ollama地址:11434/api/chat`,Body 格式参照 Ollama 文档。注意 Ollama 默认没有 API 鉴权,建议用 Nginx 加 IP白名单或 Basic Auth。
Q3: 工作流能处理大段文本吗?
A: 可以,但注意 OpenAI 的上下文窗口限制(比如 gpt-3.5-turbo 是 16K tokens)。如果文本太长,先用 n8n 的Code节点做截断或分段,多次调用后合并结果。VPS 内存也要够,否则 n8n 可能 OOM。
Q4: 邮件回复工作流里,如何避免重复回复?
A: 在 IMAP 节点里勾选Mark as Read或Move to Processed Folder。也可以在 n8n 里用一个Set节点给邮件 ID 做去重,配合数据库节点记录已处理的邮件 UID。
Q5: n8n 的 Webhook 公网暴露安全吗?
A: 不安全。建议用 Nginx 反向代理加 HTTPS,并在 n8n 设置Webhook 认证(Basic Auth 或 Header 校验)。或者只允许特定 IP 访问。
Q6: 调用 OpenAI 时报错 “Incorrect API key” 但 Key 是对的?
A: 检查 Base URL 是否写错。如果你用 OpenAI 官方,Base URL 必须留空或用 `https://api.openai.com/v1`。用国内服务商时,注意 endpoint 后缀是否包含 `/v1`。另外,某些服务商的 Key 需要额外绑定 IP 或设置配额。
总结
n8n 接入 OpenAI 实现自动生成摘要、标题和邮件回复,本质上就是配置好触发器、调好 Prompt、处理好输出。关键不是写法,而是把安全、费用、错误处理和实际业务场景结合起来。上面三个工作流可以直接复制到你的 n8n 实例里,改一下 API Key 和触发器就能跑起来。遇到问题先看 n8n 的执行日志,90% 的问题都出在凭证或字段引用上。
—
**相关阅读:**
– [n8n VPS 部署教程:搭建自己的自动化工作流平台](https://www.zhujixuan.com/jishujiaocheng/9892.html)
– [VPS部署AI工具100讲:AI Agent、Codex、Claude Code、Hermes Agent、Ollama与自动化工作流实战教程](https://www.zhujixuan.com/jishujiaocheng/9606.html)
– [n8n 自动分发文章到自媒体:RSS、Webhook 和 API 思路](https://www.zhujixuan.com/jishujiaocheng/9898.html)
转载请注明出处:https://www.zhujixuan.com/jishujiaocheng/9894.html 商家投稿邮箱:zhujixuanblog@qq.com
