你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

开发标准流(预览版)

可以通过创建标准流从头开始开发流。 本文介绍如何在创作页中开发标准流。

按照以下视频教程可以快速开始开发标准流:

可在此处找到快速视频教程:标准流视频教程

重要

提示流目前为公共预览版。 此预览版没有附带服务级别协议,建议不要用于生产工作负载。 某些功能可能不受支持或者受限。 有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款

创建标准流

在提示流主页中,可以从头开始创建标准流。 选择“创建”按钮。

提示流主页的屏幕截图展示创建新流,其中突出显示了标准流。

选择“创建”后,如右侧面板中所示,新流将保存在工作区文件共享存储中的特定文件夹中。 自定义可以根据自己的偏好自定义文件夹名称。

创建流时指定流文件夹名称的屏幕截图。

创作页面

创建后,你将进入用于流开发的创作页。

左侧是平展视图,可以在该主要的工作区域中创作流,例如新增节点、编辑提示、选择流输入数据等。

Web 分类的屏幕截图,突出显示了主要的工作区域。

右上角显示流的文件夹结构。 每个流都有一个文件夹,其中包含 flow.dag.yaml 文件、源代码文件和系统文件夹。 可以出于测试、部署或协作目的轻松导出或导入流。

Web 分类的屏幕截图,突出显示了文件夹结构区域。

除了在平展视图中内联编辑节点外,还可以打开“原始文件模式”开关并选择文件名,以便在打开的文件选项卡中编辑文件。

原始文件模式下文件编辑选项卡的屏幕截图。

右下角的图形视图仅用于显示可视化效果。 可以执行放大、缩小、自动布局等操作。

注意

无法编辑图形视图。 要编辑工具节点,可双击该节点找到平展视图中的相应工具卡,然后执行内联编辑。

Web 分类的屏幕截图,突出显示了图形视图区域。

选择运行时

在开始创作以开发流之前,应首先选择一个运行时。 选择顶部的“运行时”,然后选择一个适合流运行的可用运行时。

重要

如果没有运行时,则无法保存工具的内联编辑!

运行时下拉菜单的屏幕截图显示两个不同的运行时。

流输入数据

流输入数据是要在流中处理的数据。 在创作页中展开“输入”部分时,可以设置和查看流输入,包括输入架构(名称和类型),以及输入值。

对于如下面的屏幕截图所示的 Web 分类示例,流输入是字符串类型的 URL。

Web 分类的屏幕截图突出显示了输入代码和“添加输入”按钮。

我们还支持 int、bool、double、list 和 object 输入类型。

输入的屏幕截图显示已选择字符串的类型下拉菜单。

使用不同的工具开发流

在一个流中,可以使用不同类型的工具。 我们现在支持 LLM、Python、Serp API、Content Safety 和矢量搜索等。

根据需要添加工具

通过选择最顶部的工具卡,可以向流添加新的工具节点。

工具卡的屏幕截图显示用于选择更多工具的下拉菜单。

编辑工具

将新工具节点添加到流时,默认情况下,它将追加到平展视图的底部,并带有随机名称。 新添加的工具也显示在图形视图的顶部。

屏幕截图为 Python 节点及其在图形视图中的位置。

每个工具节点卡的顶部都有一个用于调整工具节点的工具栏。 你可以上下移动它,也可以将其删除或重命名。

Python 工具节点的屏幕截图突出显示工具栏按钮。

选择连接

在 LLM 工具中,选择“连接”以选择一个连接来设置 LLM 密钥或凭据。

汇总文本内容节点的屏幕截图突出显示了连接。

提示和 Python 代码内联编辑

在 LLM 工具和 Python 工具中,它可用于内联编辑提示或代码。 转到平展视图中的卡,选择“提示”部分或“代码”部分,然后可以在其中进行更改。

LLM 工具中内联编辑提示的动画。

Python 工具中内联编辑代码的动画。

验证并运行

若要测试和调试单个节点,请对平展视图中的节点选择“运行”图标。 运行状态显示在屏幕顶部。 如果运行失败,将显示错误横幅。 若要查看节点的输出,请转到该节点并打开“输出”部分,可以看到单步运行的输出值、跟踪和日志。

单节点状态也显示在图形视图中。

屏幕截图显示节点上的“运行”图标所在位置以及“查看完整输出”按钮。

还可以更改流输入 URL,以测试不同 URL 的节点行为。

