Criação de conectores de ML no OpenSearch Service
Os modelos de estrutura de fluxo do Amazon OpenSearch Service permitem a configuração e instalação de conectores de ML utilizando a API de criação de conectores oferecida no ml-commons. Você pode usar conectores de ML para conectar o OpenSearch Service a outros serviços da AWS ou plataformas de terceiros. Para obter mais informações sobre isso, consulte Como criar conectores para plataformas de ML de terceiros
Antes de criar um conector no OpenSearch Service, é necessário fazer o seguinte:
-
Crie um domínio do Amazon SageMaker AI.
-
Criar um perfil do IAM.
-
Configure a permissão de função de transmissão.
-
Mapeie as funções flow-framework e ml-commons no OpenSearch Dashboards.
Para obter mais informações sobre como configurar conectores de ML para serviços da AWS, consulte Conectores de ML do Amazon OpenSearch Service para serviços da AWS. Para saber mais sobre o uso dos conectores de ML do OpenSearch Service com plataformas de terceiros, consulte Conectores de ML do Amazon OpenSearch Service para plataformas de terceiros.
Como criar um conector por meio de um serviço de estrutura de fluxo
Para criar um modelo de estrutura de fluxo com conector, você precisará enviar uma solicitação POST para o endpoint do domínio do OpenSearch Service. Você pode usar cURL, um cliente Python de amostra, o Postman ou outro método para enviar uma solicitação assinada. A solicitação POST assume o seguinte formato:
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" } } } ] } } }
Se o domínio residir em uma nuvem privada virtual (Amazon VPC), você deverá estar conectado à Amazon VPC para que a solicitação crie o conector de IA com êxito. O acesso a uma Amazon VPC varia de acordo com a configuração de rede, mas geralmente requer uma conexão com VPN ou rede corporativa. Para saber se você pode alcançar seu domínio do OpenSearch Service, navegue até https:// em um navegador da Web e confira se você recebe a resposta JSON padrão. Substitua o your-vpc-domain.region.es.amazonaws.com.rproxy.govskope.catexto do espaço reservado por seus próprios valores.
Exemplo de cliente do Python
O cliente Python é mais simples de automatizar do que uma solicitação HTTP, além de ser mais fácil reutilizá-lo. Para criar o conector AI com o cliente Python, salve o código de exemplo a seguir em um arquivo Python. O cliente requer os pacotes AWS SDK for Python (Boto3), Requests:HTTP for Humans e requests-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)
Modelos de fluxo de trabalho predefinidos
O Amazon OpenSearch Service fornece vários modelos de fluxo de trabalho para alguns casos de uso comuns de ML (machine learning). O uso de um modelo simplifica configurações complexas e fornece muitos valores padrão para casos de uso, como pesquisa semântica ou conversacional. Você pode especificar um modelo de fluxo de trabalho ao chamar a API Create Workflow.
-
Para usar um modelo de fluxo de trabalho fornecido pelo OpenSearch Service, especifique o caso de uso do modelo como parâmetro de consulta
use_case. -
Para usar um modelo de fluxo de trabalho personalizado, forneça o modelo completo no corpo da solicitação. Para ver um exemplo de modelo personalizado, consulte um exemplo de modelo JSON ou um exemplo de modelo YAML.
Casos de uso de modelos
Esta tabela fornece uma visão geral dos diferentes modelos disponíveis, uma descrição dos modelos e os parâmetros necessários.
| Caso de uso do modelo | Descrição | Parâmetros necessários |
|---|---|---|
|
Cria e implanta um modelo de incorporação do Amazon Bedrock (por padrão, |
|
|
Cria e implanta um modelo de incorporação multimodal Amazon Bedrock (por padrão, |
|
|
Cria e implanta um modelo de incorporação Cohere (por padrão, embed-english-v3.0). |
|
|
Cria e implanta um modelo de chat Cohere (por padrão, Cohere Command). |
|
|
Cria e implanta um modelo de incorporação OpenAI (por padrão, text-embedding-ada-002). |
|
|
Cria e implanta um modelo de chat OpenAI (por padrão, gpt-3.5-turbo). |
|
|
Configura a pesquisa semântica e implanta um modelo de incorporação Cohere. Você deve fornecer a chave de API para o modelo Cohere. |
|
|
Configura a pesquisa semântica e implanta um modelo de incorporação Cohere. Adiciona um processador de pesquisa query_enricher que define um ID de modelo padrão para consultas neurais. Você deve fornecer a chave de API para o modelo Cohere. |
|
|
Implanta um modelo multimodal do Amazon Bedrock e configura um pipeline de ingestão com um processador text_image_embedding e um índice k-NN para pesquisa multimodal. Você deve fornecer suas credenciais da AWS. |
|
nota
Para todos os modelos que exigem um ARN secreto, o padrão é armazenar o segredo com o nome de chave "key" no AWS Secrets Manager.
Modelos padrão com modelos pré-treinados
O Amazon OpenSearch Service oferece dois modelos adicionais de fluxo de trabalho padrão não disponíveis no OpenSearch Service de código aberto.
| Caso de uso do modelo | Descrição |
|---|---|
|
Configura a pesquisa semântica |
|
Configura a pesquisa híbrida |