工作流创建组件
步骤 1 : 创建组件
可以通过工作流编排的方式来创建组件,生成的组件可以发布到我的组件中,组件可以用于在应用中被 LLM 大模型 function call 调用。
你可以在【个人中心—组件】页面下看到组件列表,在页面右上角点击创建组件即可创建工作流。
- 组件名称:设置组件中文名称,组件名称在组件列表页以及应用配置页中展示。
- 英文名称:组件英文名称将用于被大模型 function call 识别及调用,系统会自动将组件名称转化为一个唯一的英文名称,你也可以自己修改英文名称。
- 组件描述:当创建的组件在应用中使用时,大模型会根据英文名称及组件描述来识别是否调用该组件,因此请准确描述组件的应用场景。
- 头像设定:支持上传自己的头像,也支持使用AI生成功能,根据组件名称来生成一个头像。
- 预置画布:系统提供了几种预置的工作流画布,默认选择为空画布,你可以选择一种预置画布开始创作,进入后可直接点击调试并输入参数运行,也支持根据自己的需求和场景基于以上画布进行改造。
组件名称、英文名称、组件描述、头像设定均可在创建画布后通过点击左上角铅笔符号修改。
预置画布
空画布
进入后默认展示输入节点和输出节点,需要根据需求自行添加节点并创作工作流。
知识库问答
预置了知识库问答工作流,包括输入节点、知识库节点、大模型节点、输出节点,知识库节点中预置了一份千帆文档的数据集,你可以在个人空间—知识库中创建自己的数据集,并在工作流知识库节点中更换知识库。也可根据问答场景需要修改大模型节点的prompt。
对话与内容生成
预置了大模型节点的对话与内容生成工作流,在大模型节点中内置了一个童话绘本生成类的prompt,进入后可以点击调试,并输入一个故事主题,工作流会根据输入的主题生成一个1000字的童话故事。同样,你可以修改prompt 设计自己的工作流。
API接入
预置了API节点的工作流画布,在API节点中内置了一个旅游景点查询API,可输入国内著名景点名称试运行,输出为景点名称、景点地址、景点等级、景点价格等。你也可以在API节点—编辑原始API信息中配置自己的API。
多类型复合
预置了以旅游攻略为主题,包含了API、大模型、分支器等节点的工作流,能够根据景点等级生成不同的旅游攻略,可输入国内著名景点名称试运行。
步骤 2: 配置节点
节点是 AppBuilder 工作流编排的基础功能单元。通过连接并配置不同的节点,可以灵活且稳定的实现业务流程编排。
创建画布后,可以通过底部菜单,点击 “节点”,并拖动所需要的节点到画布指定位置。
点击画布中的节点,画布右侧会弹出的编辑面板。通过编辑面板可以配置每个节点的参数信息和功能。
2.1 开始节点
开始节点是工作流运行的起点。在进入画布后,画布中会包含一个开始节点。开始节点不可以被复制或删除。开始节点中的系统参数为在应用中调用组件时系统默认带入,输入参数则需要用户根据实际场景进行自定义。
系统参数:工作流作为组件调用时,会默认带入工作流的3个系统参数,可在整个工作流的任意节点被引用。系统参数将更好的帮助应用和工作流进行数据传递。
- rawQuery,即用户的原始对话消息。
- chatHistory,即将该工作流添加进入应用后,用户与应用的对话历史,这里带入的历史对话轮数与引用该工作流的应用配置的历史对话轮数保持一致。
- fileUrls,即用户在应用里面上传的文件的地址。当前仅支持一个文件上传。
输入参数:定义组件运行需要的输入参数。大模型调用该组件时, 将根据输入参数的描述,理解对话内容并获取参数。
2.2 大模型节点
大模型节点可调用大语言模型,根据输入参数和提示词生成回复。
大模型节点中可以配置:
大模型配置模板:提供预制的示例模板,快速填写节点配置信息。
模型基础配置:
-
模型选择 大模型节点支持选择平台预置模型及用户在千帆ModelBuilder创建的自定义模型(千帆平台精调训练模型+自定义开发或外部下载模型)。你可以参考平台资源大模型服务进行模型的选择和使用。也可以参考模型创建说明直接创建自定义模型——上传场景数据对预置模型进行微调(SFT)或导入自训练大模型,在特定场景下达到极致效果。
- 模型多样性配置 该设置控制模型输出的多样性,会同时改变模型的top_p和temperature参数,数值越高输出内容的差异性越大。推荐设置0.01,可保证输出的效果稳定。(设置为0可能导致模型响应变慢)
- 模型高级参数配置 大模型节点右侧支持设置模型的高级配置参数,该参数为ERNIE模型的扩展参数,与千帆ModelBuilder模型接口参数对应,可针对不同的模型,配置特定的请求参数和模型返回的响应参数,满足特定场景下对模型作用效果精确控制,以及获取其他返回参数的需求。使用说明
下方展示模型付费状态,付费状态默认关闭,平台优先消耗当前账号下赠送的免费模型资源。开启后,如果你已开通付费模型,免费资源消耗完毕后自动切换到付费资源,保障应用稳定可用,如需开启,请点击【修改配置】按钮前往资源额度页面。
输入:可以引用前序节点的参数,作为输入。此处的输入可以插入提示词中,作为变量。
提示词:编写大模型的提示词,使大模型实现对应功能。通过插入花括号的方式,如 {{input}} ,可以引用对应的参数值。此处也可以在输出定义参数,并在提示词中引用,如 {{output1}},指定大模型将对应信息按照参数的格式输出。
输出:通过参数输出大模型的结果。仅EB3.5和EB4系列模型支持设置多个输出参数,并在后续节点被直接引用。
设置多输出:设置多个输出参数时,系统会自动解析模型输出转为设置的参数,为了保证效果较好,需要在提示词中指定每个参数的输出内容,并在配置中准确填写参数描述。
2.3 知识库节点
知识库节点支持根据输入的query,在选定的知识库中检索相关片段并召回,返回切片列表。你可以上传文件并建立知识库,在知识库节点中勾选想要使用的知识库进行检索。
输入参数:参数名不可修改,参数类型为string,上级节点的输出参数会强制转换为string类型作为知识库节点的输入,输入参数有两种类型:1)引用类型为引用上一个节点的输出变量,2)常量类型,可以输入一个string类型的入参。
选择知识库:选择需要检索的知识库,支持选择多个知识库。
检索策略:按照指定的检索策略从知识库中寻找匹配的片段,不同的检索策略可以更有效地找到正确的信息,提高最终生成的答案的准确性和可用性。
检索策略 | 定义 |
---|---|
混合检索 | 使用倒排索引和语义检索两种策略进行召回,推荐在需要对句子理解和语义关联性的场景下使用,综合效果更优。 |
语义检索 | 语义检索将返回与查询Query含义相匹配的内容,而不是与查询字面意思相匹配的内容。推荐在需要对上下文相关性和意图相关性的场景下使用。 |
全文检索 | 使用倒排索引策略进行检索召回,推荐在需要对关键词精准匹配的场景下使用。 |
召回数量:设置从知识库中召回与输入Query匹配的知识片段的个数,设定的数量越大,召回的片段越多。
匹配分:在检索过程中,用来计算输入Query和知识库片段的相似度,高于匹配分数的片段将会被检索召回。
输出参数:在知识库中检索输出的变量信息及变量类型。
字段名 | 含义 |
---|---|
segment_id | 获取切片的标识符 |
document_id | 切片所在文档的标识符 |
dataset_id | 数据集的标识符 |
content | 实际抓取的内容 |
document_name | 该文档的标题 |
dataset_name | 该数据集的标题 |
word_count | 抓取内容的字数统计 |
2.4 分支器节点
分支器节点用于设计工作流内的分支流程,可以连接多个下游节点。当向该节点输入参数时,节点会从上到下依次判断是否符合条件,若设定条件成立则运行对应的条件分支,若均不成立则运行“否则”分支。可通过拖拽分支条件配置面板来设定分支条件的优先级。在每个分支条件中,支持选择判断关系(且/或),以及同时添加多个条件。
复杂条件可以通过将多分支连接到同一个下游节点实现。
2.5 API 节点
API节点是基础节点类型之一,您可以通过该节点,将已有服务注册为组件,帮助扩展应用能力边界。 比如您有一个可以查询教育信息的接口,通过在API节点中注册接口信息,并发布为组件,就可以在应用配置的【组件】中选择该组件,那么该应用将按照要求查询对应信息。
平台支持接入遵守RESTful架构规范并采用标准认证机制的API。API接入前需要已经完成服务化,确保所有接入的API均遵循RESTful架构规范,确保使用无状态的请求模型并通过HTTP标准方法(如GET、POST、PUT、DELETE)进行资源操作,同时接口使用标准的认证机制。此外,接口设计符合OpenAPI规范,接入的API已经过性能测试、安全审查和兼容性检测,以确保API的稳定性和可靠性。同时为确保模型调用组件的最终效果,当前接口参数层级不支持超过10层。
使用说明:
-
添加API节点,可以手动逐步配置API基本信息或通过curl命令一键导入。配置信息包括:请求参数和响应参数。您可以只填写必需的请求参数和响应参数。比如在返回参数配置中,若需输出返回数据中某个对象的完整内容,仅需设置最顶层参数信息并选择适当的参数类型。
-
配置完成请求参数和响应参数后,点击【发送】,进行接口请求,下方将展示对应接口的原始API返回信息,和按照响应参数配置获得的参数返回信息,您可以检查返回信息是否符合预期。
-
您也可以不配置响应参数,直接根据API请求结果的返回信息自动解析输出参数,平台解析规则说明:当前支持接口返回内容类型有:JSON、XML、HTML、Plain Text、YAML、CSV。其中JSON、XML、YAML可被解析为JSON输出,便于您在后续节点引用某个参数或属性,其余类型支持以整个string类型输出。API接口返回内容大小不能超过100KB。
- 在完成API原始信息编辑后,您需要继续在右侧面板中对输入参数进行值配置,可以引用前序节点输出,或手动输入对应参数值。需要确保引用类型与设置类型一致。
- API节点的http请求发送成功即为接口调试通过,在整体流程调试前,API节点需要为调试通过状态。
2.6 代码节点
在代码节点中,可通过编写代码实现自定义的处理功能。引入代码节点到画布中,可在编辑器(IDE)内看到默认的示例代码。
编辑器的使用:
- 引用输入:配置了输入参数名和参数值后,可以在编辑器中引用输入参数。编辑器引入输入参数时,需要通过字典变量 params 引入代码节点的输入参数。代码节点支持不设置输入参数,但是设置的输出参数需要配置对应的默认值或参数引用关系。
- 返回输出:需要在编辑器中定义一个字典变量,作为编辑器中函数的输出。代码节点的输出参数是该字典变量的键(key)。
- 运行时环境:编辑器支持的运行时环境为 Python 3 。 运行环境预制了 NumPy、bs4包。当前运行环境暂不支持进行request请求或获取文件。
编辑器测试功能:
- 输入测试:在输入测试区域可以输入测试数据,并进行调试运行。“自动填入” 功能可以根据当前输入参数类型,生成输入数据。
- 输出测试:测试数据的运行结果会展示在输出测试区域中。运行成功后可以使用 “更新节点 Schema” 功能。使用后,代码节点的输出配置信息将被输出测试的 schema 自动覆盖。
2.7 组件节点
工作流可支持在画布中添加官方组件或自定义组件,提升组件的复用性和画布编辑灵活性。同时我们对百度搜索组件进行了更新,可以配置搜索返回结果的数量,当前一次支持最多返回6条结果。
2.8 意图识别节点
意图识别节点可以对输入的语句进行意图分类,并根据配置抽取该语句内的关键参数,匹配到不同的流程分支执行。
输入参数:节点将根据输入参数query进行意图识别和匹配。配置输入参数query时,您可以引用前序节点的输出变量或手动输入,变量类型为string。
意图配置:意图配置包括配置意图名称、意图描述、意图例句、和需要抽取的参数。
- 意图名称 & 意图描述:大模型将根据意图名称和意图描述来进行意图分类,在配置时清晰明确表述意图,能够获得更好的识别效果。
- 意图例句:意图例句可以帮助进行意图识别结果的调优,您可以通过配置意图例句,来模拟用户在该意图下可能的输入情况,使意图识别结果更准确。
- 参数抽取:参数抽取可配置识别到该意图时需要抽取的参数。可通过配置参数名、参数类型、参数描述来定义参数。配置后,执行意图识别节点,分类到该意图时,大模型会根据参数描述进行相应的参数抽取并输出对应值。
高级配置:高级配置支持对执行该意图分类的模型进行相关配置。
- 模型选择:选择执行该意图分类任务的大语言模型。
- 模型付费状态:下方展示模型付费状态,付费状态默认关闭。平台优先消耗当前账号下赠送的免费模型资源。开启后,如果你已开通付费模型,免费资源消耗完毕后自动切换到付费资源,保障应用稳定可用,如需开启,请点击【修改配置】按钮前往资源额度页面。
- 对话历史:开启后,将会引用用户与应用的对话历史作为意图识别的输入信息(对话历史轮数由应用配置中的【参考对话轮数】来决定)。对话历史默认关闭。
输出参数:
字段名 | 含义 |
---|---|
thought | 大模型作出意图分类的思考内容 |
classification | 用户自定义的意图名称 |
classificationID | 用户配置的意图ID |
自定义字段 | 用户在意图配置中自定义的待抽取参数名 |
2.9 记忆变量节点
记忆变量节点可以写入和读取应用配置中的记忆变量。记忆变量节点需要与应用中的记忆变量功能配合使用。您可以通过此节点写入变量值,调试成功后,变量值会同步至应用中的记忆变量,也可以通过此节点读取应用中的记忆变量值并输出。
记忆变量节点的使用:
- 记忆变量写入:
用户在应用中创建记忆变量后,选择记忆变量写入,可以在工作流节点写入记忆变量。
写入时,填写的变量名需要与应用中的记忆变量名相匹配。
在工作流Agent中,必须下拉选择当前应用已设置的记忆变量。
在组件中,需要手动输入记忆变量名称,该名称需要与调试时选择的Agent中的记忆变量参数名一致。
写入调试成功后,输出参数isSuccess参数为true,节点写入变量值同步应用中记忆变量值。
若写入调试失败,则输出参数isSuccess参数为false。
记忆变量值最大字符数为400字符。
- 记忆变量读取:
用户在应用中创建记忆变量后,选择记忆变量读取,可以在工作流节点读取记忆变量值进行输出。
读取时,填写的变量名需要与应用中的记忆变量名相匹配。读取调试成功后,应用中的记忆变量值可在工作流记忆变量节点读取并输出。
2.10 文本处理节点
文本处理节点可以实现多个字符串的拼接或文本的分割,适用于多输出总结、文本分隔处理等场景。
字符串拼接:将引用的输入字符串拼接为一个字符串,作为后序节点的输入,比如将多个模型输出拼接为一整篇内容。
字符串分隔:将引用的字符串用指定分隔符拆分为字符串数组,支持快捷选择预置符号或自定义分隔符。
2.11 结束节点
结束节点是组件的最终节点,输出组件运行后的最终结果。该结果将输出给调用此组件的应用或下游组件。
组件节点可以配置:
回复模式:可以选择两种输出方式:
- 选择 “返回以下参数值” 时,组件输出为对应参数类型和参数值;
- 选择 “按模板配置格式返回文本” 时,组件输出为参数值与模板的组合文本。
输出参数:定义组件需要输出的参数。
步骤 3: 调试和发布
3.1 组件调试
完成对节点的编辑和编排后,需要先进行调试。通过调试运行后的组件才可以进行发布。
- 点击底部菜单的 “调试” 按钮,画布会校验每个节点是否符合规范,如果节点中配置信息不符合规范,则会报错并无法进入后面的调试。调试时根据实际需求填写系统参数和自定义参数,模拟应用调用组件时的输入信息,对于系统参数或非必填参数,如果工作流中未使用,可以不填写。
- 在填写系统参数时,可以参考对话历史提供的模板格式,模拟用户和应用对话的内容进行填写。同时支持拖拽上传文件,模拟用户在应用中上传的文件信息。
- 请参考顶部弹出的提示和节点报错标识进行修改。当所有节点校验通过后,画布右侧弹出调试面板,填写输入参数后可以运行调试。点击右侧面板中的 “开始运行” 则开始依次运行节点。每个节点的运行结果、运行状态和运行耗时将显示在节点下方。最后的输出结果将展示在右侧面板中。
- 当工作流使用记忆变量节点时,需要在调试面板关联包含该记忆变量的应用。若记忆变量节点中填写的变量名称与应用中的变量名称不匹配,调试后记忆节点显示运行结果失败,提示:请求参数 variable 参数不存在。
3.2 组件测试数据
为了便于调试数据的复用,可以将某次填写的参数内容保存为测试数据,填写对应的测试数据名称和描述,点击运行后,系统将会保存该数据。用户在下次调试时,可以直接在调试面板中选择一条测试数据,历史参数将会自动填充到对应字段中。
3.3 组件发布
- 运行成功后,点击顶部 “发布” 按钮,可以将组件发布到 “我的组件” 列表中。
- 每次发布都会创建一个组件新版本,便于在应用或组件复用时进行组件版本的管理。
- 可以在 创建应用 的过程中,引用已发布的组件。