你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
开发标准流(预览版)
可以通过创建标准流从头开始开发流。 本文介绍如何在创作页中开发标准流。
按照以下视频教程可以快速开始开发标准流:
可在此处找到快速视频教程:标准流视频教程。
重要
提示流目前为公共预览版。 此预览版没有附带服务级别协议,建议不要用于生产工作负载。 某些功能可能不受支持或者受限。 有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款。
创建标准流
在提示流主页中,可以从头开始创建标准流。 选择“创建”按钮。
选择“创建”后,如右侧面板中所示,新流将保存在工作区文件共享存储中的特定文件夹中。 自定义可以根据自己的偏好自定义文件夹名称。
创作页面
创建后,你将进入用于流开发的创作页。
左侧是平展视图,可以在该主要的工作区域中创作流,例如新增节点、编辑提示、选择流输入数据等。
右上角显示流的文件夹结构。 每个流都有一个文件夹,其中包含 flow.dag.yaml 文件、源代码文件和系统文件夹。 可以出于测试、部署或协作目的轻松导出或导入流。
除了在平展视图中内联编辑节点外,还可以打开“原始文件模式”开关并选择文件名,以便在打开的文件选项卡中编辑文件。
右下角的图形视图仅用于显示可视化效果。 可以执行放大、缩小、自动布局等操作。
注意
无法编辑图形视图。 要编辑工具节点,可双击该节点找到平展视图中的相应工具卡,然后执行内联编辑。
选择运行时
在开始创作以开发流之前,应首先选择一个运行时。 选择顶部的“运行时”,然后选择一个适合流运行的可用运行时。
重要
如果没有运行时,则无法保存工具的内联编辑!
流输入数据
流输入数据是要在流中处理的数据。 在创作页中展开“输入”部分时,可以设置和查看流输入,包括输入架构(名称和类型),以及输入值。
对于如下面的屏幕截图所示的 Web 分类示例,流输入是字符串类型的 URL。
我们还支持 int、bool、double、list 和 object 输入类型。
使用不同的工具开发流
在一个流中,可以使用不同类型的工具。 我们现在支持 LLM、Python、Serp API、Content Safety 和矢量搜索等。
根据需要添加工具
通过选择最顶部的工具卡,可以向流添加新的工具节点。
编辑工具
将新工具节点添加到流时,默认情况下,它将追加到平展视图的底部,并带有随机名称。 新添加的工具也显示在图形视图的顶部。
每个工具节点卡的顶部都有一个用于调整工具节点的工具栏。 你可以上下移动它,也可以将其删除或重命名。
选择连接
在 LLM 工具中,选择“连接”以选择一个连接来设置 LLM 密钥或凭据。
提示和 Python 代码内联编辑
在 LLM 工具和 Python 工具中,它可用于内联编辑提示或代码。 转到平展视图中的卡,选择“提示”部分或“代码”部分,然后可以在其中进行更改。
验证并运行
若要测试和调试单个节点,请对平展视图中的节点选择“运行”图标。 运行状态显示在屏幕顶部。 如果运行失败,将显示错误横幅。 若要查看节点的输出,请转到该节点并打开“输出”部分,可以看到单步运行的输出值、跟踪和日志。
单节点状态也显示在图形视图中。
还可以更改流输入 URL,以测试不同 URL 的节点行为。
链接流 - 将节点链接在一起
在将节点链接在一起之前,需要定义并公开接口。
定义 LLM 节点接口
LLM 节点只有一个输出,即 LLM 提供程序提供的补全内容。
对于输入,我们提供模板化策略,可帮助你创建接受不同输入值的参数提示。 将输入名称括在 {{}}
中,而不是采用固定文本,以便可以动态替换。 我们使用 Jinja 作为模板化语言。
编辑提示框,以使用 {{input_name}}
定义输入。
定义 Python 节点接口
Python 节点可能有多个输入和输出。 定义输入和输出,如下所示。 如果有多个输出,请记得将其设为字典,以便下游节点可以单独调用每个键。
将节点链接在一起
定义接口后,可以使用:
- ${inputs.key} 与流输入链接。
- ${upstream_node_name.output} 与单输出上游节点链接。
- ${upstream_node_name.output.key} 与多输出上游节点链接。
下面是将节点链接在一起的常见方案。
方案 1 - 将 LLM 节点与流输入链接
- 添加新 LLM 节点,用有意义的名称重命名它,指定连接和 API 类型。
- 编辑提示框,通过
{{url}}
添加输入,选择“验证和分析输入”,然后会看到在输入部分创建了名为 URL 的输入。 - 在值下拉列表中选择 ${inputs.url},然后在图形视图中将看到新创建的 LLM 节点已链接到流输入。 运行流时,节点的 URL 输入将动态替换为流输入。
方案 2 - 将 LLM 节点与单输出上游节点链接
- 编辑提示框,通过
{{summary}}
添加另一个输入,选择“验证和分析输入”,然后会看到在输入部分创建了名为“summary”的输入。 - 在值下拉列表中,选择“${summarize_text_content.output}”,然后在图形视图中会看到新创建的 LLM 节点已链接到上游 summarize_text_content 节点。 运行流时,节点的摘要输入将动态替换为 summarize_text_content 节点输出。
我们支持下拉列表中的搜索和自动建议。 如果流中有多个节点,则可以按节点名称进行搜索。
还可以导航到要链接的节点,复制节点名称,导航回新创建的 LLM 节点,在“输入值”字段中粘贴。
方案 3 - 将 LLM 节点与多输出上游节点链接
假设我们要将新创建的 LLM 节点与 covert_to_dict Python 节点链接,后者的输出是一个字典,包含两个键:category(类别)和 evidence(证据)。
- 选择提示框旁边的“编辑”,通过
{{category}}
添加另一个输入,然后会看到在“输入”部分创建了一个名为“category”的输入。 - 在值下拉列表中,选择“${convert_to_dict.output}”,然后手动追加类别,然后在图形视图中会看到新创建的 LLM 节点已链接到上游 convert_to_dict 节点。 运行流时,节点的类别输入将动态替换为 convert_to_dict 节点输出字典中的类别值。
方案 4 - 将 Python 节点与上游节点/流输入链接
- 首先,需要编辑代码,在 python 函数中添加输入。
- 链接与 LLM 节点相同,使用 ${flow.input_name} 与流输入链接,或使用 ${upstream_node_name.output1} 与上游节点链接。
流运行
若要测试和调试整个流,请选择右上角的“运行”按钮。
设置和检查流输出
当流很复杂时,可以在一个位置设置流输出和检查多个节点的输出,而不是检查每个节点上的输出。 此外,流输出有助于:
- 在单个表中检查批量测试结果。
- 定义评估接口映射。
- 设置部署响应架构。
首先定义流输出架构,然后在下拉列表中选择要将其输出设置为流输出的节点。 由于 convert_to_dict 的字典输出包含两个键:category(类别)和 evidence(证据),因此需要手动将类别和证据追加到每个键。 然后运行流,一段时间后,可以在表中检查流输出。