使用「扣子」搭建你的专属 AI Bot(附详细案例教程)
在前面的文章 LLM Agents 指南:入门与实现,笔者介绍了使用 Python 实现一个简单的 AI Agent,这对于没有编程基础的人来说,还是比较麻烦的。
那么,对于想搭建自己的 AI Agent,但是又没有编程基础的人来说,还有其他更好的方案吗?
答案是肯定的。
我们可以使用「扣子」!
一、简介
扣子(coze)是由字节跳动推出的 AI Bot 开发平台。无论你是否有编程基础,你都可以在扣子上快速搭建 AI Chatbot,并一键发布到飞书、微信服务号和豆包等各个渠道。
扣子链接:https://www.coze.cn/home。
二、扣子的功能与优势
丰富的插件工具
01
扣子集成了丰富的插件工具,例如网页搜索、SD图片生成、快递查询等,同时支持自定义插件,从而极大地拓展 Bot 的能力。
丰富的数据源
02
扣子提供了简单易用的知识库功能来管理和存储数据,支持 Bot 与本地文件(支持 TXT、PDF、Docx 和 Excel 等格式)或网站(提供 url)进行信息交互。
持久化的记忆能力
03
扣子提供数据库记忆能力,可持久记住用户对话的重要参数或内容。比如,创建一个数据库来记录每天的资讯内容(后面的案例将会讲到)。然后,Bot 就可以通过数据库查询以前的信息。
灵活的工作流设计
04
扣子的工作流功能可以用来处理逻辑复杂,且有较高稳定性要求的任务。比如,创建一个工作流获取 AI 资讯(后面的案例将会讲到)。
三、coze 国内版 vs 海外版
字节还没在国内推出扣子的时候,已经在海外推出了 Coze。
海外版 Coze 链接:https://www.coze.com/home 。
整体上看,国内版和海外版功能上差不多,都支持通过丰富的插件、数据源和自定义工作流来创建自己专属的 AI Chatbot。但是,从使用体验上看,海外版还是更胜一筹,我们可以对比一下:
读者如果熟悉了国内版的使用,那么海外版也可以很快上手。根据笔者的体验,如果条件允许的话,建议使用海外版,毕竟 gpt-4 更加智能,能更好地完成任务。本文以 coze 国内版进行讲解,后面我也会抽空写一篇关于 coze 海外版的。
四、创建你的第一个AI Bot
这里,我们以一个简单的案例入手,在这个案例中,我想获取每日最新的AI资讯。
创建 Bot
01
首先,我们点击主页的「创建 Bot」,然后给 Bot 命名,介绍 Bot 的功能,点击生成图标,此时会根据Bot的名称和功能介绍生成图标,如果不满意可以继续生成。
编写提示词
02
确认创建 Bot 后,我们进入一个开发界面,界面分为左、中、右三个栏目,左边的栏目用于编写提示词,中间的栏目用于添加 Bot 需要的技能,右边的栏目则用于预览与调试。
我们希望这个 Bot 能够获取每日最新的AI资讯,基于这个目的我们编写提示词如下:
# 角色
你是一个专业的新闻推送机器人,可以快速获取、优化和发送与 AI(人工智能) 相关的最新新闻。
## 技能
### 技能 1: 获取 AI 相关新闻
1. 使用 getToutiaoNews 插件进行搜索,搜索关键词要跟用户的问题相匹配,每次搜索至少 10 条新闻。
2. 整理新闻内容,包括新闻标题、发布时间、内容简介和链接。
3. 为用户推荐跟 AI 相关的最新 10 条新闻。
### 技能 2: 优化新闻内容
1. 使用自然语言处理技术对新闻进行润色和优化,提高新闻的可读性和易懂性。
2. 对新闻进行摘要,提取关键信息,方便用户快速了解新闻内容。
## 限制
- 只讨论与 AI 相关的新闻内容,拒绝回答与 AI 无关的话题。
- 所输出的内容必须按照给定的格式进行组织,不能偏离框架要求。
- 总结部分不能超过 100 字。
- 请使用 Markdown 的 ^^ 形式说明引用来源。
这里,编写提示词的时候有个小技巧,我们只需要简单地说明这个 Bot 的功能,然后就可以进行一键优化,比如:
除了 prompt 自动优化,插件、数据库和开场白也提供了一键优化的功能,当然不一定准确,还需要自己验证。
添加技能
03
注意到上面的 prompt 里面有一句:使用 getToutiaoNews 搜索关键词 “AI 最新新闻”。这里的 getToutiaoNews 其实是插件「头条新闻」的函数名称,如下:
点击添加,将其加到插件中。
调试预览
04
创建好 Bot 之后,我们就可以在预览与调试区域中测试 Bot 是否符合预期。可单击清除图标清除对话记录。
发布
05
当我们完成测试后,就可以将 Bot 发布到社交渠道中使用这个 Bot。
在 Bot 的编排页面右上角,单击发布。
在发布页面输入发布记录,并勾选发布渠道。
单击发布。
比如我们可以发布到豆包APP,然后就可以在 APP 中跟它对话了,如下:
五、进阶使用
可以看到,我们上面使用插件「头条新闻」获取AI资讯,但内容比较一般,体验比较差。为了获得更优质的 AI 资讯,我们希望通过网页插件直接访问 https://36kr.com/information/technology/。另外,为了能稳定输出,我使用了工作流。
在新的版本中,我对提示词也做了相应的优化,同时把插件集成到工作流里面了。
新版的提示词如下:
# 角色
你是一个专业的新闻推送机器人,可以快速获取、优化和发送与 AI(人工智能) 相关的最新新闻。
## 技能
**技能 1.:获取最新AI资讯**。使用工作流 getNews_tasks 获取最新的AI资讯。
**技能 2:保存最新资讯内容到数据库**。如果用户想要保存资讯内容,则获取当天日期(格式 YYYY-MM-DD),并将获取到的最新AI资讯内容保存到数据库 ai_info。
**技能 3:获取指定日期的AI资讯**。根据用户提供的日期,从数据库 ai_info 查询对应日期的资讯,并返回给用户,如果查询不到,则告知用户查询不到指定日期的资讯。
## 限制
- 只讨论与 AI 相关的新闻内容,拒绝回答与 AI 无关的话题。
- 所输出的内容必须按照给定的格式进行组织,不能偏离框架要求。
- 总结部分不能超过 100 字。
- 请使用 Markdown 的 ^^ 形式说明引用来源。
这里,我要求 Bot 使用工作流 getNews_tasks(下文会详细介绍)获取 AI 资讯;同时我给 Bot 引入了一个新的功能:保存资讯内容(下文会详细介绍),这是为了将获取的资讯保存到数据库,方便日后查询。
getNews_tasks 如何工作
01
在新的版本中,我们使用工作流 getNews_tasks 获取 AI 资讯,接下来我们展开讲讲。
首先,我们要创建工作流,如图所示:
接着,我们通过拖拽的方式来搭建「积木」,如图所示,这个工作流有 4 个节点:开始、LinkReaderPlugin、大模型和结束这几个节点。
对于开始节点,可以有输入参数,也可以没有,如果不需要的话,可以取消,本工作流不需要输入参数。
第二个节点是 LinkReaderPlugin,用于获取网页信息,对于该插件的参数 url,我们直接给定了 https://36kr.com/information/technology/,也就是想让该插件直接访问该 url,获取信息。
第三个节点是大模型节点,主要是对得到的网页信息进行处理。在这个节点,输入参数引用了上一个节点的输出 content,也就是网页信息。
为了让大模型处理网页信息,我们需要在 prompt 中引入该变量,使用 {{input}} 即可。
提示词如下:
# 角色
你是出色的编辑,擅长整理冗余复杂的信息
# 任务
阅读 ```文本``` 中的文本信息,然后按照给定的格式总结它们。每个总结应包含三个部分:编号、标题、简介。简介应在 50 个字以内,精确而高效地概括报道的核心内容。请注意,简介中的信息应该准确、简洁,并尽可能保留报道中的重点信息。以下是具体的格式要求和示例:
格式要求:
数字编号(从 1 开始):按阅读顺序进行编号,输出最多 10 条
标题:提炼出报道的主要主题或焦点,形成简洁、明确的标题。
简介:在不超过 50 个字的限制下,总结报道的核心内容和要点。应涵盖主要事件、发现或观点,同时保持语言的清晰与精炼。
接下来,认真完成上述工作,这对我来说非常重要,务必重视和严格遵守要求。
直接进入工作,待总结的文本如下:
```
{{input}}
```
最后一个节点是结束节点,获取最终的结果,输出变量是 output,引用了上一个节点(大模型)的输出结果。
当我们建好工作流之后,我们就可以进行试运行,如图所示,如果确认没有问题,则可以发布。
保存 AI 资讯
02
在上面的案例中,我们使用了数据库功能来存储每天的 AI 资讯,便于日后查询,这是非常有用的。如图所示,我们创建了一个 ai_info 的数据表,这个数据表有两个字段:一个是日期,一个是资讯内容。
使用体验
03
如图所示:
首先,向 Bot 提问:最新的 AI 资讯有哪些?展开运行过程可以看到,Bot 调用 getNews_tasks 获取资讯
接着,我要求 Bot 将资讯内容保存到数据库,展开运行过程可以看到,Bot 生成了相应的 sql 语句,并执行该 sql
最后,获取指定日期的资讯,Bot 生成了 sql 语句,并进行执行
六、总结
「扣子」不仅仅是一个平台,更是一片无限可能的海洋。无论是营销、客服,还是娱乐互动,「扣子」都为创意者们打开了一扇通往 AI 的门。
这就像是每个人都能拥有自己的 Jarvis(贾维斯),只不过它不是为钢铁侠服务的,而是为我们每一个普通人服务的。