Creación de conectores ML en Service OpenSearch - OpenSearch Servicio Amazon

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

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. 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. 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.

Creación de un conector mediante un servicio flow-framework

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.

Cliente Python de muestra

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), Requests:HTTP for Humans y 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)

Plantillas de flujo de trabajo predefinidas

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

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 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_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. 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 el administrador de AWS secretos.

Plantillas predeterminadas con modelos entrenados previamente

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 Descripción

semantic_search_with_local_model

Configura la búsqueda semántica e implementa un modelo entrenado previamente (msmarco-distilbert-base-tas-b). Añade un procesador neural_query_enricherde 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 e implementa un modelo entrenado previamente (msmarco-distilbert-base-tas-b). Añade un procesador neural_query_enricherde búsqueda que establece un ID de modelo predeterminado para las consultas neuronales y crea un índice k-NN vinculado denominado ''. my-nlp-index