【拔刀刘】自动总结公众号内容,定时推送到微信(附完整实操教程)
【拔刀刘】自动总结公众号内容,定时推送到微信(附完整实操教程)
【拔刀刘】自动总结公众号内容,定时推送到微信(附完整实操教程) 【拔刀刘】自动总结公众号内容,定时推送到微信(附完整实操教程) Modified September 26, 2024 四、最终效果展示 No access 9月22日 00:00 请忽略我的老年人字体和暗黑模式[捂脸][捂脸][捂脸] 五、后记 最后,我们再回顾一下制作这个Bot的整个流程,还记得吗?这个Bot核心环节就三个: 1、抓取公众号的内容 2、对内容进行总结 3、汇总后定时推送到微信 在文档第三部分「搭建工作流」中,第4 5步就是解决抓取公众号内容的问题,第9 10步是解决内容总结的事情,第12步是搞定推送的事情。核心步骤其实就这几步,其他环节都是为了这几个核心步骤服务的。 从0到1做一个MVP产品,也没有那么难对吗? 作为一个运营出身的人,我原本以为自己永远不可能踏入技术的领域。但是,扣子平台的出现,彻底改变了这一切。它就像是一座神奇的桥梁,让我们这些非技术背景的人也能轻松跨越技术的鸿沟,实现自己的创意。 所以,大家真的可以也一起尝试一下。相信我,当你亲手制作的第一个Bot顺利运行的时候,那种成就感是无与伦比的。不管你有没有报名这次的Coze提效大航海,我建议你都去看看这次的航海手册,看手册可能花2个小时,但是未来可能帮你节省N个2小时的时间。 至于这个Bot的未来,我已经部署好了RSSHub,希望未来可以支持更多平台内容的聚合,有兴趣的小伙伴可以一起探讨 公众号找我:拔刀社 daodao300 六、相关资源 1、获取Server酱的sendkey • 打开官网,扫码登录:https://sct.ftqq.com/login • 通道配置:选择「方糖服务号」,也就是刚刚扫码登录关注的公众号,之后会由这个公众号推送内容 • Key&API选择复制,将得到Server酱的SendKey,类似于SCT25781 2、新建Bot设置数据库 在「个人空间」新建一个Bot,简单设置Bot名称和描述。 在Bot设置页面,选择添加「数据库」。设置数据库参数,这里「数据表名称」和「存储字段名称」要和图片中文字一样,因为工作流中数据库节点使用的就是这个字段。 这里可以看到已经设置的数据库: 3、自建Server酱推送插件 在「个人空间」选择插件,右上角创建插件。 注意选择「云测插件 在Coze IDE中创建」,语言选择「Python3」 选择在IDE中创建工具,设置工具名称,建议设置成下图一样,可以直接复制我后边的代码。 直接复制下方代码: Code block Bash Copy from runtime import Args from typings.server push.server push import Input, Output """ Each file needs to export a function named . This function is the entrance to the Tool. Parameters: args: parameters of the entry function. args.input input parameters, you can get test input value by args.input.xxx. args.logger logger instance used to print logs, injected by runtime. Remember to fill in input/output in Metadata, it helps LLM to recognize and use tool. Return: The return data of the function, which should match the declared output parameters. """ import json 导入json模块,用于处理JSON数据 import urllib.request 导入urllib.request模块,用于发送HTTP请求 def handler(args: Args[Input]) Output: title = args.input.title 获取输入的标题 key = args.input.key 获取输入的密钥 desp = args.input.desp 获取输入的描述 short = args.input.short 获取输入的描述 noip = 1 获取输入的描述 channel = args.input.channel 获取输入的描述 postdata = { 四、最终效果展示 No access 9月22日 00:00 No access 9月22日 00:00 请忽略我的老年人字体和暗黑模式[捂脸][捂脸][捂脸] 五、后记 最后,我们再回顾一下制作这个Bot的整个流程,还记得吗?这个Bot核心环节就三个: 1、抓取公众号的内容 2、对内容进行总结 3、汇总后定时推送到微信 在文档第三部分「搭建工作流」中,第4 5步就是解决抓取公众号内容的问题,第9 10步是解决内容总结的事情,第12步是搞定推送的事情。核心步骤其实就这几步,其他环节都是为了这几个核心步骤服务的。 从0到1做一个MVP产品,也没有那么难对吗? 作为一个运营出身的人,我原本以为自己永远不可能踏入技术的领域。但是,扣子平台的出现,彻底改变了这一切。它就像是一座神奇的桥梁,让我们这些非技术背景的人也能轻松跨越技术的鸿沟,实现自己的创意。 所以,大家真的可以也一起尝试一下。相信我,当你亲手制作的第一个Bot顺利运行的时候,那种成就感是无与伦比的。不管你有没有报名这次的Coze提效大航海,我建议你都去看看这次的航海手册,看手册可能花2个小时,但是未来可能帮你节省N个2小时的时间。 至于这个Bot的未来,我已经部署好了RSSHub,希望未来可以支持更多平台内容的聚合,有兴趣的小伙伴可以一起探讨 公众号找我:拔刀社 daodao300 公众号找我:拔刀社 daodao300 公众号找我:拔刀社 daodao300 六、相关资源 1、获取Server酱的sendkey • 打开官网,扫码登录:https://sct.ftqq.com/login • 通道配置:选择「方糖服务号」,也就是刚刚扫码登录关注的公众号,之后会由这个公众号推送内容 • Key&API选择复制,将得到Server酱的SendKey,类似于SCT25781 2、新建Bot设置数据库 在「个人空间」新建一个Bot,简单设置Bot名称和描述。 在Bot设置页面,选择添加「数据库」。设置数据库参数,这里「数据表名称」和「存储字段名称」要和图片中文字一样,因为工作流中数据库节点使用的就是这个字段。 这里可以看到已经设置的数据库: 3、自建Server酱推送插件 在「个人空间」选择插件,右上角创建插件。 注意选择「云测插件 在Coze IDE中创建」,语言选择「Python3」 选择在IDE中创建工具,设置工具名称,建议设置成下图一样,可以直接复制我后边的代码。 直接复制下方代码: 然后点击「元数据」,设置输入参数,请严格按照如下内容进行编辑,注意名称、类型字段,记得点击保存。 测试一下代码,点击右上角按钮会生成一段测试数据,修改一下key的值,修改为你的Server酱的sendkey,channel设置为9,注意这里不加双引号,点击运行。 正常来说,你会看到如下结果,同时你也会收到一条微信推送的测试内容,点击左下角「更新输出参数」 「确认」,就可以在「元数据」下看到,他已经自动配置好了输出参数。 点击右上角「发布」,等待发布完成,在插件中就可以看到我们发布的这个插件了,同时也可以在工作流中使用这个插件了 📌 作者: 拔刀刘 作者: 拔刀刘 大家好,我是拔刀刘,这次Coze提效大航海的教练。 目前带领2300多名船员,还在海上驰骋。我在这里也用自己的一个案例,为咱们不会技术的众多小伙伴打打气,在AI时代,借助工具,即使不会编程,也能快速制作出一款产品。 一、需求分析 其实这个需求主要来源于自己,平时看公众号内容比较多,但是随着订阅数量的增多,阅读公众号变成了一股无形的压力,总感觉不点进去看看,就会错过点什么。如果能有一款产品,可以自动总结订阅公众号的内容,看完总结再决定是否打开文章,应该可以节省不少的时间。 当然,如果能再聚合其他信息来源,比如:播客、微博、Twitter、星球、微信群的内容,定时汇总再推送到我的微信上,那就更爽了! 之前都是使用RSS来统一管理这些信息来源,但是缺少了一个总结的功能,总觉得差点意思。所以考虑用Coze做一个Bot,先从公众号内容做起,把核心流程跑通。 二、工作流拆解 工作流主要提供的价值是:把重复的工作固化下来,提升工作效率。比如你原来想提取一条抖音文案,需要先复制抖音链接,打开微信搜索小程序,粘贴链接、等待转文字,复制文字,粘贴到文档中,这中间可能还得让你看条广告。每提取一条文案,都得重复这个过程。重复、流程化,这种工作就特别适合使用工作流解决。 那从你复制抖音链接开始,到粘贴文案到文档中,这个过程,其实就是工作流的主要路径。跟“把大象装冰箱,总共分几步”没啥本质区别。 1、路径拆解 使用相同的方法,我们发现“自动总结公众号内容,定时推送到微信”,实际核心环节就三个: 1、抓取公众号的内容 2、对内容进行总结 3、汇总后定时推送到微信 2、元素拆解 我们再来看看这个流程中每一步都涉及到哪些核心要素: 1、抓取公众号内容: 首先先在平台搜搜有没有现成的插件,Coze平台确实有一些读取公众号内容的插件,但是都已经荒废了,用不了了。 所以现在要么写爬虫自己抓(我不会啊……),要么就看看有没有现成的服务,可以通过API的方式直接调用。这时候想起来原来折腾RSS订阅的时候,有个平台叫「瓦斯阅读」,可以稳定的抓取公众号的内容,用这个先试试,成功获取刘润公众号的内容! 所以现在要么写爬虫自己抓(我不会啊……),要么就看看有没有现成的服务,可以通过API的方式直接调用。这时候想起来原来折腾RSS订阅的时候,有个平台叫「瓦斯阅读」,可以稳定的抓取公众号的内容,用这个先试试,成功获取刘润公众号的内容! 但是马上新的问题就出现了,平台上公众号也太不全了吧,我搜了10个,有7个都没有(晕倒),比如搜索Coze的官方账号就查无此人。 看来还得找找其他的方案,功夫不负有心人,在GitHub上有个项目叫做WeWe RSS。这个工具可以通过微信读书的方式,订阅公众号,感觉可行!看着也挺优雅! 2、公众号内容总结: 这个主要就是依靠大模型的能力了,总结任务应该算是大模型最擅长的任务之一了吧,字节的豆包大模型应该就可以胜任。这步主要涉及一个批量化操作:批量对抓取到的公众号内容进行总结,可以使用「批处理」功能搞定,后边会有详细介绍。 3、定时推送到微信: 这里头有两个点:一个是定时,这个Coze平台的触发器可以实现;另一个是推送到微信,Coze平台没有这类的插件,看来还得找第三方API的方案解决。 之前接触过「server酱」,可以通过服务号的模板消息,将自定义的内容推送到微信上,作为MVP产品来说,这个免费服务应该也够用了。 秋豆麻袋,我知道你想说啥:“啊,这些工具我没用过啊,我都不知道有这些工具,那怎么可能在用的时候想起来呢?!”其实这个也很简单,现在AI搜索真的是太好用了,你只需要这么简简单单的一搜,就会有答案了。 有些时候,做一件事没有难不难,只有想不想。 好了,那到目前为止,我们这个工作流的路径已经拆解的比较清晰了,每个环节也都有解决方案,理论上这个项目可行了,那么下边搭建工作流就简单了。 三、搭建工作流 1、工作流全貌 双击画板可以查看高清大图,这个图很重要,可以结合后边的具体细节,反复查看。 双击画板可以查看高清大图,这个图很重要,可以结合后边的具体细节,反复查看。 2、开始节点 需要用户在开始节点输入server酱的sendkey和rss列表: • key:server酱的sendkey,获取方式参看文档「相关资源」部分 • rss list:rss列表,没有的可以先白嫖我的,复制这两条测试数据试试 3、分割RSS列表 使用「文本处理」节点,处理一下输入的rss列表,处理为一行一个,输出为数组,方便后边节点批处理。 4、读取RSS内容 • 读取用户输入的rss列表中的内容,在插件中找到链接读取节点 • 配置节点: ◦ 选择批处理 ◦ 批处理输入参数选择「分割rss列表」的output ◦ 下方输入参数中url选择当前节点中的item1 ◦ 选择批处理 ◦ 批处理输入参数选择「分割rss列表」的output ◦ 下方输入参数中url选择当前节点中的item1 5、汇总RSS中所有文章内容 上一步中每个rss订阅源(每个公众号)都会输出最近发过的文章内容,包括:作者信息、文章标题、文章链接,这一步主要是承接上一步所有文章内容,格式化输出。 一个正常的公众号每天推送文章数量不会超过3篇,所以这里代码只抓取了每个公众号最近三篇的内容,提升整体工作流的运行效率。 • 使用「代码」节点,左侧节点选择代码 • 输入项选择上一步中输出的outputList • 点击「在IDE中编辑」,选择「Python」,输入如下代码: • 配置输出项:类型选择「Array<Object 」,点击右边的小加号,分别输出title、url、author 6、循环查询文章是否推送过 • 左侧工具栏选择「循环」节点 • 这个节点主要由两部分组成:循环节点和循环体,整体逻辑是从循环节点设置循环次数和循环项,如果输入的是数组,循环次数就是数组的长度,类似于for语句,每次循环项就是数组中的值。 • 说人话就是会根据你输入的内容自动判断循环几次,来使用循环体里的逻辑处理每一项。 • 我们这里希望循环处理的逻辑是,对上一步中的每一篇内容在数据库中进行查询,如果查到了,证明之前推送过,本次工作流就不处理了,避免重复推送。如果没有查到,证明是一篇新的文章,继续工作流后边的内容。 • 设置循环的输入项,选择上一步中输出的所有文章内容 • 设置循环体,下边对循环体中的每一节点进行讲解 • 循环体内部——数据库节点 ◦ 数据库节点:用来在数据库中查询是否已经推送过该篇文章,输入项为上一步中的url和开始节点的key(也就是server酱的sendkey,这里我们重命名为suid了) ◦ 因为这个Bot最开始设计的时候,就考虑到可能有多个用户会同时使用这个Bot设置公众号推送内容,每个用户设置的公众号内容可能不一样,每个用户的要推送的微信号肯定也不一样,所以这里使用server酱的sendkey作为了用户的唯一标识,重命名为了suid ◦ 所以这里查询数据库需要两个值,文章url和用户的suid,来判断这名用户的这篇文章是否推送过 ◦ SQL语句是AI写的,直接复制就成 Code block Bash Copy SELECT CONCAT(suid, '@', url) AS combined output FROM push record WHERE suid = '{{suid}}' AND url = '{{url}}' ◦ 记得设置一下输出项「combined output」 ◦ 这步是必须项:Coze平台的逻辑是数据库是与bot绑定的,所有如果要使用数据库功能,需要在bot中设置一个相同名称和数据结构的数据库进行绑定,具体设置方法参见「相关资源」 ◦ 数据库节点:用来在数据库中查询是否已经推送过该篇文章,输入项为上一步中的url和开始节点的key(也就是server酱的sendkey,这里我们重命名为suid了) ◦ 因为这个Bot最开始设计的时候,就考虑到可能有多个用户会同时使用这个Bot设置公众号推送内容,每个用户设置的公众号内容可能不一样,每个用户的要推送的微信号肯定也不一样,所以这里使用server酱的sendkey作为了用户的唯一标识,重命名为了suid ◦ 所以这里查询数据库需要两个值,文章url和用户的suid,来判断这名用户的这篇文章是否推送过 ◦ SQL语句是AI写的,直接复制就成 ◦ 记得设置一下输出项「combined output」 ◦ 这步是必须项:Coze平台的逻辑是数据库是与bot绑定的,所有如果要使用数据库功能,需要在bot中设置一个相同名称和数据结构的数据库进行绑定,具体设置方法参见「相关资源」 • 循环体内容——选择器 ◦ 判断数据库查询的内容是否为空,如果是空,证明数据库中没有查到,这篇文章没有给这名用户推送过,使用「文本处理」节点,拼接这篇文章的完整信息,保证信息一致性 ◦ string1:开始节点的key,也就是server酱的sendkey,用来识别用户 ◦ string2:循环节点item值中的url ◦ string3:循环节点item值中的title ◦ string4:循环节点item值中的author ◦ 拼接为如下格式,方便输出,并让后边节点使用 Code block Bash Copy {{String1}}@{{String2}}@{{String3}}@{{String4}} ◦ 右下方的「文本处理」节点没有实际作用,输入项随便写,主要是为了处理数据库查询到已经给这名用户推送过这篇文章情况下的占位项,否则工作流会报错 ◦ 判断数据库查询的内容是否为空,如果是空,证明数据库中没有查到,这篇文章没有给这名用户推送过,使用「文本处理」节点,拼接这篇文章的完整信息,保证信息一致性 ◦ string1:开始节点的key,也就是server酱的sendkey,用来识别用户 ◦ string2:循环节点item值中的url ◦ string3:循环节点item值中的title ◦ string4:循环节点item值中的author ◦ 拼接为如下格式,方便输出,并让后边节点使用 ◦ 右下方的「文本处理」节点没有实际作用,输入项随便写,主要是为了处理数据库查询到已经给这名用户推送过这篇文章情况下的占位项,否则工作流会报错 • 设置循环节点输出项,选择循环体中「输出新文章内容」拼接后的字符串 7、判断是否有新内容未推送 回到工作流的主流程,判断上一步循环节点输出是否为空,如果为空,证明rss列表中的所有文章都已经给这名用户推送过,直接结束。也就是下图标红的连线直接连接「结束」节点。 如果不为空,证明还有新的文章未推送过,再进行后边的逻辑处理。 8、格式化去重后的文章内容 由于第6步循环中输出的内容为文本类型,所以这步我们需要使用「代码」节点对这部分内容进行处理,输出为JSON格式,方便后边节点调用。 • 输入项为:循环节点的输出项output • 点击「在IDE中编辑」,选择「Python」,输入如下代码: • 设置输出项,按照下图格式设置输出项 9、批量读取新文章的内容 使用「链接读取」节点,读取所有未推送的内容。 • 配置节点: ◦ 选择批处理 ◦ 批处理输入参数选择上一步代码处理过的「去重后文章链接」的「content urls」 ◦ 下方输入参数中url选择当前节点中的item1 ◦ 选择批处理 ◦ 批处理输入参数选择上一步代码处理过的「去重后文章链接」的「content urls」 ◦ 下方输入参数中url选择当前节点中的item1 10、大模型批量总结文章内容 使用大模型节点,批量总结文章内容 • 模型选择:默认的豆包32k应该就够用,怕上下文长度不够的话,可以选择更大的模型,比如kimi128k • 配置参数: ◦ 选择批处理 ◦ 批处理输入参数有两个:第9步中读取的文章内容正文、第8步代码处理后的url链接和标题 ◦ 下方的输入参数,有四个,如图所示,都选择该大模型节点输出的内容:content正文、title标题、url文章链接、author作者 ◦ 提示词输入如下内容,将这四部分内容一起送给大模型进行总结,最终拼接成markdown格式输出: Code block Bash Copy ◦ 选择批处理 ◦ 批处理输入参数有两个:第9步中读取的文章内容正文、第8步代码处理后的url链接和标题 ◦ 下方的输入参数,有四个,如图所示,都选择该大模型节点输出的内容:content正文、title标题、url文章链接、author作者 ◦ 提示词输入如下内容,将这四部分内容一起送给大模型进行总结,最终拼接成markdown格式输出: 11、汇总格式化最终输出内容 使用代码节点,将大模型输出的内容进行最终输出的格式化。 • 参数配置: ◦ 输入:选择上一步输出的outputList ◦ 点击「在IDE中编辑」,选择『Python』,输入如下代码: Code block Bash Copy import re import json async def main(args: Args) Output: params = args.params input data = params['input'] result = [] ◦ 配置一下输出项,输出为result ◦ 输入:选择上一步输出的outputList ◦ 点击「在IDE中编辑」,选择『Python』,输入如下代码: ◦ 配置一下输出项,输出为result 12、公众号总结推送到微信 这块的节点是根据Server酱的API文档,自己写的插件,关于自建插件这个环节,请参看「相关资料」,输出配置可以参考下发截图。 主要实现功能就是把上一步格式化好的内容,推送到用户的微信上。 • title:汇总公众号总结页面的标题,参数值选择「输入」,起个名字 • desp:页面主体内容,选择上一步最终输出内容 • key:引用开始节点的key 13、循环将推送内容插入数据库 将本轮推送给用户的内容,写入数据库,下次从rss列表中如果再抓取到相同内容,直接跳过,避免重复推送。 • 还是使用「循环」节点 • 输入项为第8步代码输出的content urls,这里有完整的文章内容信息 • 循环体设置:使用「数据库」节点,输入项为本循环节点item中的url和suid,SQL也是用AI生成的: • 设置循环节点的输出项:output,参数随便选,后边也用不到了 • 试运行结果: 14、结束节点 选择第11步输出的内容,可以在bot中也查看到推送的内容 15、试运行 工作流终于搭建完了,点击右上角的试运行,选择绑定的bot,输入数据测试。 • Key:输入你的server酱的sendkey • rss list:如果你没有现成的数据,可以白嫖我这个,复制下方这两条数据测试使用 ◦ 如果你工作流设置的没有问题,你会在工作流中看到这样的结果 ◦ 同时,微信上也会收到这条推送,可以查看总结内容,点击链接可以查看公众号原文 ◦ 点击右上角发布。 16、设置Bot 终于终于,最后一步了,在Bot中绑定工作流,设置定时任务,然后发布到飞书渠道。 • 1、人设和回复逻辑:由于咱们这个bot主要依托于工作流,所以设置提示词,直接调用工作流 ◦ sum weixin 2 2替换为你工作流的名称 ◦ sum weixin 2 2替换为你工作流的名称 • 2、工作流:添加刚刚创建的工作流 • 3、设置触发器: ◦ 选择「定时触发」,选择触发的时间,比如希望每天18点收到微信推送,就选择18点 ◦ 任务执行:选择工作流,输入key和rss list,这里的输入参数就是工作流中开始节点的输入参数,key为Server酱的sendkey,rss list可以使用上边我提供的测试数据 ◦ 触发器实现的效果就是,在设定的时间点,根据输入项的内容,执行工作流。由于工作流中我们设置了推送到微信,所以我们在这个时刻就可以在微信里收到推送的总结内容了。 ◦ 选择「定时触发」,选择触发的时间,比如希望每天18点收到微信推送,就选择18点 ◦ 任务执行:选择工作流,输入key和rss list,这里的输入参数就是工作流中开始节点的输入参数,key为Server酱的sendkey,rss list可以使用上边我提供的测试数据 ◦ 触发器实现的效果就是,在设定的时间点,根据输入项的内容,执行工作流。由于工作流中我们设置了推送到微信,所以我们在这个时刻就可以在微信里收到推送的总结内容了。 • 可以同时设置多个触发器,最多设置10个。可以推送给10个不同的人,或者分10个时间段给自己推送不同的内容。 17、发布到飞书 点击右上角「发布」,注意渠道要选择飞书,因为目前Coze平台触发器只对飞书渠道生效。