
n8n + Ollama + 微调模型:零 API 成本自动化技术栈
在 n8n 中构建强大的 AI 自动化,每次执行零成本。本指南展示如何通过 Ollama 将每个 OpenAI 节点替换为本地运行的微调模型。
n8n 是自动化领域最好的工具之一。自托管、开源、无限灵活。你可以连接数百个工作流来在应用之间移动数据、处理文档、分类输入和生成输出——所有这些都无需编写传统后端。
但当你向 n8n 工作流添加 AI 节点的那一刻,你引入了一个随每次执行扩展的可变成本。每次该工作流触发——每封邮件分类、每个文档摘要、每个潜客评分——你都在为 Token 向 OpenAI 付费。
每天 100 次执行时,可以忽略不计。每天 1,000 次时,你开始注意到。每天 10,000 次以上时,它成为仅次于托管的最大运营支出。
本指南向你展示如何通过将 n8n 工作流中的每个 OpenAI 节点替换为通过 Ollama 提供的本地运行微调模型来完全消除该成本。
n8n 中 AI 节点的隐性成本
让我们从 n8n 中使用 OpenAI 节点时幕后实际发生的事情开始。
每次带有 AI 节点的 n8n 工作流执行时,它都会向 OpenAI API 发送请求。该请求包括你的系统提示、上一个节点的输入数据以及你注入的任何上下文。OpenAI 处理它,返回响应,并根据 Token 数量收费。
以下是常见自动化模式的费用:
| 工作流类型 | 平均输入 Token | 平均输出 Token | 每次执行成本 | 1K 次/天(月费) |
|---|---|---|---|---|
| 邮件分类 | 800 | 50 | $0.027 | $810/月 |
| 文档摘要 | 2,500 | 400 | $0.099 | $2,970/月 |
| 潜客评分 | 600 | 100 | $0.024 | $720/月 |
| 工单路由 | 1,000 | 80 | $0.035 | $1,050/月 |
| 发票数据提取 | 1,500 | 200 | $0.057 | $1,710/月 |
这些数字假设 GPT-4 级别定价($30/1M 输入,$60/1M 输出)。即使使用价格低 10 倍的 GPT-3.5-turbo,每天运行 1,000 次执行仍然花费 $70-300/月,取决于工作流。
而大多数 n8n 高级用户不只运行一个工作流。他们运行数十个。管理客户自动化的代理机构可能在所有客户中有 50 多个带 AI 节点的工作流。成本快速累积。
最糟糕的是:这些任务中的大多数都是狭窄和重复的。 将邮件分为 5 个类别。从发票中提取姓名和日期。将潜客评为热/温/冷。这些不是需要 GPT-4 莎士比亚十四行诗知识的任务。它们是模式匹配任务,小型专用模型完全可以处理。
技术栈:n8n + Ollama + 微调模型
以下是我们要构建的架构:
┌─────────────┐ ┌─────────────┐ ┌──────────────────┐
│ n8n │────▶│ Ollama │────▶│ 微调模型 │
│ 工作流 │◀────│ 服务器 │◀────│ (GGUF 格式) │
└─────────────┘ └─────────────┘ └──────────────────┘
│ │
│ HTTP 请求 │ 本地推理
│ (localhost:11434) │ (零 API 成本)
│ │
n8n 编排你的工作流——触发器、数据路由、转换、输出操作。这不变。
Ollama 运行在同一服务器上(或附近的 VPS),通过与 OpenAI 格式兼容的 API 端点提供你的微调模型。n8n 与它通信的方式和与 OpenAI 相同——只是 URL 不同。
你的微调模型 是一个在你的特定工作流数据上训练的 7B 参数模型。它知道如何完成你的自动化需要的确切任务,仅此而已。它在 CPU 上运行(自动化级别吞吐量的 7B 模型不需要 GPU)。
结果:每次执行的 API 费用为 $0。 你唯一的成本是 VPS($30/月)和微调平台(Ertas $14.50/月)。
第 1 步:识别你的 AI 工作流
首先审计你的 n8n 实 例。打开工作流列表,查找包含以下内容的工作流:
- OpenAI 节点(最明显的)
- AI Agent 节点,配置了 OpenAI 模型
- HTTP 请求节点,指向
api.openai.com - LangChain 节点,使用 OpenAI 作为 LLM 提供商
对于每个工作流,记录:
- AI 执行的任务(分类、提取、生成、摘要)
- 每天/每周执行多少次
- 使用的系统提示
- 典型的输入和输出格式
最适合替换的候选者是:
- 任务狭窄且定义明确(分为 N 个类别、提取特定字段、从模板生成)
- 工作流频繁运行(每天 100 次以上)
- 输出格式可预测(JSON、短文本、类别标签)
常见的高价值目标:
- 邮件分诊和分类
- 潜客评分和路由
- 发票和收据数据提取
- 工单分类
- 内容审核
- 情感分析
第 2 步:从工作流中收集训练数据
这是大多数指南跳过的步骤,也是最重要的一步。你的微调模型只和训练数据一样好。好消息:n8n 已经在生成你的训练数据了。
每次 n8n 工作流执行时,它都会记录输入和输出。这些执行日志就是你的训练数据集。
以下是提取方法:
选项 A:n8n 执行历史(UI)
- 打开要替换的工作流
- 点击左侧栏的"Executions"
- 筛选成功的执行
- 对于每次执行,点击查看 OpenAI 节点的数据
- 复制输入(发送给 OpenAI 的内容)和输出(OpenAI 返回的内容)
这适用于小数据集(200 个以下示例),但在大规模时会变得繁琐。
选项 B:n8n API(程序化)
n8n 有 REST API。你可以程序化地拉取执行数据:
GET /api/v1/executions?workflowId={id}&status=success&limit=500
对于每次执行,提取 AI 节点的数据并格式化为训练对:
{
"input": "The system prompt + user input that was sent to OpenAI",
"output": "The response OpenAI returned"
}
选项 C:添加日志节点
如果你想从现在开始收集数据,在 OpenAI 节点之后添加一个 Function 节点,将每个输入/输出对写入 Google Sheet、Airtable 或 JSON 文件。几周后,你将拥有一个干净的数据集。
你需要多少数据 ?
| 任务类型 | 最少示例 | 推荐数量 |
|---|---|---|
| 二元分类 | 100 | 300+ |
| 多类分类(5-10 个类别) | 200 | 500+ |
| 数据提取 | 200 | 500+ |
| 短文本生成 | 300 | 800+ |
| 摘要 | 300 | 1,000+ |
质量比数量重要。300 个干净、有代表性的示例将优于 3,000 个嘈杂的。