

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Criação de conectores de ML no Service OpenSearch
<a name="ml-create"></a>

Os modelos de estrutura de fluxo do Amazon OpenSearch Service permitem que você configure e instale 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 Serviço a outros AWS serviços ou plataformas de terceiros. Para saber mais sobre isso, consulte [Como criar conectores para plataformas de ML de terceiros](https://opensearch.org/docs/2.13/ml-commons-plugin/remote-models/connectors/). A API da estrutura OpenSearch de fluxo do Amazon Service permite automatizar as tarefas de configuração e pré-processamento do OpenSearch serviço e pode ser usada para criar conectores de ML. 

Antes de criar um conector no OpenSearch Service, você deve fazer o seguinte:
+ Crie um domínio Amazon SageMaker AI.
+ Criar um perfil do IAM.
+ Configure a permissão de função de transmissão.
+ Mapeie a estrutura de fluxo e as funções do ml-commons nos painéis. OpenSearch 

Para obter mais informações sobre como configurar conectores de ML para AWS serviços, consulte [Conectores de ML do Amazon OpenSearch Service para AWS](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ml-amazon-connector.html#connector-sagemaker-prereq) serviços. Para saber mais sobre o uso OpenSearch de conectores Service ML com plataformas de terceiros, consulte [Conectores Amazon OpenSearch Service ML para plataformas de terceiros](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ml-amazon-connector.html#connector-sagemaker-prereq).

## Como criar um conector por meio de um serviço de estrutura de fluxo
<a name="ml-workflow"></a>

Para criar um modelo de estrutura de fluxo com conector, você precisará enviar uma `POST` solicitação para o endpoint do domínio 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 verificar se você pode acessar seu domínio OpenSearch de serviço, navegue até `https://{{your-vpc-domain}}.{{region}}.es.amazonaws.com` em um navegador da Web e verifique se você recebeu a resposta JSON padrão. (Substitua {{placeholder text}} o por seus próprios valores.

### Exemplo de cliente do Python
<a name="ml-python-sample"></a>

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 o [AWS SDK for Python ([Requests:HTTP Boto3), for Humans, e os pacotes requests-aws4auth](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ml-amazon-connector.html#connector-sagemaker-prereq)](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ml-amazon-connector.html#connector-sagemaker-prereq) 1.2.3.](https://pypi.org/project/requests-aws4auth/)

```
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)
```

#### Pre-defined modelos de fluxo de trabalho
<a name="ml-predefined"></a>

O Amazon OpenSearch Service fornece vários modelos de fluxo de trabalho para alguns casos de uso comuns de aprendizado de máquina (ML). 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 serviço, especifique o caso de uso do modelo como parâmetro de `use_case` consulta. 
+ 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
<a name="templates"></a>

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 | Description | Parâmetros necessários | 
| --- | --- | --- | 
| `bedrock_titan_embedding_model_deploy` | Cria e implanta um modelo de incorporação do Amazon Bedrock (por padrão, `titan-embed-text-v1`). | `create_connector.credential.roleArn` | 
| `bedrock_titan_embedding_model_deploy` | Cria e implanta um modelo de incorporação multimodal Amazon Bedrock (por padrão, `titan-embed-text-v1`). | `create_connector.credential.roleArn` | 
| `cohere_embedding_model_deploy` | Cria e implanta um modelo de incorporação Cohere (por padrão, embed-english-v3.0). | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `cohere_chat_model_deploy` | Cria e implanta um modelo de chat Cohere (por padrão, Cohere Command). | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `open_ai_embedding_model_deploy` | Cria e implanta um modelo de incorporação OpenAI (por padrão, text-embedding-ada-002). | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `openai_chat_model_deploy` | Cria e implanta um modelo de chat OpenAI (por padrão, gpt-3.5-turbo). | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `semantic_search_with_cohere_embedding` | Configura a pesquisa semântica e implanta um modelo de incorporação Cohere. Você deve fornecer a chave de API para o modelo Cohere. | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `semantic_search_with_cohere_embedding_query_enricher` | 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. | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `multimodal_search_with_bedrock_titan` | 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 . | `create_connector.credential.roleArn` | 

**nota**  
Para todos os modelos que exigem um ARN secreto, o padrão é armazenar o segredo com o nome de chave “chave” no AWS Secrets Manager.

## Modelos padrão com modelos pré-treinados
<a name="ml-pretrained-default"></a>

O Amazon OpenSearch Service oferece dois modelos adicionais de fluxo de trabalho padrão não disponíveis no serviço de código aberto OpenSearch .


| Caso de uso do modelo | Description | 
| --- | --- | 
| `semantic_search_with_local_model` | Configura a [pesquisa semântica](https://opensearch.org/docs/2.14/search-plugins/semantic-search/) e implanta um modelo pré-treinado (`msmarco-distilbert-base-tas-b`). Adiciona um processador de pesquisa [https://opensearch.org/docs/2.14/search-plugins/search-pipelines/neural-query-enricher/](https://opensearch.org/docs/2.14/search-plugins/search-pipelines/neural-query-enricher/) que define um ID de modelo padrão para consultas neurais e cria um índice k-NN vinculado chamado “my-nlp-index”. | 
| `hybrid_search_with_local_model` | Configura a [pesquisa híbrida](https://opensearch.org/docs/2.14/search-plugins/hybrid-search/) e implanta um modelo pré-treinado (`msmarco-distilbert-base-tas-b`). Adiciona um processador de pesquisa [https://opensearch.org/docs/2.14/search-plugins/search-pipelines/neural-query-enricher/](https://opensearch.org/docs/2.14/search-plugins/search-pipelines/neural-query-enricher/) que define um ID de modelo padrão para consultas neurais e cria um índice k-NN vinculado chamado “my-nlp-index”. | 