从零到一:基于DeepSeek R1与n8n打造个人专属AI工作流智能体
1. 为什么你需要一个本地AI工作流智能体?
想象一下这个场景:你每天都要从十几个不同的信息源里收集行业动态,手动整理成一份日报;或者,你经常需要根据一堆零散的数据,快速生成一份结构清晰的报告;又或者,你希望有一个永不疲倦的助手,能帮你自动回复一些常见的咨询邮件。这些重复、琐碎但又需要一点“智能”判断的任务,是不是占据了你的大量时间?
在过去,解决这些问题要么需要你亲力亲为,要么就得依赖各种云端SaaS服务。但云端服务总有它的局限:你的数据要上传到别人的服务器,隐私和安全总让人有点不放心;API调用次数有限制,用多了还得额外付费;最关键的是,它往往不够“贴身”,无法完全按照你个人的、独特的工作习惯来定制。
这就是我今天想跟你分享的“个人专属AI工作流智能体”的魅力所在。它不是一个现成的、僵化的软件,而是一个由你亲手搭建、完全运行在你本地电脑上的“数字伙伴”。它的核心大脑是DeepSeek R1——一个能力强大且完全免费开源的大语言模型;而它的“神经系统”和“手脚”,则由n8n这个强大的可视化自动化工具来担任。两者的结合,就像给你的电脑装上了一颗能理解你意图、并自动执行复杂操作的AI心脏。
我花了几个月时间折腾这个组合,从最初的磕磕绊绊到现在的得心应手,最大的感受就是:自主掌控的感觉真好。所有的数据都在本地流转,模型根据你的指令运行,工作流完全按你的想法设计。你不用再担心服务突然宕机、API涨价或者隐私泄露。更重要的是,这个过程本身充满了创造的乐趣,看着一堆代码和工具最终变成一个能帮你实实在在干活的智能体,那种成就感是无可替代的。接下来,我就带你从零开始,一步步把这个构想变成现实。
2. 搭建基石:准备你的本地AI运行环境
万事开头难,但只要我们一步步来,这个开头其实很清晰。我们的目标是在你的Windows电脑上,建立起一个稳固的“地基”,让DeepSeek R1和n8n都能安稳地跑起来。别被“本地部署”吓到,我保证整个过程就像搭积木,有清晰的步骤可循。
2.1 硬件与软件的基本要求
首先,我们得看看你的“装备”是否够用。最核心的要求是显卡。DeepSeek R1模型,尤其是我们常用的7B或14B参数版本,对显存(GPU内存)有一定要求。我强烈建议你的电脑拥有一块至少8GB显存的独立显卡(NVIDIA显卡为佳)。我用的是RTX 4070(12GB显存),运行7B模型非常流畅。如果你的显卡只有6GB,可以尝试量化版本(比如4bit量化),也能跑起来,只是速度会慢一些。如果只有集成显卡,那就需要依赖CPU运行,速度会慢很多,只适合轻量级尝鲜。
除了显卡,内存建议16GB或以上,硬盘空间留出20GB左右用于安装模型和工具。软件方面,你需要一个64位的Windows 10或11操作系统。
2.2 第一步:安装Ollama——你的本地模型管理器
Ollama是我们整个系统的“模型管家”。它简化了在本地下载、运行和管理各种大语言模型的过程,让你用一行命令就能启动一个模型,无需复杂的配置。
安装Ollama非常简单:
- 打开你的浏览器,访问Ollama的官方网站。
- 找到Windows版本的下载链接,点击下载安装程序(一个.exe文件)。
- 双击运行安装程序,就像安装普通软件一样,一路点击“下一步”即可完成。
安装完成后,验证一下是否成功。在桌面空白处点击鼠标右键,选择“在终端中打开”(如果右键菜单没有,可以按 Win + R,输入 cmd 后回车)。在打开的黑色命令行窗口中,输入以下命令并回车:
ollama --version
如果显示了Ollama的版本号(比如 ollama version 0.1.xx),恭喜你,第一步成功了!
2.3 第二步:拉取并运行DeepSeek R1模型
Ollama安装好了,我们就可以用它来“请”出我们的大脑——DeepSeek R1模型了。还是在刚才的命令行终端里,输入这条“魔法咒语”:
ollama run deepseek-r1:7b
这条命令做了几件事:首先,Ollama会从它的模型库中自动下载deepseek-r1:7b这个模型(大约4-5GB大小)。下载速度取决于你的网络。下载完成后,Ollama会自动加载并运行这个模型,你会直接进入一个与DeepSeek R1的对话界面。
你可以试着跟它打个招呼,输入 Hello,看看它会不会回应你。如果它开始生成回答,说明模型运行正常。按 Ctrl+C 可以退出这个对话界面。模型一旦下载,就会保存在本地,下次运行只需要输入 ollama run deepseek-r1:7b 即可,无需重新下载。
提示:
deepseek-r1:7b是7B参数的版本,在性能和资源消耗上比较平衡。如果你的显卡足够强大(比如16GB以上显存),可以尝试deepseek-r1:14b或deepseek-r1:32b以获得更强的能力。只需将命令中的7b替换即可。
2.4 第三步:安装Docker Desktop——容器化部署的利器
接下来是n8n的舞台。n8n是一个基于Node.js的自动化工具,为了让它能在各种环境下稳定、一致地运行,我们通常使用Docker来部署它。你可以把Docker想象成一个超级轻量级的“软件集装箱”系统,它把n8n和它所需的所有环境(比如Node.js、各种依赖库)打包成一个独立的“集装箱”(即容器),我们直接运行这个集装箱就行了,完全不用操心复杂的底层环境配置。
安装Docker Desktop for Windows:
- 访问Docker官网,下载Windows版本的Docker Desktop安装包。
- 运行安装程序。安装过程中,它会询问你是否使用WSL 2(Windows Subsystem for Linux 2)。这里务必选择“使用WSL 2”,这是目前Windows上运行Docker最推荐、性能最好的方式。如果你的系统没有安装WSL 2,安装程序通常会引导你完成安装。
- 安装完成后,重启电脑。之后在开始菜单找到Docker Desktop并启动它。你会看到系统托盘区出现一个小鲸鱼图标,这表示Docker正在运行。
为了验证Docker安装成功,再次打开命令行终端,输入:
docker --version
和
docker run hello-world
如果第一条命令显示Docker版本,第二条命令下载并运行了一个测试镜像,最后打印出“Hello from Docker!”等信息,那么Docker就准备就绪了。
3. 部署自动化中枢:在Docker中运行n8n
现在,我们的“大脑”(DeepSeek R1)已经就位,需要一个“指挥中心”来调度它,并连接其他各种应用(比如你的邮箱、日历、笔记软件)。这个指挥中心就是n8n。用Docker来运行n8n,是最干净、最不容易出错的方式。
3.1 一键启动你的第一个n8n容器
Docker运行起来后,我们只需要一条命令,就能让n8n服务在本地启动。打开你的命令行终端(PowerShell或CMD都可以),输入以下命令:
docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n n8nio/n8n
我来解释一下这条命令的每个部分:
docker run:告诉Docker运行一个容器。-it:以交互模式运行,并分配一个伪终端,这样我们可以看到运行日志。--rm:容器停止后自动删除它。这适合初次测试,避免留下无用容器。--name n8n:给这个容器起个名字叫“n8n”,方便管理。-p 5678:5678:端口映射。将容器内部的5678端口映射到你电脑的5678端口。这样你就能通过localhost:5678访问n8n的网页界面了。-v n8n_data:/home/node/.n8n:卷映射。这是非常关键的一步。它在你电脑上创建一个名为n8n_data的持久化存储空间,并映射到容器内n8n存放工作流、用户凭证等数据的位置。即使你删除了容器,你的工作流数据也不会丢失。n8nio/n8n:指定要运行的镜像名称,Docker会自动从官方仓库拉取最新的n8n镜像。
命令执行后,你会看到终端开始滚动输出日志。当看到类似 n8n ready on http://localhost:5678 的信息时,就说明n8n启动成功了。
3.2 初次配置与访问n8n网页界面
打开你的浏览器(Chrome/Firefox/Edge均可),在地址栏输入:http://localhost:5678。你会首次进入n8n的注册页面。
你需要设置一个管理员账号:
- 邮箱:填写你的常用邮箱,用于登录。
- 密码:设置一个安全的密码。
- 确认密码:再次输入密码。
- FirstName & LastName:可以随意填写。
填写完成后,点击“下一步”或“完成注册”。之后,n8n可能会提示你获取一个免费的许可证(License Key)。对于个人使用,社区版(Community Edition)的功能已经完全足够,你可以按照页面指引获取一个免费的许可证并激活。完成这些步骤后,你就会进入n8n的主界面——一个空白的画布(Canvas),这里就是你未来构建所有自动化工作流的“作战室”。
3.3 更优雅的管理:使用Docker Compose
每次都用一长串 docker run 命令不太方便,特别是当你需要设置更多参数时。更专业的做法是使用 docker-compose.yml 文件。在你的电脑上找一个合适的位置(比如 D:\n8n),新建一个名为 docker-compose.yml 的文件,用文本编辑器(如VS Code)打开,输入以下内容:
version: '3.8'
services:
n8n:
image: n8nio/n8n
container_name: n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=你的用户名
- N8N_BASIC_AUTH_PASSWORD=你的密码
- N8N_HOST=localhost
- N8N_PORT=5678
- N8N_PROTOCOL=http
- N8N_ENCRYPTION_KEY=一个随机的长字符串(用于加密敏感数据)
volumes:
- n8n_data:/home/node/.n8n
- ./local_files:/files # 可选:映射本地文件夹,方便n8n读写文件
volumes:
n8n_data:
这个配置文件做了几件好事:1) 设置了容器自动重启;2) 配置了基础认证(访问n8n网页时需要输入用户名密码,更安全);3) 定义了持久化数据卷。你需要将 你的用户名、你的密码 和 一个随机的长字符串 替换成你自己的内容。
保存文件后,在该文件所在目录打开终端,只需运行一条命令:
docker-compose up -d
-d 参数表示在后台运行。要停止服务,运行 docker-compose down。用这种方式管理n8n,启动、停止、配置都变得非常清晰和简单。
4. 核心连接:让n8n与DeepSeek R1“握手”成功
单独的n8n和单独的DeepSeek R1都只是强大的工具,只有把它们连接起来,才能产生化学反应,构建出真正的智能体。这一步是关键,也是很多新手容易卡住的地方,我会把细节和可能遇到的“坑”都讲清楚。
4.1 在n8n中创建你的第一个AI工作流
登录n8n后,点击左侧菜单的“Workflows”,然后点击“New Workflow”创建一个新的工作流。你可以给它起个名字,比如“我的AI助手”。进入画布后,点击画布中间的“+”号,会弹出节点选择面板。在“Trigger”分类下,找到“On Chat Message”节点并点击添加。这个节点可以模拟一个聊天触发器,非常适合我们测试。
添加后,画布上会出现这个触发节点。点击它右侧的“+”号,在搜索框输入“AI”,你会看到“Advanced AI”分类。选择其中的“Basic LLM Chain”节点并添加。这个节点是n8n与AI模型交互的核心。
4.2 配置Ollama连接凭证——跨越容器的鸿沟
现在,点击你刚刚添加的“Basic LLM Chain”节点,右侧会展开它的属性面板。在“Model”下拉菜单下方,点击“Add Credential”或“Create new credential”。
这里就是第一个关键点:n8n运行在Docker容器内,而Ollama通常直接运行在你的Windows主机上。从容器内部访问主机的服务,不能直接用 localhost 或 127.0.0.1,因为那指向的是容器自己。Docker为这种情况提供了一个特殊的主机名:host.docker.internal,这个地址会解析到宿主机器(即你的Windows电脑)。
因此,在创建新凭证的界面,你需要这样填写:
- Credential Type:选择 “Ollama Api”。
- Name:起个名字,比如“My Local Ollama”。
- Base URL:必须填写
http://host.docker.internal:11434。11434是Ollama服务的默认端口。 - 其他字段:如API Key,留空即可(Ollama本地运行通常无需密钥)。
填写完成后,先别急着保存,点击下方的“Test Connection”按钮。如果一切配置正确,你会看到一条绿色的成功提示:“Connection tested successfully”。如果失败,请检查:1) Ollama服务是否正在运行(在终端输入 ollama list 查看);2) Docker Desktop是否运行;3) Base URL是否完全正确。
4.3 选择模型并完成第一次对话测试
连接测试成功后,保存这个凭证。回到“Basic LLM Chain”节点的属性面板,现在“Model”下拉菜单应该可以选择了。点击它,你应该能看到一个列表,里面就有我们之前通过Ollama下载的 deepseek-r1:7b 模型。选中它。
至此,最简单的连接就完成了。我们可以测试一下。点击画布右上角的“Execute Workflow”按钮(一个播放图标)。n8n会从“On Chat Message”节点开始执行。因为该节点是触发器,我们需要给它一个初始输入。在节点属性面板的“Test Data”部分,你可以手动输入一个JSON,例如:
{
"message": "你好,请介绍一下你自己。"
}
然后再次点击执行。工作流会运行,数据从触发器流向AI节点。点击“Basic LLM Chain”节点,在右侧的“Output”面板,你就能看到DeepSeek R1生成的回复了!恭喜你,你的本地AI智能体已经成功发出了第一声“啼哭”。
5. 从聊天到智能体:构建你的第一个实用工作流
能聊天只是第一步。真正的威力在于将AI的“思考”能力嵌入到自动化的流程中。让我们来构建一个稍微复杂一点、但非常实用的例子:自动信息摘要与归档智能体。这个智能体会监控一个特定文件夹(比如你的“下载”文件夹),每当有新的文本文档(.txt)或PDF文件放入时,自动调用DeepSeek R1阅读内容并生成摘要,最后将摘要保存到你的笔记软件(比如Notion)或一个Excel表格中。
5.1 设计工作流逻辑与选择节点
这个工作流的逻辑链条非常清晰:
- 触发:监控本地文件夹的新文件。
- 处理:读取新文件的内容。
- AI处理:将内容发送给DeepSeek R1,要求其生成摘要。
- 后处理:将摘要和原文件信息(如文件名)整理成结构化数据。
- 输出:将结构化数据追加到Excel或发送到Notion。
在n8n画布上,我们依次添加以下节点:
- Trigger Node: 选择 “Schedule Trigger” 下的 “Cron” 节点,设置为每分钟检查一次。或者更优雅的方式是使用 “File Trigger” 节点(如果n8n能访问到宿主机的文件夹)。
- File Node: 选择 “Read Binary File” 节点,读取被触发节点检测到的新文件。
- AI Node: 就是我们之前配置好的 “Basic LLM Chain” 节点。
- Code Node: 选择 “Function” 或 “Code” 节点,用于将AI返回的文本整理成我们需要的格式(如JSON对象)。
- Spreadsheet Node: 选择 “Google Sheets” 或 “Microsoft Excel” 节点(需要相应凭证),将数据写入在线表格。对于纯本地方案,我们可以用 “Write Binary File” 节点将摘要追加到一个本地文本文件或CSV文件中。
5.2 配置节点细节与提示词工程
重点讲一下AI节点和文件读取的配置。
文件读取:为了让n8n容器能访问你Windows主机上的文件夹,你需要在Docker Compose配置中增加一个卷映射(volume mount)。就像我们之前映射 n8n_data 一样,再添加一行,例如 - D:/我的文档/监控文件夹:/files/to/watch。这样,容器内的 /files/to/watch 路径就对应你本地的 D:\我的文档\监控文件夹。在 “Read Binary File” 节点中,文件路径就填写容器内的路径,如 /files/to/watch/{{$node["Cron"].json["fileName"]}}。
AI提示词工程:这是让AI按你意愿工作的核心。双击“Basic LLM Chain”节点,在属性面板找到 “Prompt” 字段。这里不能只简单发送文件内容,需要构造一个清晰的指令(Prompt)。例如:
你是一个专业的文档摘要助手。请阅读以下文本内容,并生成一个简洁的摘要。摘要需包含:1. 核心主题(一句话)。2. 三个关键要点。3. 文档类型推测(如技术报告、新闻、随笔等)。
文本内容:
{{$json["fileContent"]}}
请以JSON格式回复,包含以下字段:theme, key_points (数组), doc_type。
注意 {{$json["fileContent"]}} 是n8n的表达式,它会将上一个节点(文件读取节点)输出的 fileContent 字段的值动态插入到这里。这样的提示词给了AI明确的角色、任务和输出格式要求。
5.3 测试、调试与优化你的工作流
配置好所有节点并连接后,点击“Execute Workflow”进行测试。你可以手动在监控文件夹里放一个.txt文件,然后触发工作流。
调试技巧:
- 利用节点执行视图:点击每个节点,在右侧的“Execution”选项卡,你可以看到该节点本次运行接收到的输入数据(Input)和产生的输出数据(Output)。这是排查问题最强大的工具。比如,你可以检查文件内容是否被正确读取、AI收到的提示词是否完整、AI返回的答案是否符合预期。
- 处理AI输出:AI返回的可能是文本,我们需要用“Code”节点来解析它。如果我们在提示词中要求返回JSON,那么可以在Code节点(使用JavaScript)这样写:
const aiResponse = items[0].json.response; // 假设AI输出在‘response’字段
try {
const summaryObj = JSON.parse(aiResponse);
return [{json: {theme: summaryObj.theme, points: summaryObj.key_points, type: summaryObj.doc_type, sourceFile: $input.item.json.fileName}}];
} catch (e) {
// 如果AI没有返回合法JSON,做降级处理
return [{json: {rawSummary: aiResponse, sourceFile: $input.item.json.fileName}}];
}
- 错误处理:在关键节点后可以添加“Error Trigger”节点,或者使用“IF”节点判断上一步是否成功,失败时发送通知(例如通过n8n的“Email”节点发邮件提醒你)。
通过这样一个完整的工作流,你就能实现文件的自动摘要了。你可以在此基础上无限扩展:比如摘要后自动翻译成英文、根据内容打标签并分类归档、或者发现特定关键词时给你发送即时消息提醒。n8n丰富的节点库(有数百个集成)和DeepSeek R1的理解能力相结合,能实现的自动化场景超乎你的想象。
6. 进阶探索与实战场景构想
当你成功运行了第一个工作流,就像打开了一扇新世界的大门。你会发现,很多重复性的脑力劳动都可以被这个本地智能体接管。下面分享几个我实践过或构思的进阶场景,希望能激发你的灵感。
6.1 场景一:个人知识库的自动构建与问答
很多人都有收藏文章、保存资料的习惯,但时间一长就变成了“数字仓鼠”,只存不看。我们可以构建一个智能体来解决这个问题。
- 工作流设计:
- 使用n8n的“RSS Feed Read”节点订阅你常看的博客、新闻源。
- 或者用“Email Read”节点监控特定邮箱,将收到的新闻简报、行业报告自动抓取。
- 将抓取到的文章全文(或链接)发送给DeepSeek R1,指令它:“请提取这篇文章的核心论点、关键数据和结论,并生成3-5个关键词标签。”
- 将提取的结构化信息(标题、摘要、标签、原文链接、日期)保存到本地数据库(如SQLite)或Notion/Database中。
- 更智能的一步:再创建一个独立的工作流,提供一个聊天接口(可以用n8n的Webhook节点创建一个简单的API)。当你向这个API提问,比如“上周关于量子计算有什么新进展?”,工作流会先将问题发送给DeepSeek R1,让它将问题转化为查询关键词,然后去你的知识库数据库中检索相关摘要,最后让DeepSeek R1综合这些摘要生成一个连贯的回答。这样,你就拥有了一个基于个人收藏的、隐私安全的定制版ChatGPT。
6.2 场景二:智能内容创作与发布助手
如果你是内容创作者,这个智能体可以成为你的得力副手。
- 工作流设计:
- 灵感收集:监控社交媒体热点、行业论坛讨论,抓取热门话题。
- 大纲生成:将话题发送给DeepSeek R1,提示它:“请以‘[话题]’为主题,为一篇技术博客生成一个详细大纲,包括引言、3个主要论点及论据、结论。”
- 内容扩写:你可以选择大纲中的一个部分,将其发送给DeepSeek R1进行扩写。通过迭代和人工微调,逐步完成整篇文章。
- 格式优化与发布:完成初稿后,让AI检查语法、调整语气。最后,通过n8n的“WordPress”或“Ghost”节点,将最终文章自动发布到你的博客平台。你甚至可以连接社交媒体节点,自动生成推文或短文进行预告。
6.3 性能调优与资源管理
随着工作流越来越复杂,你可能会关心性能和资源占用。
- 模型选择:
deepseek-r1:7b在大多数任务上已经足够出色且响应迅速。对于更复杂的推理任务,可以尝试在Ollama中加载deepseek-r1:14b或32b模型,并在n8n中创建另一个AI节点凭证指向这个更大模型,在需要时调用。 - Ollama参数调整:在Ollama运行模型时,可以附加参数。例如,
ollama run deepseek-r1:7b --num-predict 512可以限制生成的最大令牌数,防止生成长篇大论。你可以在n8n的Ollama凭证配置中,尝试在“Additional Parameters”里传入这些设置。 - n8n工作流优化:对于频繁触发的任务(如每分钟检查邮件),确保工作流执行效率。避免在循环中调用AI节点,可以将批量数据一次性发送。利用n8n的“Wait”节点控制执行频率,避免对本地资源造成不必要的压力。
- 数据安全提醒:虽然所有数据都在本地,但良好的习惯依然重要。n8n中配置的各类凭证(如邮箱密码、Notion密钥)请妥善保管。定期备份
n8n_data这个Docker卷,你的所有工作流配置就都在里面了。可以将整个卷目录复制到其他安全位置。
搭建和优化这个本地AI智能体的过程,就像在精心培育一个数字生命。它从一开始只能简单回应,到后来能帮你处理复杂的多步骤任务,这种成长感是使用任何云端黑盒服务都无法带来的。我自己的智能体现在已经能处理从信息筛选、初稿撰写到日程提醒等十几种任务,它就像长在我电脑里的一个“数字副脑”。
更多推荐
所有评论(0)