前言
不知道大家刷B站视频有没有注意到评论区下面会有人@课代表
,随后就会有一个B站的用户回复该视频的总结内容。
没有错!我们今天就要复刻这个功能,不过是在掘金的评论区,通过回复指定内容来召唤BOT对这篇文章进行总结!相信你看完本文后也可以做出自己想要的机器人,不仅仅是服务于掘金社区,你可以做的更好更多!
想必大家就已经迫不及待的要看看成果了!
成果预览
这是已经用豆包MarsCode[1]开发的成品,由于掘金尚不支持@功能,目前只能由用户在BOT的文章下评论文章地址,再由BOT到链接文章下回复!不知道掘金社区能不能加一个@功能,丰富社区交流!😽
当你在BOT的文章下评论其他文章链接时,BOT就会阅读该文内容,并且在对应文章下评论总结内容!
你可以试着给本文评论文章链接,等待你的评论过审后就可以看到BOT给你自动评论的文章总结啦!
让我们一起看看这个省流大师是怎么完成的!
本文转载于掘金平台,作者是:萌新杰少
欢迎点击文章底部【阅读原文】进行注册和体验。
环境准备
特别的:如果你已经知道怎么去把
豆包MarsCode
装到本地IDE,那么就不需要阅读本节!跳到下一节直接去看开发过程!
这里我们将采用豆包MarsCode
的云端平台进行开发,相信我,你会喜欢上用这个云平台的,特别是你希望快速的切换开发环境与本机存储吃紧的情况下,这很有用!
注册平台
应该大部分用户还没有注册豆包,现在通过sourl.cn/vKjHKF[2] 即可注册豆包MarsCode!
注册应该不用多说什么了,这里我们直接点击稀土掘金账户登录!
开发环境
豆包MarsCode
本身是支持在云平台 和 本地IDE(vscode、jetbrains全家桶) 使用的,这里我们主要说下本地是怎么做,因为云平台几乎不需要你做什么!
登录后我们点击首页
和许多AI一样,豆包也提供了IDE插件,你可以无差别的平移到豆包MarsCode
,你也可以搜索这个名字的插件,同样可以安装。
剩下的操作插件提示已经给到位了,我们就不再多说啦!
明确需求
先别着急,我上学期和老师去了一家AI文创公司,他们公司有一部分文创业务就使用AI完成。在演示他们使用AI文创之前,他这么说:
在这个AI时代下,不是问他能做什么,而最重要的是你想要什么,需要明确自己的想法。
我觉得说法很对,因此想要发挥豆包的完全实力就需要提问者发问合适!
我们需要实现一个掘金机器人,有人在机器人的文章下评论其他文章链接,BOT就需要阅读这篇文章,总结内容,再将总结的内容发到这篇文章的评论区。
OK,实现上面的功能,我们需要有
评论信息接口 评论接口 阅读评论接口 豆包AI对话接口
我们的任务有:
轮询评论信息接口 判断评论是否未读 过滤评论中的掘金文章链接 调用AI总结文章内容 调用评论接口评论内容 调用阅读评论接口
接下来我们只需要口述这些任务即可!这里我们不讲解API抓获过程了,有需要的大家可以自己去F12看看或者看看我给AI提问的接口。
创建项目
根据我们的预想这个机器人是个后台轮询服务,那选JS或者Python再好不过了,由于我平时接触JS多一些那么我们这里就选Node项目。如果你是本地开发那么就初始化一个本地项目即可,不过云平台实在是太方便了,很适合这种脚本项目,我们就用云平台吧!
创建后可以看到Node环境已经准备好啦,甚至我们可以用控制台安装外部依赖,你可以做你任何想要的!
这个环境配额可太棒了!!!
轮询检测评论信息
让我们来先开始第一个任务!我们希望网络请求是axios来进行的。
接下来我们让他轮询评论列表接口,让我们试试看,利用setTimeout来进行轮询
现在豆包已经给出了答案,让我们删除已经有代码,把新代码插入进来
哦!让我们看看这个代码,哦,很好,他按照要求完成了我们的第一个需求。
现在我们希望它加一些注解,试试看它的上下文补全,我们在请求上方加个注解 // 注解
,豆包会自己联想上下文补全我们的注解。
接下来你可以告诉豆包优化掉不需要的代码,比如刚刚的http服务我们就不需要,可以删除,这里就不贴图了!
判断是否未读
我们用鼠标选中这块代码,再向豆包提问,这样豆包会基于这段代码进行联想,现在我们把生成的代码粘贴回来,点击插入到光标处!这很方便。
这样我们就获得了未处理的信息
过滤评论中的掘金文章链接
现在我们试着让豆包再进一步处理,用正则表达式来获取评论的文章ID。
现在我们就有了过滤文章ID的能力,这很有用
调用AI总结文章内容
这里我们需要配合其他API使用,不知道大家记不记得之前的扣子Coze,它提供了豆包API的能力扣子 - 开发指南 (coze.cn)[3],详细的内容大家可以阅读开发文档,下面我们看看扣子BOT的配置。
扣子API创建
这里我们需要给BOT一个设定和读取网页内容的插件,接下来发布BOT后就可以利用API调用BOT对话了!
调用API总结文章
我们给豆包来个有挑战性的任务,这是系列任务的聚合,现在来看,豆包可以完成,不过也有一些瑕疵,比如它可能忘记了上下文,重新给我写了一个函数,但是实际上我们只是需要一段代码。
不过我们可以自己手动复制需要的部分代码!
现在我们已经完成了调用AI总结文章的代码!
调用评论接口评论内容
现在,我们只需要将获取到的内容评论出去即可。
现在我们已经成功调用了评论的接口!
调用阅读未读信息
最后一个任务也是复杂的,它不是在我们之前的代码后面加,而是必须要到循环外面去写这个逻辑。
那就是阅读未处理内容,该接口传入的ID为最后一条未处理信息ID,也就是最早的一条,为此我们必须要在遍历外面写这个网络请求,看看豆包能否完成!
显然它做到了!
豆包输出了整个项目的代码,说明它可能理解了这是最后的任务,接下来它在消息遍历后进行了网络请求,阅读了所有未处理信息,现在我们成功做到了豆包AI开发整个项目,我们来试试看运行。
扩展体验
前面我们给豆包了许多提示词,我不是说网络请求的接口和提交参数这些,而是告诉他我们需要内容在Json里对应的字段,这样豆包确实很好的理解了,不过我希望豆包做的更好!
关键数据筛选
现在我们试试看,给他一个修改当前程序的需求,并且给它较多的数据信息,让豆包自己决定如何筛选内容,我们只是提供给它可选信息。
下面我们希望评论时带上评论者的信息,比如评论者的用户名。
我们将整个Json丢给他,就说我们需要发送总结时带上用户名,豆包也巧妙的明白的我们的意思。
可以看到给出的代码里已经包含了用户名的信息了。
很多时候我们不希望自己观察Json信息,那么交给AI也是一个相当不错的选择。
代码优化
光是这样还不够,我希望豆包可以重构我的代码,提高复用和维护,这需要豆包了解全局业务和代码结构,让我们试试看!
哦天哪,这就是我想要的,你还可以让它帮你加上注释!
成果展示
这里我们先填写好BOT机器人的掘金账户Cookie!
然后我们点击这里运行即可让node服务跑起来!
现在我们用另一个账户给BOT的文章下评论一个掘金链接试试看!掘金的评论是带审核的哦,大概是为了防止广告,评论后稍等才会看到,API接口获得也是一样!
成品体验
现在给本文章发送某篇文章链接,等待评论过审核,即可看到BOT评论的文章总结啦!
当评论传出后,我们可以看到输出日志,成功完成评论!
然后看看对应的文章,可以看到已经成功评论啦!
项目导出
为了让服务24小时运行,我们这里把项目进行导出!看下图,我们通过另存为的方式将项目导出!
emm说实话导出文件的位置还是有一些深。
最后我们点击显示本地即可完成啦,现在你只需要将这个node服务跑到你的服务器上就ok,这里就不演示了。
还能做什么?
就单独对于我们这个业务来说,有时候豆包总结是简单一句话,我们可以在豆包BOT的设定中要求必须分条作答。
对于掘金而言,你可以做评论自动回复、关注后自动回复等功能,相当于一个额外的自动客服!
面向其他平台,可见如果你有了充分的准备,即使你不会这个平台的语言也没关系,我们只需要向豆包描述需求即可,我们可以很快的将脚本迁移到其他平台,或者开发其他平台的类似功能。
文末与感想
我是一名学生,在校期间我许多东西都在使用AI了,最简单的就是向AI查询代码问题和编写文稿了,这类AI的出现很大的降低了我的学习成本,事实上大部分时候我只知道这里可能需要什么,但是我不知道具体怎么做,那这个时候AI就能帮到我了。说这个就是希望大家不要无视AI的存在,我们必须要接纳它,让它成为我们的工具。
但是我却往往发现把AI落地的往往是一些非技术同学,他们利用AI生成视频、音频、配音,然后做一些自媒体靠流量产生收益,而我们技术的同学许多时候只是使用它做一些疑问解答和文档编写,真的很难不羡慕,那么对我们技术的同学来说也要想想如何将AI技术变现,产生商业价值。
回到豆包,从上面的体验来说我们已经可以用它做不少东西了,另一方面是它是国内的模型我们使用也会发布很多。不过我觉得还有进展空间,特别是对意图的理解上,这段时间使用下来也会发现豆包有时候无法准确的理解我是的内容,不过值得一提的是,豆包的遗忘好像不是那么明显,上面例子我们发现说了那么多它还是记得之前的东西,这个可能和豆包的引用文件内容有关系,这个我觉得还挺好的。
总之,希望大家看完后可以动手试试看这个,引入豆包到日常开发里也能提高不少效率,相信你能发现更多有意思的东西!
https://link.juejin.cn/?target=https%3A%2F%2Fwww.marscode.cn%2Fhome%3Futm_source%3Dtiyanguan%26utm_medium%3Djuejin: https://link.juejin.cn/?target=https%3A%2F%2Fwww.marscode.cn%2Fhome%3Futm_source%3Dtiyanguan%26utm_medium%3Djuejin
[2]https://link.juejin.cn/?target=https%3A%2F%2Fwww.marscode.cn%2Fhome%3Futm_source%3Dtiyanguan%26utm_medium%3Djuejin: https://link.juejin.cn/?target=https%3A%2F%2Fwww.marscode.cn%2Fhome%3Futm_source%3Dtiyanguan%26utm_medium%3Djuejin
[3]https://www.coze.cn/docs/developer_guides/coze_api_overview: https://link.juejin.cn/?target=https%3A%2F%2Fwww.coze.cn%2Fdocs%2Fdeveloper_guides%2Fcoze_api_overview