1. Coze 是什么?
扣子是新一代一站式 AI Bot 开发平台。无论你是否有编程基础,都可以在扣子平台上快速搭建基于 AI 模型的各类问答 Bot,从解决简单的问答到处理复杂逻辑的对话。而且你可以将搭建的 Bot 发布到各类社交平台和通讯软件上,让更多的用户与你搭建的 Bot 聊天。
简单理解就是,Coze 是一个 AI 应用构建发布平台,既是 AI App 的 IDE,又是 AI App 的 AppStore。
近期,以 OpenAI 为首(GPTs),各大厂都开始了 MaaS(Model as a Service 模型即服务)平台的构建和推广的竞争。之前调研过百度千帆、阿里灵积等传统 MaaS 平台,其相对更加偏向提供单纯的模型接口服务,对于大模型应用的构建、开发和发布,对接门槛和开发成本都不算低。但是字节的 Coze,在很大的程度上,拉低了这个门槛。
Coze 平台首先是免费的,至少现阶段是完全免费的;其次,Coze 的 AIBot 应用构建时,几乎不需要编程基础,模型、插件、知识库等核心技术,都做了极为完善的的封装,这是现阶段其他平台都不具备的优势特性。
2. Coze的国内版和国际版
- 国内版:www.coze.cn/
- 国际版(需要梯子):www.coze.com/,国外版本GPT4功能完善。
Coze 的国际版相对于国内版本,多了 GPT4V、DALLE、剪映、DocMaker等免费插件能力,相对可以制作出更好的绘图、视频生成、文档生成相关能力的机器人。
2.1. Coze 的模型选择
在 Bot 创建时,国际版的 Coze 可以直接免费使用 GPT4 模型:
但是国内版本,目前只能选择默认的字节云雀大模型,还没有放开模型替换功能。
2.2. 插件能力
在插件方面,国际版的插件种类更加丰富,同样的插件,国内版还存在一定的能力阉割。
国际版 Doc Maker 插件可以制作 PDF、DOC、PPT、Sheet 文档:
国内版的 Doc Maker 插件仅可以制作 PDF 文档:
2.3. Bot 功能
国际版商店内有很多具备 GPT4、DALLE 相关能力的机器人,这是国内版所不具备的,国内的 Bot 商店,更多的是偏向聊天性质的社交 Bot,工具型 Bot 相对比较少,功能也比较单一,不过一直在持续的添加完善。
-
国内版:
-
国际版:
比如国际版商店中的这个 Bot 就可以免费体验完整的 GPT4 能力: www.coze.com/store/bot/7...
还有免费的PPT制作机器人: www.coze.com/store/bot/7...
视频制作机器人: www.coze.com/store/bot/7...
2.4. 能力对比
相对来说,现阶段的国际版 Coze 更加开放,能力也更强。
Coze 国内版 | Coze 国际版 | |
---|---|---|
大模型支持 | 字节云雀(豆包)大模型唯一不可选 | GPT4/GPT3.5可选 |
插件支持 | 相对较少(部分功能阉割) | 丰富 |
插件自定义 | 支持 | 支持 |
工作流自定义 | 支持 | 支持 |
知识库 | 支持 | 支持 |
发布平台 | 扣子/豆包/飞书/微信客户(企业)/微信公众号(企业)/掘金 | Coze/Cici/Discord/Telegram/Messenger/LINE/Instagram/Slack/Reddit/Lark |
3. 豆包和 Cici
Coze 目前并不算是一个完善对外的 AI AppStore,不过功能在逐步完善中,字节官方对标 GPTs 的 AI AppStore,应该是豆包和 Cici,这也是 Coze 平台构建发布时分别的首选发布平台,不过这两个平台,更偏向社交工具平台。
豆包是国内版: www.doubao.com/chat/
国际版是 Cici: www.ciciai.com/chat/
4. Coze 平台的 AI Bot 构建完整流程
下面的示例均以国内版为主。
4.1. 自动构建
Coze 有一个特点,就是可以直接在其首页以会话的形式,让其自动的去创建 Bot 应用。
4.2. Prompt 定制和优化
使用自动创建,可以省去自己去写 Prompt 的过程,而且自动生成的 Prompt,一般是直接可用的:
当然这个默认的 Prompt 也可以自行修改,修改后,可以使用"优化"按钮,自动执行 Prompt 优化。
这个是官方的结构化 Prompt 示例:
md
# Character <Bot 人设>
你是一位数据分析专家,擅长使用 analyze 工具进行数据分析,包括提取、处理、分析和解释数据,你还能以通俗易懂的语言解释数据特性和复杂的分析结果。
## Skills <Bot 的功能>
### Skill 1: 提取数据
1. 当用户提供一个数据源或者需要你从某个数据源提取数据时,使用 analyze 工具的 extract 数据功能。
2. 如果用户提供的数据源无法直接提取,需要使用特定的编程语言,如 Python 或 R,写脚本提取数据。
### Skill 2: 处理数据
1. 使用 analyze 工具的 data cleaning 功能进行数据清洗,包括处理缺失值、异常值和重复值等。
2. 通过数据转换、数据规范化等方式对数据进行预处理,使数据适合进一步的分析。
### Skill 3: 分析数据
1. 根据用户需要,使用 analyze 工具进行描述性统计分析、关联性分析或预测性分析等。
2. 通过数据可视化方法,如柱状图、散点图、箱线图等,辅助展示分析结果。
## Constraints <Bot 约束>
- 只讨论与数据分析有关的内容,拒绝回答与数据分析无关的话题。
- 所输出的内容必须按照给定的格式进行组织,不能偏离框架要求。
- 对于分析结果,需要详细解释其含义,不能仅仅给出数字或图表。
- 在使用特定编程语言提取数据时,必须解释所使用的逻辑和方法,不能仅仅给出代码。
4.3. 插件选择
插件就是 Plugins ,是平台提供的各种预置的工具能力。插件能够让 Bot 调用外部 API,例如搜索信息、浏览网页、生成图片等,扩展 Bot 的能力和使用场景。
插件是强化大模型生成能力,使得模型生成的内容更加准确和丰富的有效途径。
Coze 有专门的预置插件库,前面提到过,国际版的 Coze 插件库会更加丰富。
在构建 Bot 应用时,可以根据 Bot 的功能,按需添加插件。
也可以使用自动添加功能,平台会根据 Prompt 的设置,自动选择可能需要的插件。
插件的调用机制是大模型自动按需触发的,这点和 OpenAI 的函数调用是一样的,大模型会根据上下文场景,动态按需的去匹配调用预先配置好的插件能力,去丰富模型生成的内容。相对于 OpenAI 等其他传统的 MaaS 平台,Coze 平台的插件使用门槛极低,用户完全不用关心内部的原理和触发机制。
4.4. 插件自定义开发
除了使用预置的默认插件,Coze 平台也提供自定义插件的功能。
创建插件,需要填写必要的信息:
最核心的,还是 URL,也就是需要提供一个对应的接口服务,这个和阿里灵积的自定义插件是类似的,只不过,Coze 的更加简单,没有那么琐碎的配置项和审核流程。
但是,接口能力也就意味着,插件能力只能是云函数,不支持 OpenAI 的本地函数,效率方面会低一些。
下面是一个简单的制作示例:
4.4.1. 创建插件
除了可视化的配置,平台也支持代码脚本化配置:
这里要填写的 json 和 yaml 文件,和阿里灵积平台的一样。
4.4.2. 编辑更新
创建后,就可以看到对应的插件:
点击编辑,可以进入编辑页面:
这里同样支持脚本化配置修改的方式:
4.4.3. 创建工具
初始创建的插件,需要创建工具才可以使用,编辑插件时,可以看到入口:
工具基本信息,本质就是云函数的名字和描述等信息:
配置参数就是接口入参:
输出参数配置是接口出参:
这里可以使用自动解析去配置:
自动解析仅解析json字段,参数含义需要自行填写:
调试,没有报错即可:
4.4.4. 发布
调试没有报错后,即可发布
发布后状态显示已发布
4.5. 记忆库
大模型受限于上下文窗口长度,无法记忆过长的上下文内容,在实际使用场景中,需要配置 Memeory 去保证大模型工作正常。
扣子提供了2种方式来存储和记忆外部数据:
-
知识库:大量知识分片,通过语义匹配,给模型补充知识。
以车型数据为例,每个知识库的分段中,保存了一种车型的基础数据。当用户问 宝马X3的售价是多少?,能匹配到对应车型的分段,然后模型从中获取到售价信息。
-
数据库:类似传统软件开发的数据库功能,以表格结构存储信息,通过 NoSQL 方式使用。
目前提供的是关系型数据库,下面列举一些应用场景:
- AI 便签:记录用户提交的便签,支持提交、查询操作,这些操作都是通过 NL2SQL 完成。
- 单词本:记录用户背过哪些单词,其中哪些单词还没有记住等。
4.5.1. 知识库
知识库是实现 RAG 模式,扩展大模型生成能力的最佳实践。
适用场景:
- 语料补充:如需创建一个虚拟形象与用户交流,你可以在知识库中保存该形象相关的语料。后续 Bot 会通过向量召回最相关的语料,模仿该虚拟形象的语言风格进行回答。
- 客服场景:将用户高频咨询的产品问题添加到知识库后,Bot 可以通过这些知识精准回答用户问题。
- 垂直场景:创建一个包含各种车型详细参数的汽车知识库。当用户查询某一车型的百公里油耗是多少时,可通过该车型召回对应的记录,然后进一步识别出百公里油耗。
4.5.1.1. 知识库创建
一个 Coze 账号下可以创建多个知识库:
一个知识库内,可以创建多个单元:
单元就是知识库内分段文本的向量数据 集合,Coze 支持多种单元创建方式,你甚至可以直接引用飞书和Notiton的文档:
- 以本地文档为例:
选择文档上传:
这里的分段模式选用文档内的特殊分隔符 ### ,确保分段正常:
数据分段后就是数据处理,这个过程完全由平台执行,本质是将分段后的文本做向量化转化和存储。
4.5.1.2. 知识库使用
新建 Bot ,关联创建好的知识库:
调用方式默认自动调用,召回数量就是根据匹配度检索出的文本数量,这里选择了语义检索,匹配度就是文本向量的相似度:
会话测试,可以查看知识库调用过程:
4.5.2. 数据库
Coze 的数据库可让用户通过自然语言插入和查询数据库中的数据,使用户可以便捷地与 Bot 进行交互,可用作长期的上下文记忆。
适用场景:
- 作为长期的上下文记忆,做数据持久化
- 对于核心的轻量化信息,可以使用数据库而不是知识库存储
- 对于某些记录性质的 Bot 应用,轻量化数据存储十分必要
- 对于用户的个人信息,做数据库存储,可以使 Bot 表现出更加的人性化特质
4.5.2.1. 数据库创建
建表:
4.5.2.2. 数据库使用
建立 Bot 测试数据存储:
数据查询测试:
4.6. 工作流开发
- 工作流支持通过可视化的方式,对插件、大语言模型、代码块、知识库等功能进行组合,从而实现复杂、稳定的业务流程编排,例如旅行规划、报告分析等。
- 当目标任务场景包含较多的步骤,且对输出结果的准确性、格式有严格要求时,适合配置工作流来实现。
- 可以简单理解为,工作流是一个更加复杂的插件,也是更加强大的插件能力
- 工作流是 Coze 有别于其他 MaaS 平台的重要特性之一
- 工作流的设计思想,应该是参照了 iOS 端的 Workflow App,该 App 后被苹果收购,改为"快捷指令"
Coze 工作流示例:
4.6.1. 在线 IDE
工作流开发是一个在线的简易 IDE
4.6.2. 节点
工作流的节点包含:
- 基础节点
- 开始
- 结束
- 大模型
- 代码块
- 知识库
- 选择器
- 插件
- 其他工作流
4.6.2.1. 开始和结束节点
开始节点,会将用户的输入信息转换为变量值,这个过程由大模型进行处理,支持多入参输入,前提是大模型可以正确的解析出用户输入文本的自然语言中相对应的参数信息。
这需要在 Bot 的 Prompt 设置阶段有所处理,且开始节点的参数名和变量描述要足够精确,但这并不能绝对保证大模型解析正确,所以单个入参效果可能更佳。
结束节点,会将整个工作流的输出做格式化给大模型,再由大模型去泛化处理。
如果直接设置回复内容格式,那么大模型将不再参与结果输出的泛化,而是按照指定格式去输出。
4.6.2.2. 大模型节点
该节点是 Coze 预置的大模型,和会话主题的大模型是同一个东西,只不过在工作流节点中,可以通过 Prompt 等配置重置为新的角色和任务。
在文本处理方面,大模型无疑是最强的,可以利用大模型节点去处理输入数据,做指定的泛化或者其他适合大模型去做的数据处理,给后续节点使用。
也可以将用户输入作为一个 Prompt ,设置给大模型节点,从而让整个 Bot 应用的功能更加动态化,而且节点的输出可以通过结束节点去做格式化。
可以使用大模型识别用户意图,从而进一步做逻辑处理 www.coze.cn/docs/guides...
4.6.2.3. 插件节点
插件节点,相对于 Bot 直接引用插件,其调用方式更加规范,直接插件接口严格的格式化输入输出,可以避免大模型直接调用的泛化或幻觉问题。
节点还支持批处理,也就是批量调用。
4.6.2.4. 代码块
代码块适合执行相对复杂的数据处理逻辑,代码支持 JS 和 Python。
但是该代码块,无法做到十分复杂的业务逻辑,仅可作为数据处理脚本对待。
- JavaScript 中,仅内置了dayjs(版本 1.8.36) 和 lodash(版本 4.17.20) 两个三方依赖库
- Python 中,仅内置了 requests_async 和 numpy 两个三方依赖库,requests_async 依赖库与 requests 类似,但需要 await。
代码节点,支持专门的在线 IDE 编辑页面:
4.6.2.5. 选择器
选择器就是条件判断,对于简单的条件逻辑,可以使用该选择器,而不是使用代码块。
4.6.2.6. 知识库
知识库就是前面的知识库,只不过和插件节点一样,这里是在工作流中直接引用知识库,根据知识库的匹配结果去做后续的数据处理,这个过程不依赖大模型,而是工作流脚本逻辑。
将知识库放在工作流节点中,可以将召回结果(检索匹配结果)做二次数据处理,比如某些数据筛选或者前置处理。
4.6.2.7. 其他工作流节点
其他工作流节点,就是将做好的工作流作为一个整体模块,引用到另一个工作流中,这个思想很像是项目开发中的组件化思想,每个工作流子节点都是单一的功能模块,整体被引用到一个更大的工作流(壳工程)中,从而组合出更为复杂的业务操作流程。
4.6.3. 工作流开发
这里做了一个简单的工作流,可以将新闻内容整理为一个 PDF 文档输出,整体输出做了格式化。
工作流执行过程:
执行结果: 输出的 PDF 文档:
4.7. Bot 发布
Bot 做好后,就可以进行发布操作,国内版 Coze,可以发布扣子商店、豆包、飞书、掘金和微信平台。 以飞书为例,参考: www.coze.cn/docs/guides...
这里制作了一个简单的文生图 Bot:
已经发布:www.coze.cn/store/bot/7...
点击发布,选择发布平台:
发布豆包后效果:
发布到飞书后效果: