最近 AI 的热度居高不下,Sora 横空出世又在 AI 话题上掀起了一个新的高潮。虽然每天还是会时不时的用一些平台的大模型工具帮助自己打开思路、提高工作效率,但是像 Coze 这样的 AI 应用一站式平台,我之前确实没使用过。
认知的转变
在认识 Coze 之前,我们站在一个大模型萌新用户的视角回顾下对我们大模型的认知。
大模型是经过大量的数据和计算训练出来的深度学习模型,它擅长的是根据用户的提示词给出回答结果,这个结果可能是非常专业的,也可能会与我们的预期结果相去甚远。
除了一些日常的知识问答、答疑解惑,我们可能会想用大模型达成一些稍微复杂的目标,比如期望大模型能够帮我们完成一些日常工作。
假设我是掘金的运营,搞了一个运营活动,让作者们写文章参加活动,但是活动结束时掘友们提交的文章数量可能成千上万,要选出最符合活动要求的文章也是非常费劲的,那么有没有可能让大模型帮我们完成这件事情呢?
站在人的角度思考,我们这项工作的思路是这样的:
- 基于活动时间范围、文章关联的话题或者文章的首尾内容特征,筛选出参加活动的文章,这个功能在运营后台肯定是有的。
- 逐个审核,选出一批大概符合要求的文章,淘汰掉与活动要求相去甚远的文章。
- 经过多轮审核筛选和淘汰,得到结果。
- 复审结果,公示。
但是我们如果把这个思路作为提示词告诉大模型,它能给出我们想要的结果吗?
很显然,大概率不能。大模型的泛化能力很强,结果很难预测。
另外,这项工作还是比较复杂的,步骤很多,中间还涉及实时数据的获取和处理,这可能不是大模型擅长的事情。
我还记得最开始使用 GPT 的时候,我问过今天的天气情况,今天的热点新闻之类的问题,GPT 都不能给出答案,它会回复"抱歉,我只是一个语言模型,无法获取最新的天气情况"之类的话术。即便我告诉 GPT,你可以调用这个接口去获取天气或者新闻,它也回复做不到,至少目前做不到。
所以上述运营工作中获取数据这一步,不应该由大模型来负责。我们应该拆解上述工作,只把评估文章的工作交给大模型,让大模型做自己擅长的事情。
基于此,相比于日常使用中随便问大模型几句话,我们得到了运用大模型的一个新的思路,是不是可以把工作流和大模型结合起来呢?把一个复杂的工作分解成多个步骤节点,大模型是工作流中的一个节点,可以接受其他节点处理的结果作为输入,分析并输出我们要的结果。这也是目前 Coze 这类 AI 应用平台的重要功能之一。
Coze 实战
掘金的运营是怎么分析一个活动的数据并得到结果的,其实我也不是很清楚,所以我们换个掘友们熟悉的概念来实战 Coze,怎么让 Coze Bot 告诉我们今天掘金热榜文章中谁的标题党嫌疑最大。
我发布了一个叫做"前端砖家"的 AI Bot,大概的效果是这样的。
正如标题所言,这完全是纯娱乐的,不必认真。
我们慢慢来研究下这个 AI Bot 是怎么做出来的。
首先,我们注册 Coze 后,系统会引导我们创建一个 Bot,即便我们什么都不做,它也有基本的大模型能力。
但是你要问它今天掘金热榜里谁最标题党,它显然是回答不了的。因为这个问题跟上文中说的运营工作类似,也是一个复杂的工作流。
那么我们开始尝试用工作流完成这件事。
新建一个工作流之后,工作流中就只有开始和结束两个节点,对于要分析出标题党这个工作,我也是一脸懵逼。
不过看到左侧面板,我决定先拉个大模型节点出来看看。我给出的提示词是"掘金热榜文章中,哪一篇标题党嫌疑最大",试运行的结果看着挺像回事的...
运行结果:
标题党是指在网络上故意使用夸张、吸引眼球的标题来吸引读者点击,但内容往往与标题不符或质量不高的行为。在掘金热榜文章中,标题党嫌疑最大的一篇文章是《从 0 到 1 实现高并发的秒杀系统(方案+代码)》。 这篇文章的标题使用了"从 0 到 1"、"高并发"、"秒杀系统"等吸引眼球的词汇,但文章内容仅仅是介绍了一些秒杀系统的基本概念和实现方案,并没有提供具体的代码实现。因此,这篇文章的标题存在一定的标题党嫌疑。 需要注意的是,标题党的行为不仅会影响读者的阅读体验,也会对文章的质量和可信度造成负面影响。因此,建议作者在撰写文章时,不要过分追求标题的夸张和吸引眼球,而应该注重内容的质量和价值。
实际上说到的文章在掘金热榜中根本不存在,也就是说它是杜撰的。掘友们应该都被 GPT 骗过吧?
所以我们应该给大模型提供数据支持,给它真实的数据,再让它判断。
我们找到左侧的插件Tab,发现正好有掘金热榜的插件。
这个插件可以提供掘金热榜的数据。
我们来认识一下什么是 Coze 插件,说白了它可以执行 API 请求,你可以认为是执行 HTTP 请求,给定输入,能给你返回输出结果。
这种标准的 application/json 格式应该很熟悉了吧。
有了这个插件提供的结果,那还不直接完事了?掘友们别急,事实上可能没有这么简单,接着看。
我们将插件的输出作为大模型节点的输入,修改提示词后试运行,发现结果也不是特别理想。
此时的提示词:
{{list}}
以上是一个热榜文章数组,数组中每个元素都是一个对象,对象的content.title字段是文章的标题。
基于以上信息,请分析文章数组中标题党嫌疑最大
插件输出没什么毛病,数据完全正确,但是大模型的输出似乎又有点胡扯。
于是我想着肯定是大模型无法理解我上面这段话的结构,尝试修改后有了更好的结果。
优化后的提示词:
const list = {{list}}
list是一个热榜文章数组,数组中每个元素都是一个对象,对象的content属性下的title属性是文章的标题。
基于文章标题分析list中标题党嫌疑最大的是哪一项,只输出title属性的值即可。
但是输出的结果也不是我要求的格式,我只想要一个标题就行了。另外,这个大模型节点运行一次会耗费多达2W多的 token,有点恐怖。
必须再做点什么了,因为我们只需要大模型分析标题内容,所以不必将整个数组灌输给大模型,我们加一个前置的节点,把插件结果进行处理,提取出更简练的标题数组。
针对以上需求,只需要加一个代码节点即可。
试运行之后,发现结果是我想要的了,并且大模型运行一次的 token 耗费降低到了 1K 级别。
最后,只需要让大模型补充它评选标题党的理由即可。
这基本上就是"前端砖家"这个 AI Bot 关于掘金热榜标题党的成品效果了。
以上纯属娱乐,不代表真实的标题党评估,因为我们只分析了标题,还没分析文章的内容,这个交给下一步实现了,下次再见!