摘要
分享如何用n8n替代Python后端,构建AI工作流自动处理网站提交、爬取、AI生成描述和多语言翻译,降低出海网站运营成本并提升效率。
年初的时候我做了一个 AI 编程工具的导航网站,打算流量上来后就可以接谷歌广告赚美金:
https://www.aicoding.help/cn
设想是根据 AI 编程开发的流程来推荐每个阶段的效率工具:灵感与想法、原型与设计、编程开发、数据库与存储、部署上线、扩展能力、数据分析、内容管理、协作与运营
目前挂在了 vercel 上,感兴趣可以去看看,但实际上还有很多问题,待一步一步解决。
具体这个网站是怎么做的,可以参考之前的文章,基于 Tap4AI 项目:
这个导航网站分成两部分
-
前端页面的展示,主要痛点就是怎么把网站设计的好看且合理
-
后端数据的处理,前端页面其实不存数据,每次用户打开网站的时候,都是直接从数据库里读数据的
这样的好处就是维护方便,因为前端页面要改的话是要重新部署上线的,很麻烦。
例如我数据库用的是Supabase,如果哪个内容写错了,我只需要对 Supabase 里的内容进行修改就行了,有新网站也可以直接在数据库里添加即可。
所以,目前这个网站的工作量在于后端,看着简单其实挺麻烦的,日常运营有以下几个动作:
-
提交新的网站
-
爬虫,去爬新的网站,截图,AI 生成相应的描述
-
把描述翻译成多个语言,例如我至少是中英日
-
写 SEO 文章,让谷歌收录
具体可以看这个图:
目前这个后端是真的离谱,有一个单独的 Python 项目来跑,实在是太重了。
因为最近都在玩 n8n,而且 n8n 对接的都是海外的服务,很适合出海做后端服务。
我在想是不是可以把这个 Python 后端转成 n8n 的工作流呢?
说干就干,一步一步来。
需求拆解
首先,解决第一步:提交新网站的需求。
在数据库,我有一个 submit 表,用户提交网站请求后,会插入到这里,包含名称、网址、分类、描述等字段,状态 status 是 0
等爬虫把这网站爬完,处理好数据后,状态会更新为 1,证明处理完了。
目前这一步我是很苦逼的自己写了个 python 脚本来手动插入数据的。
今天我们就来解决这个问题,通过 n8n 提交网站到数据库 supabase
n8n 连接 Supabase
首要任务就是让 n8n 连上 Supabase
但在此之前,需要先找到两个关键的 key:
在 Supabase 的 Project Settings 里找到 API Keys,下面的 service_role secret
同个目录的 General 找到 Project ID
接着就可以回到 n8,创建一个 Supabase 的 Create a row 节点
老规矩,先新建一个 Cred,然后把前面找到的两个信息填入
其中 Host,一般就是你的 proejct id + supabase.co 后缀,如下图。
用例测试
测试一下,假设我们要提交 bolt.new 这个全栈 AI 开发网站
配置对应的信息
-
Name: bolt.new
-
Url: https://bolt.new/
-
Category: 编程开发
-
remark:Bolt is an in-browser AI web development agent for full stack web application development.
只要前面连接成功的话,这里就会自动从 supabase 中获取表格结构,你只需要去选字段就好了,非常方便
如下图,n8n 表示测试成功
同时,在 supabase 里也能看到,多了一行。
完成工作流
在正式开发工作流之前,要先想清楚自己想要的产品是什么样子的。
例如当前这个项目,我想要的是:只要给一个网站,AI 就能自动判断它是什么,并给出对应的信息,进而插入到 Supabase 表的位置。
这样拆解下来,就需要做:
-
AI 从用户给的信息中解析出网址
-
判断用户有没给更多信息,例如名称、描述、分类
-
如果没有,则访问该网址,判断是什么,生成名称、描述、分类
-
对结果进行结构化输出
-
传入到 supabase 的 submit 表
先看效果:
现在我只给一个魔塔社区的网站 https://www.modelscope.cn/
就能看到 AI Agent 调用了 Jina AI 的工具去读网址,并且根据要求输出了格式
接下来看每个节点。
- 新建一个 AI Agent 节点:
对接上前面的用户对话框里的输入
参考提示词:
我在给一个AI编程工具导航网站提交新的网站录用,需要你从用户给的信息中提取出以下内容:
{
"name": "这个网站工具的名称",
"Url": "这个网站的网址",
"Category":"分类,只能从 灵感与想法、原型与设计、编程开发、数据库与存储、部署上线、扩展能力、数据分析、内容管理、协作与运营 中选择一个",
"remark":"这个网站工具的简单介绍不超过 50 字"
}
更具体的,你需要做:
1. AI从用户给的信息中解析出网址
2. 判断用户有没给更多信息,例如名称、描述、分类
3. 如果没有更多信息,则要调用工具`jina AI reader`访问该网址,根据返回内容判断这网站是什么,生成名称、描述、分类
4. 对结果进行结构化输出
可以看到这个 AI Agent 还是挺能配置的,这就是 n8n 的优势,非常自由
在工具 Tool 的部分,配置一个 Jina AI 工具,这是一个能帮助我们读取网址内容的工具
很简单,用谷歌登录一下就有 key 了
如下图,URL 这里可以让大模型自己去判断
格式化输出这里给个例子就行
- 接着就可以连上 Supabase 节点了,把 AI 拆解好的内容分到对应位置:
非常简单!!
不过每次要打开 n8n 工作流里面去提交就太麻烦了,我们可以用 n8n 内置的表单功能
- 新建一个表单
设置好需要的参数:
执行的时候,就自动生成好了一个表单网站了
因为新增了一个表单,传入到 AI 节点的数据结构不同了,所以我就添加了几个数据处理节点,最终同样也能向数据库提交数据。
至此,我们就完成了第一阶段的改造,把原先通过 Python 提交网站的功能,变成了 n8n 的工作流,并且可以通过表单的形式提交;甚至后面可以改成 webhook 的监听,或者改造成 mcp,更加自由的添加网站。
可玩性非常高!!
接下来会继续更新 用n8n驱动网站出海赚美金 系列,帮助大家用 n8n 降低开发和运营成本。
欢迎关注。