n8n自托管AI入门套件 是一个开源的Docker Compose模板,它快速集成了一套完整的本地AI开发环境。最关键的特点是:
| 组件 | 作用 | 简单理解 |
|---|---|---|
| n8n | 低代码工作流平台 | 大脑 - 协调各个部分的工作 |
| Ollama | 本地大语言模型运行引擎 | 思考能力 - 让AI在你的电脑上运行 |
| Qdrant | 高性能向量数据库 | 记忆库 - 存储文档的"记忆"供AI查询 |
| PostgreSQL | 数据库 | 档案柜 - 安全存储结构化数据 |
✨ AI智能助手:构建会说话的AI机器人,可安排会议、回答问题
📄 PDF智能分析:上传公司文档,AI自动总结关键信息(无数据泄露风险)
💬 Slack超级机器人:增强企业通讯和IT运维效率
💰 财务文档分析:分析发票、合同等敏感文件,成本极低
| 配置项 | 最低要求 | 推荐配置 |
|---|---|---|
| CPU | 4核 | 8核或更多 |
| RAM内存 | 8GB | 16GB+(运行LLM需要) |
| 硬盘空间 | 20GB | 50GB+(存放模型和数据) |
| 网络 | 稳定的互联网连接 | 10Mbps以上 |
在安装n8n套件前,确保已安装:
docker --version打开你的终端或命令提示符,逐行运行以下命令:
# 检查Git
git --version
# 检查Docker
docker --version
# 检查Docker Compose
docker compose version
# 可选:检查硬盘空间(Linux/Mac)
df -h如果所有命令都输出版本号,说明你已经准备好了!
打开你的终端,进入一个你想存储项目的目录,然后运行:
git clone https://github.com/n8n-io/self-hosted-ai-starter-kit.git
cd self-hosted-ai-starter-kit这个命令会下载整个项目到你的电脑。cd 命令则进入该项目目录。
# 复制示例配置文件
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 文件docker compose --profile gpu-nvidia updocker compose --profile cpu up如果你想在Mac上使用GPU加速,需要额外步骤。首先在Mac上本地安装Ollama:
# 从官网下载:https://ollama.ai
# 安装后,修改 .env 文件中的:
OLLAMA_HOST=host.docker.internal:11434然后运行:
docker compose updocker compose --profile cpu up首次运行时,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/ 时,说明安装完成!
打开你的浏览器,访问:http://localhost:5678
你应该会看到n8n的欢迎界面。如果看到设置页面,说明是第一次使用,按照提示设置即可。
n8n的界面分为几个主要区域,理解它们能帮助你快速上手:
┌─────────────────────────────────────────────────────────────┐
│ 顶部菜单栏(保存、执行、设置) │
├──────────────────┬──────────────────────────────────────────┤
│ 左侧节点库 │ 中央画布(拖拽构建工作流) │
│ - 触发器 │ │
│ - 核心节点 │ │
│ - AI节点 │ │
│ - 数据转换 │ │
├──────────────────┼──────────────────────────────────────────┤
│ │ 右侧检查器(配置节点参数) │
└──────────────────┴──────────────────────────────────────────┘| 术语 | 含义 | 比喻 |
|---|---|---|
| Workflow | 工作流 | 一个完整的自动化流程 |
| Node | 节点 | 流程中的每一步 |
| Trigger | 触发器 | 工作流的起点,定义何时启动 |
| Connection | 连接 | 节点之间的数据流向 |
| Input/Output | 输入/输出 | 数据进出节点的接口 |
Ctrl/Cmd + S - 保存工作流Ctrl/Cmd + Z - 撤销上一步Ctrl/Cmd + C - 复制节点Ctrl/Cmd + V - 粘贴节点Delete - 删除选中节点在n8n中,每个工作流都需要一个触发器(Trigger),它定义工作流何时启动。
这个触发器让你可以通过点击按钮手动启动工作流。
现在添加一个简单的节点来处理数据。我们从 "Set" 节点开始(这个节点可以创建或修改变量):
在右侧的检查器面板中:
greeting"你好,AI世界!"{"greeting": "你好,AI世界!"}🎉 恭喜! 你已经创建了第一个n8n工作流!
现在让我们创建一个真正有用的工作流:用你的本地AI分析PDF文档。
这个工作流将:
在创建工作流前,确保:
# 在终端运行(或等待第一次启动时自动下载)
ollama pull llama3.2将下面的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
}
]
]
}
}
}这个节点接收外部的PDF上传请求。
这个节点从PDF中提取文本。
data(来自webhook的文件)这是AI分析的核心!
llama3.2(或你安装的其他模型)请分析这份文档:
- 主题是什么?
- 关键信息有哪些?
- 这份文档的用途是什么?
文档内容:{{ $json.text }}这个节点返回分析结果给用户。
200(表示成功)打开终端,运行以下命令(替换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"file,Value=选择你的PDF文件如果一切配置正确,你会收到这样的响应:
{
"status": "success",
"analysis": "这份PDF文档主要介绍了人工智能的基本概念。关键要点包括:1. AI的定义和发展历程;2. 机器学习的三个主要类型;3. 深度学习的应用...",
"timestamp": "2025-12-03T13:40:00Z"
}这个基础工作流可以进一步扩展:
添加向量存储(Qdrant)来记忆文档内容,支持后续查询:
添加多模型支持:
添加错误处理:
持久化存储结果:
A: 检查以下几点:
docker psdocker compose logs n8nA:
ollama pull mistralA:
A:
请详细分析这份文档,包括:
1. 核心主题(一段话)
2. 3个主要要点(每个要点一句话)
3. 这份文档对我的启示(3-5句话)llama3.2:13b(需要更多硬件资源)A:
# 检查NVIDIA容器工具包是否安装
docker run --rm --runtime=nvidia nvidia/cuda:11.0-runtime nvidia-smiA:
# 进入项目目录
cd self-hosted-ai-starter-kit
# 拉取最新代码
git pull origin main
# 根据你的设置拉取最新镜像
docker compose --profile gpu-nvidia pull
# 重启容器
docker compose --profile gpu-nvidia upA:
# 导出单个工作流为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套件的三个超强优势:
[1] 下载地址: https://git-scm.com/download
[2] 下载地址: https://www.docker.com/products/docker-desktop
[3] 官方文档: https://docs.n8n.io/hosting/starter-kits/ai-starter-kit/
[4] n8n系列教程: https://www.undsky.com/blog/?category=n8n%E6%95%99%E7%A8%8B#