Link Search Menu Expand Document Documentation Menu

工作流步骤

工作流步骤是流程自动化的基本“构建块”。大多数步骤直接对应于 OpenSearch 或插件 API 操作,例如对机器学习 (ML) 连接器、模型和代理的 CRUD 操作。某些步骤通过在多个步骤中重用这些 API 所需的正文来简化配置。例如,一旦配置了一个工具,就可以将其与多个代理一起使用。

工作流步骤字段

工作流步骤正在积极开发中,以扩展自动化能力。工作流步骤(图节点)配置包括以下字段。

字段 数据类型 必需/可选 描述
id 字符串 必需 用户提供的步骤 ID。ID 在给定工作流中必须是唯一的,并且有助于识别该步骤创建的资源。例如,register_agent 步骤可能会返回一个已注册的 agent_id。使用此 ID,您可以确定哪个步骤产生了哪个资源。
type 字符串 必需 要执行的操作类型,例如 deploy_model,它对应于使用此步骤的 API。多个步骤可以共享相同的类型,但每个步骤都必须有自己唯一的 ID。有关支持类型的列表,请参阅工作流步骤类型
previous_node_inputs 对象 可选 一个键值映射,指定由工作流中上一步骤生成的输入。对于每个键值对,键是上一步骤的 id,值是 API 正文字段名称(例如 model_id),该字段将作为工作流中上一步骤的输出。例如,register_remote_model(键)可能会生成 model_id(值),后续的 deploy_model 步骤需要此值。
图边会自动添加到工作流中,将上一步骤的键作为源,当前节点作为目标进行连接。
在某些情况下,您可以在此字段中包含附加输入
user_inputs 对象 可选 一个键值映射,包含此特定步骤相应 API 支持的输入。某些输入是 API 必需的,而另一些是可选的。如果已知,必需的输入可以在此处指定,或在 previous_node_inputs 字段中指定。Get Workflow Steps API 识别必需的输入和步骤输出。
字符串值、字符串列表和字符串值映射中支持替换。模式 ${{previous_step_id.output_key}} 将被替换为上一步骤输出中给定键的值。例如,如果用户输入中的参数映射包含一个键 embedding_model_id,其值为 ${{deploy_embedding_model.model_id}},那么 deploy_embedding_model 步骤的 model_id 输出将在此处替换。这与 previous_node_input 映射的功能类似,但它不进行验证,也不会自动推断边缘。
在某些情况下,您可以在此字段中包含附加输入

工作流步骤类型

下表列出了工作流步骤类型。这些步骤的 user_inputs 字段直接对应于链接的 API。

步骤类型 对应 API 描述
noop 无 API 一个无操作(no-op)步骤,不执行任何操作,这对于同步并行步骤很有用。如果 user_inputs 字段包含 delay 键,此步骤将等待指定的时间量。
create_connector 创建连接器 创建连接器以连接到第三方平台上的模型。
delete_connector 删除连接器 删除连接到第三方平台上的模型的连接器。
register_model_group 注册模型组 注册一个模型组。一旦组中没有模型存在,该模型组将自动删除。
register_remote_model 注册模型(远程) 注册一个托管在第三方平台上的模型。如果 user_inputs 字段包含一个设置为 truedeploy 键,则该模型也会被部署。
register_local_pretrained_model 注册模型(预训练) 注册一个由 OpenSearch 提供的预训练文本嵌入模型,该模型托管在您的 OpenSearch 集群上。如果 user_inputs 字段包含一个设置为 truedeploy 键,则该模型也会被部署。
register_local_sparse_encoding_model 注册模型(稀疏) 注册一个由 OpenSearch 提供的预训练稀疏编码模型,该模型托管在您的 OpenSearch 集群上。如果 user_inputs 字段包含一个设置为 truedeploy 键,则该模型也会被部署。
register_local_custom_model 注册模型(自定义) 注册一个托管在您的 OpenSearch 集群上的自定义模型。如果 user_inputs 字段包含一个设置为 truedeploy 键,则该模型也会被部署。
delete_model 删除模型 注销并删除模型。
deploy_model 部署模型 将已注册模型部署到内存中。
undeploy_model 取消部署模型 将已部署模型从内存中取消部署。
register_agent 注册代理 API 注册一个代理作为 ML Commons 代理框架的一部分。
delete_agent 删除代理 API 删除代理。
create_tool 无 API 一个特殊的非 API 步骤,封装了 ML Commons 代理框架中代理工具的规范。这些将被列为相应注册代理步骤的 previous_node_inputs,其值设置为 tools
create_index 创建索引 创建一个新的 OpenSearch 索引。输入包括 index_name(应为要创建的索引名称)和 configurations(包含用于创建索引的常规 REST 请求的有效载荷正文)。
create_ingest_pipeline 创建摄入管道 创建或更新一个摄入管道。输入包括 pipeline_id(应为管道的 ID)和 configurations(包含用于创建摄入管道的常规 REST 请求的有效载荷正文)。
create_search_pipeline 创建搜索管道 创建或更新一个搜索管道。输入包括 pipeline_id(应为管道的 ID)和 configurations(包含用于创建搜索管道的常规 REST 请求的有效载荷正文)。
reindex 重新索引 reindex 文档 API 操作允许您将所有数据或数据的子集从源索引复制到目标索引。输入包括 source_index、destination_index,以及文档 reindex API 的以下可选参数:refreshrequests_per_secondrequire_aliasslicesmax_docs。更多信息,请参阅Reindexing 考量

