本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
OpenSearch 服务流框架模板
Amazon S OpenSearch ervice 流程框架模板允许您通过为常见用例提供模板来自动执行复杂的 OpenSearch 服务设置和预处理任务。例如,您可以使用流程框架模板来自动执行机器学习设置任务。Amazon OpenSearch 服务流程框架模板在 JSON 或 YAML 文档中简要描述了设置过程。这些模板描述了用于对话聊天或查询生成的自动工作流程配置、AI 连接器、工具、代理和其他组件,这些组件可为生成模型的后端 OpenSearch 服务做好准备。
Amazon OpenSearch 服务流程框架模板可以根据您的特定需求进行自定义。要查看自定义流程框架模板的示例,请参阅 fl ow-f
在 OpenSearch 服务中创建 ML 连接器
亚马逊 OpenSearch 服务流程框架模板允许您使用 ml-commons 中提供的创建连接器 API 来配置和安装机器学习连接器。您可以使用机器学习连接器将 OpenSearch 服务连接到其他 Amazon 服务或第三方平台。有关这方面的更多信息,请参阅为第三方 ML 平台创建连接器
在 S OpenSearch ervice 中创建连接器之前,必须执行以下操作:
-
创建一个 Amazon SageMaker 域名。
-
创建一个 IAM 角色。
-
配置通行证角色权限。
-
在仪表板中映射流程框架和 ml-commons 角色。 OpenSearch
有关如何为服务设置机器学习连接器的更多信息,请参阅 Amazon 服务的 Amazon OpenSearch 服务 ML 连接器。 Amazon 要了解有关在第三方平台上使用 OpenSearch 服务 ML 连接器的更多信息,请参阅适用于第三方平台的 Amazon OpenSearch 服务 ML 连接器。
通过流程框架服务创建连接器
要使用连接器创建流程框架模板,您需要向您的 OpenSearch 服务域终端节点发送POST
请求。你可以使用 curl、示例 Python 客户端、Postman 或其他方法来发送已签名的请求。该POST
请求采用以下格式:
POST /_plugins/_flow_framework/workflow { "name": "Deploy Claude Model", "description": "Deploy a model using a connector to Claude", "use_case": "PROVISION", "version": { "template": "1.0.0", "compatibility": [ "2.12.0", "3.0.0" ] }, "workflows": { "provision": { "nodes": [ { "id": "create_claude_connector", "type": "create_connector", "user_inputs": { "name": "Claude Instant Runtime Connector", "version": "1", "protocol": "aws_sigv4", "description": "The connector to BedRock service for Claude model", "actions": [ { "headers": { "x-amz-content-sha256": "required", "content-type": "application/json" }, "method": "POST", "request_body": "{ \"prompt\":\"${parameters.prompt}\", \"max_tokens_to_sample\":${parameters.max_tokens_to_sample}, \"temperature\":${parameters.temperature}, \"anthropic_version\":\"${parameters.anthropic_version}\" }", "action_type": "predict", "url": "https://bedrock-runtime.us-west-2.amazonaws.com/model/anthropic.claude-instant-v1/invoke" } ], "credential": { "roleArn": "arn:aws:iam::account-id:role/opensearch-secretmanager-role" }, "parameters": { "endpoint": "bedrock-runtime.us-west-2.amazonaws.com", "content_type": "application/json", "auth": "Sig_V4", "max_tokens_to_sample": "8000", "service_name": "bedrock", "temperature": "0.0001", "response_filter": "$.completion", "region": "us-west-2", "anthropic_version": "bedrock-2023-05-31" } } } ] } } }
如果您的域位于虚拟私有云(Amazon VPC)中,则必须连接到 Amazon VPC,请求才能成功创建 AI 连接器。访问 Amazon VPC 因网络配置而异,但通常需要连接到 VPN 或公司网络。要检查您是否可以访问您的 OpenSearch 服务域,请在 Web 浏览器https://your-vpc-domain.region.es.amazonaws.com
中导航到并确认收到默认 JSON 响应。
示例 Python 客户端
Python 客户端比HTTP
请求更易于自动化,并且具有更好的可重用性。要使用 Python 客户端创建 AI 连接器,请将以下示例代码保存到 Python 文件中。客户端需要适用于 Python 的Amazon SDK (Boto3)、适用于人类的 reque sts: HTTP 和 request s-aws4auth 1.2.3 软件包。
import boto3 import requests from requests_aws4auth import AWS4Auth host = 'domain-endpoint/' region = 'region' service = 'es' credentials = boto3.Session().get_credentials() awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service, session_token=credentials.token) path = '_plugins/_flow_framework/workflow' url = host + path payload = { "name": "Deploy Claude Model", "description": "Deploy a model using a connector to Claude", "use_case": "PROVISION", "version": { "template": "1.0.0", "compatibility": [ "2.12.0", "3.0.0" ] }, "workflows": { "provision": { "nodes": [ { "id": "create_claude_connector", "type": "create_connector", "user_inputs": { "name": "Claude Instant Runtime Connector", "version": "1", "protocol": "aws_sigv4", "description": "The connector to BedRock service for Claude model", "actions": [ { "headers": { "x-amz-content-sha256": "required", "content-type": "application/json" }, "method": "POST", "request_body": "{ \"prompt\":\"${parameters.prompt}\", \"max_tokens_to_sample\":${parameters.max_tokens_to_sample}, \"temperature\":${parameters.temperature}, \"anthropic_version\":\"${parameters.anthropic_version}\" }", "action_type": "predict", "url": "https://bedrock-runtime.us-west-2.amazonaws.com/model/anthropic.claude-instant-v1/invoke" } ], "credential": { "roleArn": "arn:aws:iam::account-id:role/opensearch-secretmanager-role" }, "parameters": { "endpoint": "bedrock-runtime.us-west-2.amazonaws.com", "content_type": "application/json", "auth": "Sig_V4", "max_tokens_to_sample": "8000", "service_name": "bedrock", "temperature": "0.0001", "response_filter": "$.completion", "region": "us-west-2", "anthropic_version": "bedrock-2023-05-31" } } } ] } } } headers = {"Content-Type": "application/json"} r = requests.post(url, auth=awsauth, json=payload, headers=headers) print(r.status_code) print(r.text)
预定义的工作流程模板
Amazon S OpenSearch ervice 为一些常见的机器学习 (ML) 用例提供了多个工作流程模板。使用模板可以简化复杂的设置,并为语义搜索或对话搜索等用例提供许多默认值。您可以在调用 “创建工作流 API” 时指定工作流模板。
-
要使用 OpenSearch 服务提供的工作流模板,请将模板用例指定为
use_case
查询参数。 -
要使用自定义工作流程模板,请在请求正文中提供完整的模板。有关自定义模板的示例,请参阅示例 JSON 模板或示例 YAML 模板。
模板用例
此表概述了不同的可用模板、模板的描述以及所需的参数。
模板用例 | 描述 | 必需参数 |
---|---|---|
|
创建和部署 Amazon Bedrock 嵌入模型(默认情况下, |
|
|
创建和部署 Amazon Bedrock 多模式嵌入模型(默认情况下, |
|
|
创建并部署 Cohere 嵌入模型(默认为 embed-english-v 3.0)。 |
|
|
创建并部署 Cohere 聊天模型(默认为 Cohere Command)。 |
|
|
创建并部署 OpenAI 嵌入模型(默认为 text-embedding-ada -002)。 |
|
|
创建并部署 OpenAI 聊天模型(默认为 gpt-3.5-turbo)。 |
|
|
配置语义搜索并部署 Cohere 嵌入模型。您必须提供 Cohere 模型的 API 密钥。 |
|
|
配置语义搜索并部署 Cohere 嵌入模型。添加一个 query_enricher 搜索处理器,该处理器为神经查询设置默认模型 ID。您必须提供 Cohere 模型的 API 密钥。 |
|
|
部署 Amazon Bedrock 多模态模型,并使用用于多模态搜索的 text_image_embedding 处理器和 k-nn 索引配置采集管道。您必须提供您的 Amazon 凭证。 |
|
注意
对于所有需要秘密 ARN 的模板,默认设置是将密钥名称为 “key” 的密钥存储在 Secr Amazon ets mangager 中。
带有预训练模型的默认模板
Amazon Ser OpenSearch vice 另外提供了两个开 OpenSearch 源服务中没有的默认工作流程模板。
模板用例 | 描述 |
---|---|
|
配置语义搜索 |
|
配置混合搜索 |
配置 权限
如果您使用版本 2.13 或更高版本创建新域,则权限已经到位。如果您在先前存在的 2.11 或更早版本的 OpenSearch 服务域上启用流程框架,然后升级到 2.13 或更高版本,则必须定义角色。flow_framework_manager
必须将非管理员用户映射到此角色,才能使用精细访问控制管理域上的温索引。手动创建 flow_framework_manager
角色,请执行下列步骤:
-
在 “ OpenSearch 控制面板” 中,转至 “安全”,然后选择 “权限”。
-
选择创建操作组并配置以下组:
组名 权限 flow_framework_full_access
-
cluster:admin/opensearch/flow_framework/*
-
cluster_monitor
flow_framework_read_accesss
-
cluster:admin/opensearch/flow_framework/workflow/get
-
cluster:admin/opensearch/flow_framework/workflow/search
-
cluster:admin/opensearch/flow_framework/workflow_state/get
-
cluster:admin/opensearch/flow_framework/workflow_state/search
-
-
选择角色和创建角色。
-
为角色命名 flow_framework_manager。
-
对于群集权限,选择
flow_framework_full_access
和flow_framework_read_access
。 -
对于索引,键入
*
。 -
对于索引权限,选择
indices:admin/aliases/get
、indices:admin/mappings/get
和indices_monitor
。 -
选择创建。
-
创建角色后,将其映射到任何将管理流程框架索引的用户或后端角色。