【n8n教程】:n8n自托管AI入门套件
什么是n8n自托管AI入门套件
n8n自托管AI入门套件 是一个开源的Docker Compose模板,它快速集成了一套完整的本地AI开发环境。最关键的特点是:
- 完全本地化:所有数据处理在你的计算机上进行,无需上传到云端
- 完全免费:开源工具,零月费订阅
- 无需编程:通过拖拽界面即可构建复杂的AI工作流
- 隐私安全:敏感数据始终在你的控制范围内
套件包含的核心组件
| 组件 | 作用 | 简单理解 |
|---|---|---|
| n8n | 低代码工作流平台 | 大脑 - 协调各个部分的工作 |
| Ollama | 本地大语言模型运行引擎 | 思考能力 - 让AI在你的电脑上运行 |
| Qdrant | 高性能向量数据库 | 记忆库 - 存储文档的"记忆"供AI查询 |
| PostgreSQL | 数据库 | 档案柜 - 安全存储结构化数据 |
能做什么
✨ AI智能助手:构建会说话的AI机器人,可安排会议、回答问题
📄 PDF智能分析:上传公司文档,AI自动总结关键信息(无数据泄露风险)
💬 Slack超级机器人:增强企业通讯和IT运维效率
💰 财务文档分析:分析发票、合同等敏感文件,成本极低
系统要求与准备工作
硬件要求
| 配置项 | 最低要求 | 推荐配置 |
|---|---|---|
| CPU | 4核 | 8核或更多 |
| RAM内存 | 8GB | 16GB+(运行LLM需要) |
| 硬盘空间 | 20GB | 50GB+(存放模型和数据) |
| 网络 | 稳定的互联网连接 | 10Mbps以上 |
操作系统支持
- ✅ Windows 11 (需要WSL2或Docker Desktop)
- ✅ macOS (Intel或Apple Silicon)
- ✅ Linux (Ubuntu、CentOS等)
软件前置条件
在安装n8n套件前,确保已安装:
快速验证环境
打开你的终端或命令提示符,逐行运行以下命令:
# 检查Git
git --version
# 检查Docker
docker --version
# 检查Docker Compose
docker compose version
# 可选:检查硬盘空间(Linux/Mac)
df -h
如果所有命令都输出版本号,说明你已经准备好了!
安装步骤详解
步骤1:克隆官方代码库
打开你的终端,进入一个你想存储项目的目录,然后运行:
git clone https://github.com/n8n-io/self-hosted-ai-starter-kit.git
cd self-hosted-ai-starter-kit
这个命令会下载整个项目到你的电脑。cd 命令则进入该项目目录。
步骤2:复制并配置环境变量文件
# 复制示例配置文件
cp .env.example .env
现在打开 .env 文件(用记事本或任何文本编辑器),你会看到类似这样的内容:
# Ollama 配置
OLLAMA_HOST=ollama:11434
OLLAMA_MODELS=llama3.2
# PostgreSQL 配置
POSTGRES_USER=admin
POSTGRES_PASSWORD=your_secure_password_here
POSTGRES_DB=n8n
# Qdrant 配置
QDRANT_PORT=6333
# n8n 配置
N8N_HOST=0.0.0.0
N8N_PORT=5678
🔒 安全提示:
- 修改
POSTGRES_PASSWORD为一个强密码(8个字符以上,包含字母、数字、符号) - 不要在公网上暴露
.env文件
步骤3:根据你的操作系统选择运行方式
💻 Windows用户(使用GPU加速)
docker compose --profile gpu-nvidia up
💻 Windows/Linux用户(仅CPU,推荐新手)
docker compose --profile cpu up
🍎 Mac用户(M1/M2/M3芯片)
如果你想在Mac上使用GPU加速,需要额外步骤。首先在Mac上本地安装Ollama:
# 从官网下载:https://ollama.ai
# 安装后,修改 .env 文件中的:
OLLAMA_HOST=host.docker.internal:11434
然后运行:
docker compose up
🍎 Mac用户(仅CPU)
docker compose --profile cpu up
步骤4:等待容器启动
首次运行时,Docker会下载所有必要的镜像和模型(可能需要5-20分钟)。你会看到类似这样的输出:
n8n-postgre | PostgreSQL 14.0 on x86_64-pc-linux-gnu
n8n-ollama | Downloading model...
n8n-qdrant | Qdrant vector database started
n8n-n8n | Editor is now accessible via: http://localhost:5678/
✅ 当你看到 Editor is now accessible via: http://localhost:5678/ 时,说明安装完成!
步骤5:验证安装成功
打开你的浏览器,访问:http://localhost:5678
你应该会看到n8n的欢迎界面。如果看到设置页面,说明是第一次使用,按照提示设置即可。
界面入门与基础操作
n8n工作台全景
n8n的界面分为几个主要区域,理解它们能帮助你快速上手:
┌─────────────────────────────────────────────────────────────┐
│ 顶部菜单栏(保存、执行、设置) │
├──────────────────┬──────────────────────────────────────────┤
│ 左侧节点库 │ 中央画布(拖拽构建工作流) │
│ - 触发器 │ │
│ - 核心节点 │ │
│ - AI节点 │ │
│ - 数据转换 │ │
├──────────────────┼──────────────────────────────────────────┤
│ │ 右侧检查器(配置节点参数) │
└──────────────────┴──────────────────────────────────────────┘
关键术语解释
| 术语 | 含义 | 比喻 |
|---|---|---|
| Workflow | 工作流 | 一个完整的自动化流程 |
| Node | 节点 | 流程中的每一步 |
| Trigger | 触发器 | 工作流的起点,定义何时启动 |
| Connection | 连接 | 节点之间的数据流向 |
| Input/Output | 输入/输出 | 数据进出节点的接口 |
常用快捷键
Ctrl/Cmd + S- 保存工作流Ctrl/Cmd + Z- 撤销上一步Ctrl/Cmd + C- 复制节点Ctrl/Cmd + V- 粘贴节点Delete- 删除选中节点
快速开始第一个工作流
创建你的第一个工作流
第1步:新建工作流
- 登录 http://localhost:5678
- 点击右上角 “创建工作流” 按钮
- 给工作流起个名字,例如:“我的第一个AI工作流”
第2步:添加触发器
在n8n中,每个工作流都需要一个触发器(Trigger),它定义工作流何时启动。
- 点击中央空白画布
- 在左侧节点库中搜索 “Manual Trigger”(手动触发器)
- 拖拽添加到画布上
这个触发器让你可以通过点击按钮手动启动工作流。
第3步:添加处理节点
现在添加一个简单的节点来处理数据。我们从 “Set” 节点开始(这个节点可以创建或修改变量):
- 点击Manual Trigger节点右侧的 “+” 号
- 搜索 “Set” 节点
- 拖拽添加
第4步:配置Set节点
在右侧的检查器面板中:
- 点击 “Add Field” 按钮
- 在 Name 栏输入:
greeting - 在 Value 栏选择 “String” 类型,输入:
"你好,AI世界!" - 点击 "Save"
第5步:测试工作流
- 点击右上角的 “Execute Workflow” 按钮
- 查看输出:在右侧会显示
{"greeting": "你好,AI世界!"}
🎉 恭喜! 你已经创建了第一个n8n工作流!
在这个过程中你学到了
- ✅ 如何创建新工作流
- ✅ 如何添加和连接节点
- ✅ 如何配置节点参数
- ✅ 如何测试和执行工作流
完整案例:本地PDF智能分析机器人
现在让我们创建一个真正有用的工作流:用你的本地AI分析PDF文档。
工作流逻辑说明
这个工作流将:
- 接收输入 - 通过Webhook接收PDF文件上传请求
- 提取文本 - 从PDF中提取文本内容
- AI分析 - 使用本地Ollama模型分析文档
- 返回结果 - 发送分析结果给用户
前置准备
在创建工作流前,确保:
-
Ollama模型已下载
# 在终端运行(或等待第一次启动时自动下载) ollama pull llama3.2 -
确认各组件正常运行
- 访问 http://localhost:5678 - n8n界面
- 访问 http://localhost:6333 - Qdrant向量数据库管理界面
工作流JSON代码
将下面的JSON代码复制到你的n8n中。这是一个完整的、可运行的PDF分析工作流:
{
"name": "本地PDF智能分析机器人",
"nodes": [
{
"parameters": {
"path": "ai-pdf-analyzer",
"responseMode": "lastNode",
"options": {}
},
"id": "webhook-trigger",
"name": "Webhook Trigger",
"type": "n8n-nodes-base.webhook",
"typeVersion": 1,
"position": [250, 300],
"webhookId": "webhook"
},
{
"parameters": {
"binaryPropertyName": "data"
},
"id": "extract-pdf",
"name": "Extract from PDF",
"type": "n8n-nodes-base.extractFromFile",
"typeVersion": 1,
"position": [450, 300],
"credentials": {}
},
{
"parameters": {
"model": "llama3.2",
"prompt": "请仔细阅读下面的文档内容,然后提供以下信息:\n\n1. 文档的主要内容摘要(3-5句话)\n2. 关键要点(列出3-5个)\n3. 可能的应用场景\n\n文档内容:\n{{ $json.text }}",
"options": {}
},
"id": "ollama-chat",
"name": "Ollama Chat Model",
"type": "n8n-nodes-base.openaiChat",
"typeVersion": 1,
"position": [650, 300]
},
{
"parameters": {
"requestMethod": "POST",
"url": "={{ $env.N8N_BASE_URL }}/webhook/{{ $execution.id }}",
"sendBinaryData": false,
"specifyBody": "json",
"jsonBody": "{\n \"status\": \"success\",\n \"analysis\": {{ $json.message.content }},\n \"timestamp\": \"{{ $now.toIso() }}\"\n}",
"options": {}
},
"id": "respond-webhook",
"name": "Respond to Webhook",
"type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1,
"position": [850, 300]
}
],
"connections": {
"webhook-trigger": {
"main": [
[
{
"node": "extract-pdf",
"type": "main",
"index": 0
}
]
]
},
"extract-pdf": {
"main": [
[
{
"node": "ollama-chat",
"type": "main",
"index": 0
}
]
]
},
"ollama-chat": {
"main": [
[
{
"node": "respond-webhook",
"type": "main",
"index": 0
}
]
]
}
}
}
导入工作流的步骤
方法一:从URL导入(推荐)
- 在n8n主页,点击 "创建工作流"
- 点击右上角三个点 “…” 菜单
- 选择 "Import from URL"
- 粘贴一个官方模板的URL
方法二:手动导入JSON代码
- 创建一个新工作流
- 右上角点击 “…” → "Import from File"
- 选择包含上面JSON代码的.json文件
- 系统会自动加载所有节点和连接
方法三:粘贴导入(最简单)
- 复制上面的JSON代码
- 在空白工作流画布中按 Ctrl+V(Windows)或 Cmd+V(Mac)
- 系统会自动导入节点
配置工作流的关键参数
配置1:Webhook Trigger节点
这个节点接收外部的PDF上传请求。
- 点击 “Webhook Trigger” 节点
- 在右侧配置面板中,你会看到一个 Webhook URL
- 复制这个URL供外部应用调用
- 启用 “Authenticate Webhook” 以增加安全性
配置2:Extract from PDF节点
这个节点从PDF中提取文本。
- 点击 “Extract from PDF” 节点
- 在 “Input Binary Field” 中确保填写
data(来自webhook的文件) - 保存
配置3:Ollama Chat Model节点
这是AI分析的核心!
- 点击 “Ollama Chat Model” 节点
- Model 选择
llama3.2(或你安装的其他模型) - Prompt 中可以自定义分析指令
- 示例提示词:
请分析这份文档: - 主题是什么? - 关键信息有哪些? - 这份文档的用途是什么? 文档内容:{{ $json.text }}
配置4:Respond to Webhook节点
这个节点返回分析结果给用户。
- 点击 “Respond to Webhook” 节点
- Status Code 设置为
200(表示成功) - Response Body 是返回给用户的JSON数据
- 保存
测试工作流
方式1:使用n8n测试按钮
- 确保工作流已保存
- 点击 “Execute Workflow” 按钮
- 右侧会显示执行结果
方式2:使用curl命令测试(真实模拟)
打开终端,运行以下命令(替换YOUR_WEBHOOK_URL为实际的webhook链接):
# 假设你有一个test.pdf文件
curl -X POST http://localhost:5678/webhook/ai-pdf-analyzer \
-H "Content-Type: multipart/form-data" \
-F "file=@test.pdf"
方式3:使用Postman或Insomnia
- 打开Postman
- 新建POST请求
- URL设置为你的Webhook地址
- Body中选择 “form-data” 类型
- 添加参数:Key=
file,Value=选择你的PDF文件 - 点击Send
预期输出示例
如果一切配置正确,你会收到这样的响应:
{
"status": "success",
"analysis": "这份PDF文档主要介绍了人工智能的基本概念。关键要点包括:1. AI的定义和发展历程;2. 机器学习的三个主要类型;3. 深度学习的应用...",
"timestamp": "2025-12-03T13:40:00Z"
}
扩展功能
这个基础工作流可以进一步扩展:
添加向量存储(Qdrant)来记忆文档内容,支持后续查询:
- 使用 “Qdrant” 节点存储文档嵌入
- 后续用户提问时,先从Qdrant搜索相关内容
添加多模型支持:
- 添加If节点判断文档类型
- 根据类型选择不同的AI模型或提示词
添加错误处理:
- 使用 “Error Trigger” 节点捕获失败
- 发送错误通知到邮件或Slack
持久化存储结果:
- 将分析结果保存到PostgreSQL
- 或导出到Google Drive/云存储
常见问题解答
Q1: 安装后访问 localhost:5678 看不到n8n界面?
A: 检查以下几点:
- 确保Docker容器仍在运行:
docker ps - 查看日志看是否有错误:
docker compose logs n8n - 等待30秒后再尝试刷新页面
- 如果是Windows,检查是否需要WSL2配置
Q2: Ollama模型下载很慢,如何加快?
A:
- 确保网络连接稳定,最好使用有线网络
- 模型第一次下载会比较慢(5-30分钟取决于网速)
- 模型下载完后会缓存在本地,后续使用不需要重复下载
- 可选:在其他时间下载其他模型,如
ollama pull mistral
Q3: PDF提取出来的文本乱码或格式不对?
A:
- 某些复杂排版的PDF可能提取效果不佳
- 试试用 “Qdrant” 节点的文本分块功能改善效果
- 或在Ollama提示词中加入"请忽略格式问题,重点关注内容"
Q4: AI的回答不够准确或过于简洁?
A:
- 调整Ollama节点中的 “Prompt” (提示词)
- 在提示词中添加更具体的要求:
请详细分析这份文档,包括: 1. 核心主题(一段话) 2. 3个主要要点(每个要点一句话) 3. 这份文档对我的启示(3-5句话) - 尝试更大的模型,如
llama3.2:13b(需要更多硬件资源)
Q5: 容器无法启动,出现内存或GPU错误?
A:
- 内存不足:增加Docker分配的内存(Docker Desktop → Settings → Resources)
- GPU错误(NVIDIA):
# 检查NVIDIA容器工具包是否安装 docker run --rm --runtime=nvidia nvidia/cuda:11.0-runtime nvidia-smi - GPU错误(AMD):确保安装了AMD ROCm相关驱动
Q6: 如何更新到最新版本?
A:
# 进入项目目录
cd self-hosted-ai-starter-kit
# 拉取最新代码
git pull origin main
# 根据你的设置拉取最新镜像
docker compose --profile gpu-nvidia pull
# 重启容器
docker compose --profile gpu-nvidia up
Q7: 工作流保存在哪里?可以备份吗?
A:
- 工作流保存在PostgreSQL数据库中
- 备份方法:
# 导出单个工作流为JSON(n8n UI → 工作流 → ... → Download) # 或通过命令行: docker compose exec n8n n8n export:workflow --all --output=./workflows.json
故障排查速查表
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
| 访问不了localhost:5678 | Docker未启动或n8n容器崩溃 | docker compose ps 检查状态,docker compose logs n8n 查看日志 |
| PDF提取失败 | 文件格式不支持或文件损坏 | 试试其他PDF文件,确保是有效的PDF |
| AI回答"connection refused" | Ollama服务未启动 | docker compose ps 检查ollama容器,或重启 docker compose restart ollama |
| 节点无法连接 | 节点类型不兼容 | 检查两个节点的Input/Output类型是否匹配 |
| 工作流执行超时 | 处理时间过长或模型卡住 | 调整超时设置,或简化工作流逻辑 |
总结
✨ n8n自托管AI套件的三个超强优势:
- 隐私第一 - 敏感数据永不上传,完全本地处理
- 零成本运行 - 开源免费,无按量付费,无月费
- 高度定制 - 400+集成,可视化构建,无需编程
249

被折叠的 条评论
为什么被折叠?