Reindexing 考量

Reindexing 可能是一个资源密集型操作,如果管理不当,可能会导致集群不稳定。

使用 reindex 步骤时,请遵循以下最佳实践,以确保 reindexing 过程顺利进行并防止集群不稳定

  • 集群扩容:在启动 reindexing 操作之前,请确保您的 OpenSearch 集群已正确扩容以处理额外的工作负载。根据需要增加节点数量并调整资源分配(CPU、内存和磁盘),以适应 reindexing 过程,同时不影响其他操作。

  • 请求速率控制:使用 requests_per_second 参数来控制 reindexing 请求发送到集群的速率。这有助于调节集群上的负载并防止资源耗尽。从较低的值开始,并根据集群的容量和性能逐渐增加。

  • 切片和并行化slices 参数允许您将重新索引过程划分为更小的并行任务。这有助于在多个节点上分配工作负载,并提高整体性能。但是,增加切片数量时请务必谨慎,因为增加切片可能会增加资源消耗。

  • 监控和调整:在重新索引过程中,密切监控您的集群性能指标(例如 CPU、内存、磁盘使用情况和线程池)。如果您发现任何资源争用或性能下降的迹象,请相应地调整重新索引参数,或考虑暂停操作直至集群稳定。

  • 优先级和调度:如果可能,请在非高峰时段或集群利用率较低的时期安排重新索引操作,以最大程度地减少对其他操作和用户流量的影响。

通过遵循这些最佳实践并仔细管理重新索引过程,您可以确保 OpenSearch 集群在高效地在索引之间复制数据时保持稳定和高性能。

附加字段

如果指定的步骤类型支持以下字段,则可以在 user_inputs 字段中包含它们。

字段 数据类型 步骤类型 描述
node_timeout 时间单位 所有 此步骤的用户提供超时时间。例如,20s 表示 20 秒超时。
deploy 布尔型 注册模型 如果设置为 true,则也会部署模型。
tools_order 列表 注册智能体 指定 tools 的顺序。例如,指定 ["foo_tool", "bar_tool"] 以按该顺序排列这些工具。
delay 时间单位 无操作 等待指定的时间量。例如,250ms 表示在继续工作流之前等待 250 毫秒。

如果有指示,则可以在 previous_node_inputs 字段中包含以下附加字段。

字段 数据类型 描述
model_id 字符串 model_id 作为多个步骤的输入使用。作为 register_agent 步骤类型的特殊情况,如果 user_inputs 中不存在 llm.model_id 字段,并且 previous_node_inputs 中也不存在该字段,则可以使用来自上一个节点的 model_id 字段作为模型 ID 的备用。model_id 也将包含在 create_tool 步骤的 parameters 输入中,用于 MLModelTool
agent_id 字符串 agent_id 作为多个步骤的输入使用。agent_id 也将包含在 create_tool 步骤的 parameters 输入中,用于 AgentTool
连接器 ID 字符串 connector_id 作为多个步骤的输入使用。connector_id 也将包含在 create_tool 步骤的 parameters 输入中,用于 ConnectorTool

工作流步骤示例

有关工作流步骤实现的示例,请参阅工作流教程

剩余 350 字符

有问题?

想要贡献?