

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Creación de conectores ML en Service OpenSearch
<a name="ml-create"></a>

Las plantillas OpenSearch de Amazon Service Flow Framework permiten configurar e instalar conectores ML mediante la API de creación de conectores que se ofrece en ml-commons. Puede utilizar los conectores ML para conectar el OpenSearch Servicio a otros AWS servicios o plataformas de terceros. Para obtener más información al respecto, consulte [Creating connectors for third-party ML platforms](https://opensearch.org/docs/2.13/ml-commons-plugin/remote-models/connectors/). La API del marco de flujo de Amazon OpenSearch OpenSearch Service te permite automatizar las tareas de configuración y preprocesamiento del servicio y se puede utilizar para crear conectores ML. 

Antes de poder crear un conector en OpenSearch Service, debe hacer lo siguiente:
+ Crea un dominio de Amazon SageMaker AI.
+ Crear un rol de IAM.
+ Configure el permiso para transferir roles.
+ Mapee las funciones de flow-framework y ml-commons en los paneles. OpenSearch 

Para obtener más información sobre cómo configurar los conectores ML para AWS los servicios, consulta los [conectores ML de Amazon OpenSearch Service para AWS servicios](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ml-amazon-connector.html#connector-sagemaker-prereq). Para obtener más información sobre el uso de conectores de OpenSearch Service ML con plataformas de terceros, consulte [Conectores de Amazon OpenSearch Service ML para plataformas de terceros](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ml-amazon-connector.html#connector-sagemaker-prereq).

## Creación de un conector mediante un servicio flow-framework
<a name="ml-workflow"></a>

Para crear una plantilla de marco de flujo con un conector, tendrás que enviar una `POST` solicitud al punto de enlace de tu dominio de OpenSearch servicio. Puede usar cURL, un cliente Python de muestra, Postman u otro método para enviar una solicitud firmada. La solicitud `POST` tiene el siguiente 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"
            }
          }
        }
      ]
    }
  }
}
```

Si el dominio reside en una nube privada virtual (Amazon VPC), debe haberse conectado a la Amazon VPC para que la solicitud cree correctamente el conector de IA. El acceso a una Amazon VPC depende de la configuración de red, pero generalmente implica conectarse a una VPN o una red corporativa. Para comprobar que puedes acceder a tu dominio de OpenSearch servicio, navega `https://{{your-vpc-domain}}.{{region}}.es.amazonaws.com` en un navegador web y comprueba que recibes la respuesta JSON predeterminada. ({{placeholder text}}Sustitúyalos por sus propios valores.

### Cliente Python de muestra
<a name="ml-python-sample"></a>

El cliente de Python es más simple de automatizar que una solicitud `HTTP` y tiene una mejor reutilización. Para crear el conector de IA con el cliente Python, guarde el siguiente código de ejemplo en un archivo Python. [El cliente requiere el [AWS SDK para los paquetes Python (Boto3), [Requests:HTTP for Humans](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ml-amazon-connector.html#connector-sagemaker-prereq) y](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ml-amazon-connector.html#connector-sagemaker-prereq) requests-aws4auth 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 plantillas de flujo de trabajo
<a name="ml-predefined"></a>

Amazon OpenSearch Service proporciona varias plantillas de flujo de trabajo para algunos casos de uso habituales del aprendizaje automático (ML). El uso de una plantilla simplifica las configuraciones complejas y proporciona muchos valores predeterminados para casos de uso como la búsqueda semántica o conversacional. Puede especificar una plantilla de flujo de trabajo al llamar a la API Create Workflow.
+ Para usar una plantilla de flujo de trabajo proporcionada por el OpenSearch servicio, especifique el caso de uso de la plantilla como parámetro de `use_case` consulta. 
+ Para usar una plantilla de flujo de trabajo personalizada, proporcione la plantilla completa en el cuerpo de la solicitud. Para ver un ejemplo de plantilla personalizada, consulte un ejemplo de plantilla JSON o un ejemplo de plantilla YAML.

#### Casos de uso de plantillas
<a name="templates"></a>

Esta tabla proporciona información general de las diferentes plantillas disponibles, una descripción de las plantillas y los parámetros necesarios.


| Caso de uso de plantillas | Description (Descripción) | Parámetros requeridos | 
| --- | --- | --- | 
| `bedrock_titan_embedding_model_deploy` | Crea e implementa un modelo de incrustación de Amazon Bedrock (de forma predeterminada, `titan-embed-text-v1`) | `create_connector.credential.roleArn` | 
| `bedrock_titan_embedding_model_deploy` | Crea e implementa un modelo de incrustación multimodal de Amazon Bedrock (de forma predeterminada, `titan-embed-text-v1`) | `create_connector.credential.roleArn` | 
| `cohere_embedding_model_deploy` | Crea e implementa un modelo de incrustación de Cohere (de forma predeterminada, embed-english-v3.0). | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `cohere_chat_model_deploy` | Crea e implementa un modelo de chat de Cohere (de forma predeterminada, Cohere Command). | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `open_ai_embedding_model_deploy` | Crea e implementa un modelo de incrustación de OpenAI (de forma predeterminada, text-embedding-ada-002). | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `openai_chat_model_deploy` | Crea e implementa un modelo de chat de OpenAI (por defecto, gpt-3.5-turbo). | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `semantic_search_with_cohere_embedding` | Configura la búsqueda semántica e implementa un modelo de incrustación de Cohere. Debe proporcionar la clave de API para el modelo de Cohere. | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `semantic_search_with_cohere_embedding_query_enricher` | Configura la búsqueda semántica e implementa un modelo de incrustación de Cohere. Agrega un procesador de búsqueda query\_enricher que establece un ID de modelo predeterminado para las consultas neuronales. Debe proporcionar la clave de API para el modelo de Cohere. | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `multimodal_search_with_bedrock_titan` | Implementa un modelo multimodal de Amazon Bedrock y configura una canalización de ingesta con un procesador text\_image\_embedding y un índice k-NN para la búsqueda multimodal. Debe proporcionar sus credenciales de AWS . | `create_connector.credential.roleArn` | 

**nota**  
Para todas las plantillas que requieren un ARN secreto, lo predeterminado es almacenar el secreto con el nombre de clave «clave» en AWS Secrets Manager.

## Plantillas predeterminadas con modelos entrenados previamente
<a name="ml-pretrained-default"></a>

Amazon OpenSearch Service ofrece dos plantillas de flujo de trabajo predeterminadas adicionales que no están disponibles en el servicio de código abierto OpenSearch .


| Caso de uso de plantillas | Description (Descripción) | 
| --- | --- | 
| `semantic_search_with_local_model` | Configura la [búsqueda semántica](https://opensearch.org/docs/2.14/search-plugins/semantic-search/) e implementa un modelo entrenado previamente (`msmarco-distilbert-base-tas-b`). Agrega un procesador de búsqueda [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 establece un ID de modelo predeterminado para las consultas neuronales y crea un índice k-NN vinculado denominado “my-nlp-index”. | 
| `hybrid_search_with_local_model` | Configura la [búsqueda híbrida](https://opensearch.org/docs/2.14/search-plugins/hybrid-search/) e implementa un modelo entrenado previamente (`msmarco-distilbert-base-tas-b`). Agrega un procesador de búsqueda [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 establece un ID de modelo predeterminado para las consultas neuronales y crea un índice k-NN vinculado denominado “my-nlp-index”. | 