工作流节点
开始节点
开始节点是工作流运行的起点。在进入画布后,画布中会包含一个开始节点。开始节点不可以被复制或删除。开始节点中的系统参数为默认参数,可在后续节点中进行引用。
系统参数:默认带入7个系统参数,可在整个工作流的任意节点被引用。系统参数将更好地帮助应用进行数据传递。
- rawQuery,即用户的原始对话消息。
- chatHistory,用户与应用的对话历史(轮数,由应用配置中的对话设置的【参考对话轮数】决定。
- fileUrls,即用户在应用里面上传的文件的地址。当前仅支持一个文件上传。
- fileNames,即用户在应用对话中上传的文件名称,与文件地址一一对应。(当前仅支持上传一个)
- end_user_id,即终端用户的唯一id,使用API调用时,支持开发者传入。其他情况下为终端用户在各渠道的唯一标识。
- conversion_id,即会话id,是会话的唯一标识。
- request_id,即本次请求的id,便于记录与调试。
大模型节点
大模型节点可调用大语言模型,根据提示词输出结果。
大模型节点中可以配置:
大模型配置模板:提供预制的示例模板,快速填写节点配置信息。
模型基础配置:
- 模型选择大模型节点支持选择平台预置模型及用户在千帆ModelBuilder创建的自定义模型(千帆平台精调训练模型+自定义开发或外部下载模型)。你可以参考平台资源大模型服务进行模型的选择和使用。也可以参考模型创建说明直接创建自定义模型——上传场景数据对预置模型进行微调(SFT)或导入自训练大模型,在特定场景下达到极致效果。
- 模型多样性配置 该设置控制模型输出的多样性,会同时改变模型的top_p和temperature参数,数值越高输出内容的差异性越大。推荐设置0.01,可保证输出的效果稳定。(设置为0可能导致模型响应变慢)
- 模型高级参数配置 大模型节点右侧支持设置模型的高级配置参数,该参数为ERNIE模型的扩展参数,与千帆ModelBuilder模型接口参数对应,可针对不同的模型,配置特定的请求参数和模型返回的响应参数,满足特定场景下对模型作用效果精确控制,以及获取其他返回参数的需求。使用说明
下方展示模型付费状态,付费状态默认关闭,平台优先消耗当前账号下赠送的免费模型资源。开启后,如果你已开通付费模型,免费资源消耗完毕后自动切换到付费资源,保障应用稳定可用,如需开启,请点击【修改配置】按钮前往资源额度页面。
输入:可以引用前序节点的参数,作为输入。此处的输入可以插入提示词中,作为变量。
提示词:编写大模型的提示词,使大模型实现对应功能。通过插入花括号的方式,如 {{input}} ,可以引用对应的参数值。此处也可以在输出定义参数,并在提示词中引用,如 {{output1}},指定大模型将对应信息按照参数的格式输出。
输出:通过参数输出大模型的结果。支持设置多个输出参数,并在后续节点被直接引用。
设置多输出:设置多个输出参数时,系统会自动解析模型输出转为设置的参数,为了保证效果较好,需要在提示词中指定每个参数的输出内容,并在配置中准确填写参数描述。
知识库节点
知识库节点支持根据输入的query,在选定的知识库中检索相关片段并召回,返回切片列表。你可以上传文件并建立知识库,在知识库节点中勾选想要使用的知识库进行检索。
输入参数:参数名不可修改,参数类型为string,上级节点的输出参数会强制转换为string类型作为知识库节点的输入,输入参数有两种类型:1)引用类型为引用上一个节点的输出变量,2)常量类型,可以输入一个string类型的入参。
选择知识库:选择需要检索的知识库,支持选择多个知识库。
检索策略:按照指定的检索策略从知识库中寻找匹配的片段,不同的检索策略可以更有效地找到正确的信息,提高最终生成的答案的准确性和可用性。
检索策略 | 定义 |
---|---|
混合检索 | 使用倒排索引和语义检索两种策略进行召回,推荐在需要对句子理解和语义关联性的场景下使用,综合效果更优。 |
语义检索 | 语义检索将返回与查询Query含义相匹配的内容,而不是与查询字面意思相匹配的内容。推荐在需要对上下文相关性和意图相关性的场景下使用。 |
全文检索 | 使用倒排索引策略进行检索召回,推荐在需要对关键词精准匹配的场景下使用。 |
召回数量:设置从知识库中召回与输入Query匹配的知识片段的个数,设定的数量越大,召回的片段越多。
匹配分:在检索过程中,用来计算输入Query和知识库片段的相似度,高于匹配分数的片段将会被检索召回。
输出参数:在知识库中检索输出的变量信息及变量类型。
字段名 | 含义 |
---|---|
segment_id | 获取切片的标识符 |
document_id | 切片所在文档的标识符 |
dataset_id | 数据集的标识符 |
content | 实际抓取的内容 |
document_name | 该文档的标题 |
dataset_name | 该数据集的标题 |
word_count | 抓取内容的字数统计 |
全局跳转节点
全局跳转节点的使用场景:
这是一个查询航班信息的业务场景,客服机器人询问用户要查询的航班号,用户没有回复航班号,而是提出了一个相关问题,因此分支器节点将该工作流分流到全局跳转节点,该节点会先判断用户是否表达了其他意图,没有识别到其他意图后,会调用“对话设置”中的知识库问答,在知识库中没有找到答案后,会调用“对话设置”中的大模型闲聊兜底回复,回复结束之后,全局跳转节点会将流程拉回到信息收集节点,继续询问航班号。
全局跳转节点最佳实践样例:https://cloud.baidu.com/doc/AppBuilder/s/cm38k8nqr
全局跳转节点的运行逻辑:
全局跳转会针对输入的query,按照如下优先级进行跳转或回复:
- 首先进行选择全局意图识别,此时将会调用画布上所有的全局意图识别节点,对该query进行意图识别,根据意图识别结果跳转到相应处理意图的分支,对意图进行完整处理。该意图走到结束节点之后,可选择将对话拉回到上一个信息收集节点,重新向用户询问要收集的信息。
- 如果没有识别到相应意图,会使用对话设置中的知识库对该query进行回复,在回复完这个query后,可将对话拉回到上一个信息收集节点,重新向用户询问要收集的信息。
- 如果也没有在知识库中找到答案,会使用大模型对该query进行闲聊回复,或者使用固定话术进行回复,在回复完这个query后,可将对话拉回到上一个信息收集节点,重新向用户询问要收集的信息。
全局节点的具体配置:
输入:将需要进行意图识别、知识库问答或者闲聊回复的query作为该节点的输入。
跳转方式:
- 全局意图识别:调用画布上所有的意图识别节点中勾选了允许跳转的意图,进行意图识别。
- 知识库问答:没有识别到对应意图,则使用“对话设置”中的知识库进行问答。
-
闲聊回复:在没有匹配到对应意图,知识库也无法进行回答时,使用闲聊回复。
- 闲聊回复兜底:可调用大模型进行闲聊回复,闲聊回复也在“对话设置”里进行配置:
- 使用固定话术:开启后,⼤模型将不再进⾏闲聊,仅回复固定话术。
拉回节点:显示会话会被拉回到哪个节点,无需配置。
拉回次数:当拉回次数达到该设置值后,则不会再触发拉回。
拉回话术:为了避免跳出后拉回的太生硬,可配置拉回话术进行过渡。
高级配置:此处配置的大模型是对输入query进行意图识别的大模型。
对话历史:当意图识别的结果和对话历史有关时,需要打开对话历史的开关。
信息收集节点
节点能力:你可以通过信息收集节点向用户提问,等待用户回复,并将用户回复内容及抽取的信息作为输出参数。节点输入为输入给该节点的参数,可以被引用到下面的提问内容中;输出为该节点输出的参数,包括用户回复的信息、对话历史及参数抽取的结果,可以被后续节点引用。
信息收集节点主要包括以下几个部分:
- 输入:输入给该节点的参数,可以被引用到下面的提问内容中。
- 提问内容:针对需要收集的参数进行提问。
- 参数抽取:定义一个变量,用于存储从用户回复内容中抽取的参数信息,大模型会根据参数描述进行抽取。
- 大模型配置:该大模型用于根据参数描述抽取参数信息。
- 输出:该节点输出的参数,包括用户回复的信息、对话历史及参数抽取的结果,可以被后续节点引用。
消息节点
消息节点的使用:
用户可以通过两种不同的回复模式选择来使用消息节点。
- 按模版配置格式返回文本:用户可选择回复模式为“按照模版配置格式返回文本”,可在输出中引用前序参数。填写向用户发送的信息创建信息模版,可以通过插入{{参数名}}引用对应输入参数。输出为参数值和模版的组合文本。本模式支持流式和非流式两种不同的输出方式。
- 直接返回参数值:用户可选择回复模式为“直接返回参数值”,可在输出中引用前序参数。输出为对应参数类型和参数值。
分支器节点
分支器节点用于设计工作流内的分支流程,可以连接多个下游节点。当向该节点输入参数时,节点会从上到下依次判断是否符合条件,若设定条件成立则运行对应的条件分支,若均不成立则运行“否则”分支。可通过拖拽分支条件配置面板来设定分支条件的优先级。在每个分支条件中,支持选择判断关系(且/或),以及同时添加多个条件。
复杂条件可以通过将多分支连接到同一个下游节点实现。
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接口返回内容大小不能超过1M。
- 在完成API原始信息编辑后,您需要继续在右侧面板中对输入参数进行值配置,可以引用前序节点输出,或手动输入对应参数值。需要确保引用类型与设置类型一致。
- API节点支持接入流式接口,要求接口返回的streaming event格式为:"data:" {"xxx":"xxx"},要求数据帧data是全量的,暂不支持第一帧数据不全,支持JOSN嵌套的流式信息返回。
- API节点的http请求发送成功即为接口调试通过,在整体流程调试前,API节点需要为调试通过状态。
代码节点
在代码节点中,可通过编写代码实现自定义的处理功能。引入代码节点到画布中,可在编辑器(IDE)内看到默认的示例代码。
编辑器的使用:
- 引用输入:配置了输入参数名和参数值后,可以在编辑器中引用输入参数。编辑器引入输入参数时,需要通过字典变量 params 引入代码节点的输入参数。代码节点支持不设置输入参数,但是设置的输出参数需要配置对应的默认值或参数引用关系。
- 返回输出:需要在编辑器中定义一个字典变量,作为编辑器中函数的输出。代码节点的输出参数是该字典变量的键(key)。
- 运行时环境:编辑器支持的运行时环境为 Python 3 。 运行环境预制了 NumPy、bs4包。当前运行环境暂不支持进行request请求或获取文件。
编辑器测试功能:
- 输入测试:在输入测试区域可以输入测试数据,并进行调试运行。“自动填入” 功能可以根据当前输入参数类型,生成输入数据。
- 输出测试:测试数据的运行结果会展示在输出测试区域中。运行成功后可以使用 “更新节点 Schema” 功能。使用后,代码节点的输出配置信息将被输出测试的 schema 自动覆盖。
组件节点
工作流可支持在画布中添加官方组件或自定义组件,提升组件的复用性和画布编辑灵活性。
意图识别节点
意图识别节点可以对输入的语句进行意图分类,并根据配置抽取该语句内的关键参数,匹配到不同的流程分支执行。
输入参数:节点将根据输入参数query进行意图识别和匹配。配置输入参数query时,您可以引用前序节点的输出变量或手动输入,变量类型为string。
意图配置:意图配置包括配置意图名称、意图描述、意图例句、和需要抽取的参数。
- 意图名称 & 意图描述:大模型将根据意图名称和意图描述来进行意图分类,在配置时清晰明确表述意图,能够获得更好的识别效果。
- 意图例句:意图例句可以帮助进行意图识别结果的调优,您可以通过配置意图例句,来模拟用户在该意图下可能的输入情况,使意图识别结果更准确。
- 参数抽取:参数抽取可配置识别到该意图时需要抽取的参数。可通过配置参数名、参数类型、参数描述来定义参数。配置后,执行意图识别节点,分类到该意图时,大模型会根据参数描述进行相应的参数抽取并输出对应值。 高级配置:高级配置支持对执行该意图分类的模型进行相关配置。
- 模型选择:选择执行该意图分类任务的大语言模型。
- 模型付费状态:下方展示模型付费状态,付费状态默认关闭。平台优先消耗当前账号下赠送的免费模型资源。开启后,如果你已开通付费模型,免费资源消耗完毕后自动切换到付费资源,保障应用稳定可用,如需开启,请点击【修改配置】按钮前往资源额度页面。
- 对话历史:开启后,将会引用用户与应用的对话历史作为意图识别的输入信息(对话历史轮数由应用配置中的【参考对话轮数】来决定)。对话历史默认关闭。 输出参数:
字段名 | 含义 |
---|---|
thought | 大模型作出意图分类的思考内容 |
classification | 用户自定义的意图名称 |
classificationID | 用户配置的意图ID |
自定义字段 | 用户在意图配置中自定义的待抽取参数名 |
记忆变量节点
记忆变量节点可以写入和读取应用配置中的记忆变量。记忆变量节点需要与应用中的记忆变量功能配合使用。您可以通过此节点写入变量值,调试成功后,变量值会同步至应用中的记忆变量,也可以通过此节点读取应用中的记忆变量值并输出。
记忆变量节点的使用:
- 记忆变量写入: 用户在应用中创建记忆变量后,选择记忆变量写入,可以在工作流节点写入记忆变量。
写入调试成功后,输出参数isSuccess参数为true,节点写入变量值同步应用中记忆变量值。
若写入调试失败,则输出参数isSuccess参数为false。
记忆变量值最大字符数为400字符。
- 记忆变量读取: 用户在应用中创建记忆变量后,选择记忆变量读取,可以在工作流节点读取记忆变量值进行输出。
文本处理节点
文本处理节点可以实现多个字符串的拼接或文本的分割,适用于多输出总结、文本分隔处理等场景。
字符串拼接:将引用的输入字符串拼接为一个字符串,作为后序节点的输入,比如将多个模型输出拼接为一整篇内容。
字符串分隔:将引用的字符串用指定分隔符拆分为字符串数组,支持快捷选择预置符号或自定义分隔符。
结束节点
结束节点是组件的最终节点,输出应用运行后的最终结果。
结束节点可以配置:
回复模式:可以选择两种输出方式:
- 选择 “返回以下参数值” 时,输出为对应参数类型和参数值;
- 选择 “按模板配置格式返回文本” 时,输出为参数值与模板的组合文本。 输出参数:定义需要输出的参数