n8n 实操攻略 12:搭建公众号文章二创工作流

天天

发布于278天前
龙猫也是猫

这个工作流的目的,是将公众号文章进行 AI 二创,方便输出文章。

https://appstore.lazycat.cloud/#/shop/detail/cloud.lazycat.app.n8n

先看一下整体的流程图:

image.png

先快速搭建所有节点

我有个 Google sheet,里面放了一些公众号文章的链接,希望是通过Google sheet 的记录增加来触发,所以先增加一个这个 Trigger:

image.png

image.png

更新这一行时,增加一个处理中的状态节点

image.png

下一步我们要用到爬取文章的节点,要在设置里-社区节点安装

image.png

搜索 firecraw,安装这个节点

image.png

image.png

回到画布中,搜索 firecrawl 就能看到这个节点了

image.png

选择第 3 个根据 url 抓取内容

image.png

抓取到内容之后,给 ai agent 去分析并修改文章

image.png

根据流程图,我们需要 3 个 agent,所以再添加 2 个

image.png

添加一个 Code 对输出结果进行清洗

image.png

清洗之后,把内容更新到 Google sheet 中

image.png

以上就是工作流的整体框架,下面是详细配置。

Google sheet

先新建一个 Google 表格,列名可以参考:

参考文章	完成状态	二创正文	二创标题	二创摘要

image.png

授权配置可以参考前面的攻略,这里不再赘述

image.png

复制一个公众号文章的链接,放到 Google 表格中

image.png

image.png

然后在n8n 中执行一下节点,可以看到它获取到了表格中的内容

image.png

将结果 pin 一下,继续配置第 2 个节点
重点是这里,要选择匹配哪一列,我们选择 参考文章 这一列

image.png

将左侧的参考文章拖过来,状态写 正在进行中,其他的不用的列删掉

image.png

执行一下可以看到

image.png

Google 表格中可以看到已经更新了

image.png

firecrawl

要抓取文章内容,我们需要用到 apikey,打开官网https://www.firecrawl.dev/

登录之后就可以看到自己的 apikey 了

image.png

创建新凭证,将 apikey 粘贴到这里就行了

image.png

将参考文章的 url 拖过来

image.png

执行之后,可以看到文章内容已经抓取到了 markdown 的 json节点里

image.png

同样 pin 一下,方便后续操作

agent 配置

给第一个 agent 重命名一下

image.png

上方的 prompt 是左侧的文章内容,直接拖过来,
下方再添加一个系统提示词,你可以根据你想创建的文章,让 ai 写一套提示词

image.png

model 我选的 Gemini,执行一下,可以在右侧看到结果了:

image.png

第 2 个 agent,可以叫 生成文章机器人,prompt 就是上个节点的输出

image.png

增加一个二创文章提示词的 option

image.png

执行一下,可以看到输出了新文章

image.png

第 3 个 agent,是 标题优化机器人,配置和上面的类似操作

image.png

执行节点,可以看到效果

image.png

Code 节点

这个节点是清洗前面生成的内容,将内容输出的更好看,可以参考代码

// 1. 获取当前正在处理的这一个数据项 (item)
// 在 'Run Once for Each Item' 模式下,我们使用 $input.item
const inputString = $input.item.json.output;

// 2. 清理字符串,提取出纯净的 JSON 部分
// 这段正则表达式会匹配并提取出 '{' 和 '}' 之间的所有内容
const jsonMatch = inputString.match(/\{[\s\S]*\}/);

// 如果当前项没有找到匹配的 JSON,可以选择跳过或返回错误
if (!jsonMatch) {
  // 您可以选择返回一个空对象,让工作流继续
  // return { json: { error: "No valid JSON found" } }; 
  // 或者像原来一样抛出错误,让工作流在这里停止
  throw new Error("在输入字符串中没有找到有效的 JSON 对象。");
}

// .match() 返回的是一个数组,我们需要的是第一个匹配项
const jsonString = jsonMatch[0];

// 3. 将清理后的 JSON 字符串解析成一个真正的 JavaScript 对象
const dataObject = JSON.parse(jsonString);

// 4. 从对象中提取 title 和 summary 的值
const title = dataObject.Title;
const summary = dataObject.Summary;

// 5. 返回一个处理后的新对象
// 在 'Run Once for Each Item' 模式下,返回的是一个对象,而不是包含对象的数组
return {
  json: {
    title: title,
    summary: summary
  }
};

执行一下,可以看到,它将前面的内容拆成了标题和摘要

image.png

Google sheet

最后一个节点,就是将前面生成的内容,存到表格中
将对应的节点都拖过来

image.png

执行一下,可以看到成功了

image.png

回到 Google 表格中,可以看到内容输出:

image.png

完美!以上就是完整的工作流搭建过程。

json 文件贴这里不太好看,有想抄作业的同学可以私聊吧。

评论

0

暂无评论

说点什么呢~
收藏
0
0
0