

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.

# OpenSearch Plantillas de marcos de flujo de servicios
<a name="ml-workflow-framework"></a>

Las plantillas OpenSearch de Amazon Service Flow Framework te permiten automatizar tareas complejas de configuración y preprocesamiento de OpenSearch servicios al proporcionar plantillas para casos de uso comunes. Por ejemplo, puede utilizar plantillas de Flow Framework para automatizar las tareas de configuración de machine learning. Las plantillas OpenSearch de Amazon Service Flow Framework proporcionan una descripción compacta del proceso de configuración en un documento JSON o YAML. Estas plantillas describen las configuraciones de flujo de trabajo automatizadas para la generación de consultas o chats conversacionales, los conectores de IA, las herramientas, los agentes y otros componentes que preparan a OpenSearch Service para su uso interno en modelos generativos.

Las plantillas OpenSearch de Amazon Service Flow Framework se pueden personalizar para adaptarlas a tus necesidades específicas. Para ver un ejemplo de una plantilla de Flow Framework personalizada, consulte [flow-framework](https://github.com/opensearch-project/flow-framework/blob/main/sample-templates/deploy-bedrock-claude-model.json). Para ver las plantillas proporcionadas por el OpenSearch servicio, consulte plantillas [de flujo de trabajo](https://opensearch.org/docs/2.13/automating-configurations/workflow-templates/). Para obtener una documentación completa, que incluye los pasos detallados, una referencia de la API y una referencia de todos los ajustes disponibles, consulte la [automatización de la configuración](https://github.com/opensearch-project/flow-framework/blob/main/sample-templates/deploy-bedrock-claude-model.json) en la documentación de código abierto. OpenSearch 

**nota**  
Flow-framework no admite el filtrado de roles de back-end para el Servicio 2.17. OpenSearch 

# 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 conectores ML para AWS servicios, consulta [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 los paquetes [AWS SDK para Python (Boto3)](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ml-amazon-connector.html#connector-sagemaker-prereq), [Requests:HTTP for Humans](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ml-amazon-connector.html#connector-sagemaker-prereq) y [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)
```

#### Plantillas de flujo de trabajo predefinidas
<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-v 3.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\$1enricher 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\$1image\$1embedding 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`). Añade un procesador [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/)de búsqueda que establece un ID de modelo predeterminado para las consultas neuronales y crea un índice k-NN vinculado llamado ''. 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`). Añade un procesador [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/)de búsqueda que establece un ID de modelo predeterminado para las consultas neuronales y crea un índice k-NN vinculado denominado ''. my-nlp-index | 

# Configuración de permisos
<a name="flow-framework-permissions"></a>

Si crea un dominio nuevo con la versión 2.13 o una posterior, los permisos ya están en vigor. Si habilita el marco de flujo en un dominio de OpenSearch servicio preexistente con la versión 2.11 o anterior y, a continuación, lo actualiza a la versión 2.13 o posterior, debe definir la función. `flow_framework_manager` Los usuarios que no sean administradores deben estar asignados a este rol para poder administrar índices templados en los dominios mediante un control de acceso detallado. Para crear el rol `flow_framework_manager` de forma manual, siga estos pasos:

1. **En los OpenSearch paneles, vaya a **Seguridad** y elija Permisos.**

1. Seleccione **Crear grupo de acciones** y configure los siguientes grupos:     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/opensearch-service/latest/developerguide/flow-framework-permissions.html)

1. Seleccione **Roles** y, a continuación, **Crear rol**.

1. Asigne el nombre **flow\$1framework\$1manager** al rol.

1. Para **Permisos de clúster,** seleccione `flow_framework_full_access` y `flow_framework_read_access`.

1. Para **Índice**, escriba `*`.

1. Para **Permisos de índice**, seleccione `indices:admin/aliases/get`, `indices:admin/mappings/get`, y `indices_monitor`.

1. Elija **Crear**.

1. Después de crear el rol, [debe asignarlo](fgac.md#fgac-mapping) a cualquier rol de usuario o backend que administre los índices de Flow Framework.