Coze 工作流获取 Tweets 详解 | 「智图派」
Coze是一个可以不用代码来搭建AI聊天机器人的平台。我在这期视频当中已经详细地讲解了Coze的各种功能,以及如何用到GPT-4 Turbo的模型。感兴趣的朋友可以回看一下。
自从 Twitter 被马斯克买了之后,如果你想从 Twitter 网站的外面来获取推文信息,也就是用 Twitter API,就需要每个月充值100美元了。但是 Coze 却很大方地让你可以免费地用部分 Twitter API 的功能了。今天我就先给大家演示一个可以批量获取多个 Twitter 作者的推文的工作流,把这个工作流嵌入到你的 AI 聊天机器人里面。比如我这里加了两个 Twitter 账号,我的和马斯克的,这样就可以一次性地获取到我们两个人的推文了。
今天我首先给大家演示一下在 Coze 上可以用到的 Twitter API 的功能,然后再演示一下批量获取推文的工作流,最后我们再聊一聊 Coze 的局限性。
Plugins 的基本功能
getUsers
首先第一个 "get users",获得指定用户的信息,实际上也就是获得一个用户的 profile。我们就来试一下,比如让它来获取我的推文的信息。这边给的提示为了避免它混淆,我就明确指定了这个方法的名称,然后告诉它获取 axtonliu,也就是我的推特号的信息。好,这边我们就可以看到它很快速地得到了我的一些信息,我的名字、ID、粉丝人数、关注的人数等等,包括我的头像链接,还有我的描述、简介。
searchTweet
接下来 "search" 一个推文,那么它有三个参数,分别是 count,就是你要返回多少个推文;然后查询字符串,这个是一个必须要的参数,就是你要查询的关键词是什么;author 就是作者,也就是推文的推主。查询结果没错,这些都是我的推文,链接也是正确的。
那创建推文呢,这个就不用演示了,因为这本身就是一个免费给大家提供的功能,不会存在什么问题。就算有问题,我们可以通过其他各种办法来用它,包括使用 Make 工作流。
获取推文串
还有获取一个推文线程以及获取一个用户的推文,这两个相对来说应该是更有用的一些内容。
我们先看一下 "get twitter thread" 的这个功能,获取一个推特线程。获取一个推文线程呢,它的参数是要 ID。这个 ID 哪来的呢?一个推文线程它的 ID ,实际上就是在它的 URL 里面。
请使用 get twitter thread 获取 ID 为某某的推文。
没错,整个线程总结的内容是正确的,很好。这个功能也是一个比较有用的功能,相当于你可以获取一个推主它整个推文串的主要内容。那这个功能就可以帮助大家去创建一个你自己的 AI 机器人,从推特上面去抓取一些你所关心的信息,你可以把这个信息做成你的日报,或者分享到你的群里面都是有用的。
批量获取推文的工作流
刚才我们看到,我们可以用这些插件来使用一些推特 API 的付费功能,比如获取用户信息、查找推文,以及获取推文的内容等等。在跟 Bot 对话的过程当中使用这些功能非常简单方便。但是如果我们需要去应对一些更复杂的场景,我们可能就需要去调用多个功能,或者把一个功能多次地调用。比如我接下来要给大家演示的一个场景,就是假设我要从我关心的多个推主那边去获得他们的最新推文,然后来总结出当前跟 AI 最相关的一些内容,以方便我获取信息。那我就需要去针对每一个用户,我都要调用一遍。那这实际上就是一个循环的过程,我们就需要用到工作流。
工作流它的目的就是来实现一些更复杂的任务。我要给大家演示的这个工作流,就是希望它能够一次性地获取到我、Elon Musk 的推文。只要把你所关心的作者的信息都加到它的列表里面就可以了。那首先呢,我要把我关心的这些推主,他们的账号名称是什么,告诉这个机器人。可以有很多办法做到。我在这边用的比较简单的方法,就是定义一个变量叫 authors,就是作者。然后这个 authors 里面,我就给了它,这是我的推特账号,还有 Elon Musk 的,我们两个人的账号就可以了,做个演示。
然后我们再进入到这个工作流里面,看看这个工作流它在干什么。
这就是我的整个工作流,工作流当中的每一个方块,实际上就是它完成的每一项功能,可以叫做模块。在 Coze 里面,它就叫做节点。
工作流节点概述
比如 Coze 里面所支持的这些节点,首先就有 basic 的节点,基本的节点。这就包括了大语言模型,然后 code 你可以写代码,完成一些客制化的功能。还有知识库、condition 条件,你可以设定一些条件,根据不同的条件去跳转到不同的功能场景。变量就是你机器人当中的变量可以进行交互。数据库也是一样。
除了这些基本的模块之外,它还可以用插件,同样也可以用其他的工作流来当做你的工作流当中的节点。既然我们的目的是为了查找推文,所以我们就要用到刚才我们前面演示过的获取推文的那个插件,也就是 X 那个插件。最下面对我们要用到 "search tweet" 这个模块,只要点击加号加进来就可以了。这就是今天的主角。
另外一个关键的模块呢,就是 variable。Variable 是 code 里面的一个基础模块,它的目的就是从你的 AI bot 里面,就是你的机器人里面,把你定义的变量的值取过来。我刚才在 AI bot 里面定义的变量,就是我关心的那些推文作者,也就是我、Elon Musk,还有 Andrew Ng,这三个人作为例子。所以这个模块的功能就是要把我定义的那三个人的账号拿过来,交给下一个工作流去用。所以很简单,我这边输入一个 key,authors 就是我在 bot 里面定义的这个变量的名称,就可以了。
它的输出,你给它起个名字就行。要看你的节点配置的正常不正常呢,你只需要点击右上角的播放按钮,就可以测试你的这个节点。运行成功就是绿色的。
这时候我们就可以看一下它运行的结果是什么。它的输出就已经取出了我定义的这三个人,这就说明我这个节点的配置是正确的。
Coze 的工作流默认会给你两个节点,一个是开始节点,你可以在这边去初始化一些你需要在整个工作流当中用到的一些数据。比如我要查询推特,我可能就需要一个关键词,我就可以在这边定义一个叫 query string 的一个变量,用它来存我们要查询的关键词就可以了。同样,最后它还会默认给你加一个结束的一个节点,结束节点的主要目的就是把你的结果输出,你就可以在你的机器人里头用它,或者你也可以在其他的工作流里面去调用它。
查询推文节点
此工作流主要节点就是查询推文。很多节点它都有两种运行模式,一种就是 single time,就是单次运行,还有就是批处理。
我们首先看一下它的单次运行。它需要三个变量,首先就是它的 query string。我们就让它用我们最开始的 start 里面定义的查询字符串就可以了。这边的作者和返回多少条结果都是可以定义的。我们可以先测试一下它单次运行的结果。那作者,比如说 axtonliu。运行一下,它会让你提供查询字符串,因为这个是一个变量,你没有在这边指定,所以你测试的时候需要给它提供一个,比如我们就 AI。然后运行,我们同样可以看一下它的结果。
那这就是它的查询出来的结果,有没有数据呢?是有数据的,查询出来了13个推文。我们就可以看到这个推文的一些信息,包括推文的内容,说明这个节点工作是正常的。
批处理模式
但是因为我们需要去同时要查三个人多个人的推文,所以我们肯定不能用单次执行,我们就要用到它的批处理模式。但是它的批处理模式就比较尴尬了,因为我们在它的文档当中没有发现有关批处理模式该怎么去配置的说明。
我们可以看一下 Coze 的这个文档,它当中对工作流怎么使用的一个简介。文档基本上都包含了一个工作流的基础操作,而且这边它还很贴心地提供了几个最佳实践的工作流的例子。比如识别用户意图这个工作流,这应该是这个例子当中最复杂的一个工作流。它的目的就是用大语言模型来根据用户的输入,去判断你的用户到底是想干什么,是想去搜索新闻信息呢,还是想去搜索天气的信息。基本上它的这个工作流的例子,就把它前面的工作流的一些例子都包含在一起了。所以如果你对 Coze 的工作流感兴趣,我建议你把它的这个工作流的例子好好地研究一下,可以方便你快速地了解工作流的工作过程。但是遗憾的就是在这个使用工作流的这个文档当中,只有单次的例子,没有批处理的例子。
回到我们的工作流。因为我们是要批处理嘛,所以我这边的参数呢,就需要用到前边某块的输出。比如它的查询关键词呢,就是 query string,这个我们在开始的节点上定义的查询字符串。那这个作者呢,就是那三个人,我、Elon Musk,还有 Andrew。因为批处理的过程实际上就是一个人一个人的处理,因此作者呢,实际上我用到的是它的批处理 Item1 这个参数,它并不是我前面的那个作者的变量,这点是需要注意的。至于然后要返回多少个信息呢,这边我们就随便定义一个行了,因为它不重要。
那么,item1 如何定义呢?