在将节点链接在一起之前,需要定义并公开接口。

定义 LLM 节点接口

LLM 节点只有一个输出,即 LLM 提供程序提供的补全内容。

对于输入,我们提供模板化策略,可帮助你创建接受不同输入值的参数提示。 将输入名称括在 {{}} 中,而不是采用固定文本,以便可以动态替换。 我们使用 Jinja 作为模板化语言。

编辑提示框,以使用 {{input_name}} 定义输入。

屏幕截图为编辑提示框以定义输入。

定义 Python 节点接口

Python 节点可能有多个输入和输出。 定义输入和输出,如下所示。 如果有多个输出,请记得将其设为字典,以便下游节点可以单独调用每个键。

Python 代码的屏幕截图突出显示定义输入和输出的位置。

定义接口后,可以使用:

  • ${inputs.key} 与流输入链接。
  • ${upstream_node_name.output} 与单输出上游节点链接。
  • ${upstream_node_name.output.key} 与多输出上游节点链接。

下面是将节点链接在一起的常见方案。

  1. 添加新 LLM 节点,用有意义的名称重命名它,指定连接和 API 类型。
  2. 编辑提示框,通过 {{url}} 添加输入,选择“验证和分析输入”,然后会看到在输入部分创建了名为 URL 的输入。
  3. 在值下拉列表中选择 ${inputs.url},然后在图形视图中将看到新创建的 LLM 节点已链接到流输入。 运行流时,节点的 URL 输入将动态替换为流输入。

方案 1 的屏幕截图显示 LLM 工具和步骤 1 中的编辑提示。

方案 1 的屏幕截图显示 LLM 工具和步骤 2 中的编辑提示。

  1. 编辑提示框,通过 {{summary}} 添加另一个输入,选择“验证和分析输入”,然后会看到在输入部分创建了名为“summary”的输入。
  2. 在值下拉列表中,选择“${summarize_text_content.output}”,然后在图形视图中会看到新创建的 LLM 节点已链接到上游 summarize_text_content 节点。 运行流时,节点的摘要输入将动态替换为 summarize_text_content 节点输出。

我们支持下拉列表中的搜索和自动建议。 如果流中有多个节点,则可以按节点名称进行搜索。

方案 2 的动画显示编辑提示和输入。

还可以导航到要链接的节点,复制节点名称,导航回新创建的 LLM 节点,在“输入值”字段中粘贴。

LLM 节点的动画显示如何复制节点名称。

假设我们要将新创建的 LLM 节点与 covert_to_dict Python 节点链接,后者的输出是一个字典,包含两个键:category(类别)和 evidence(证据)。

  1. 选择提示框旁边的“编辑”,通过 {{category}} 添加另一个输入,然后会看到在“输入”部分创建了一个名为“category”的输入。
  2. 在值下拉列表中,选择“${convert_to_dict.output}”,然后手动追加类别,然后在图形视图中会看到新创建的 LLM 节点已链接到上游 convert_to_dict 节点。 运行流时,节点的类别输入将动态替换为 convert_to_dict 节点输出字典中的类别值。

LLM 工具的屏幕截图突出显示类别值。

  1. 首先,需要编辑代码,在 python 函数中添加输入。
  2. 链接与 LLM 节点相同,使用 ${flow.input_name} 与流输入链接,或使用 ${upstream_node_name.output1} 与上游节点链接。

Python 节点的 Gif 动图显示编辑节点和从值下拉菜单选择一个值。

流运行

若要测试和调试整个流,请选择右上角的“运行”按钮。

流页面的屏幕截图突出显示了“运行”按钮。

设置和检查流输出

当流很复杂时,可以在一个位置设置流输出和检查多个节点的输出,而不是检查每个节点上的输出。 此外,流输出有助于:

  • 在单个表中检查批量测试结果。
  • 定义评估接口映射。
  • 设置部署响应架构。

首先定义流输出架构,然后在下拉列表中选择要将其输出设置为流输出的节点。 由于 convert_to_dict 的字典输出包含两个键:category(类别)和 evidence(证据),因此需要手动将类别和证据追加到每个键。 然后运行流,一段时间后,可以在表中检查流输出。

输出的屏幕截图显示值下拉菜单。

Web 分类的屏幕截图突出显示“查看变体”按钮。

输出的屏幕截图,显示状态为已完成并且显示了该输出的信息。

后续步骤