Creación de conectores de ML en OpenSearch Service
Las plantillas de Flow Framework de Amazon OpenSearch Service le permiten configurar e instalar conectores de ML mediante la API de creación de conectores que se ofrece en ml-commons. Puede usar conectores de ML para conectar OpenSearch Service a otros servicios de AWS o plataformas de terceros. Para obtener más información al respecto, consulte Creating connectors for third-party ML platforms
Antes de poder crear un conector en OpenSearch Service, debe hacer lo siguiente:
-
Cree un dominio de Amazon SageMaker AI.
-
Crear un rol de IAM.
-
Configure el permiso para transferir roles.
-
Asigne los roles de flow-framework y ml-commons en los paneles de OpenSearch.
Para obtener más información sobre cómo configurar conectores de ML para servicios de AWS, consulte Amazon OpenSearch Service ML connectors for AWS services. Para obtener más información sobre el uso de los conectores de ML de OpenSearch Service con plataformas de terceros, consulte Amazon OpenSearch Service ML connectors for third-party platforms.
Creación de un conector mediante un servicio flow-framework
Para crear una plantilla de flow-framework con un conector, tendrá que enviar una solicitud POST al punto de conexión de su dominio de OpenSearch Service. 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 tiene acceso al dominio de OpenSearch Service, diríjase a https:// en un navegador web y compruebe que recibe la respuesta JSON predeterminada. Reemplace el your-vpc-domain.region.es.amazonaws.com.rproxy.govskope.catexto de marcador con sus propios valores.
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 de machine learning (ML) comunes. 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 OpenSearch Service, especifique el caso de uso de la plantilla como parámetro de consulta
use_case. -
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 |
|---|---|---|
|
Crea e implementa un modelo de incrustación de Amazon Bedrock (de forma predeterminada, |
|
|
Crea e implementa un modelo de incrustación multimodal de Amazon Bedrock (de forma predeterminada, |
|
|
Crea e implementa un modelo de incrustación de Cohere (de forma predeterminada, embed-english-v3.0). |
|
|
Crea e implementa un modelo de chat de Cohere (de forma predeterminada, Cohere Command). |
|
|
Crea e implementa un modelo de incrustación de OpenAI (de forma predeterminada, text-embedding-ada-002). |
|
|
Crea e implementa un modelo de chat de OpenAI (por defecto, gpt-3.5-turbo). |
|
|
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. |
|
|
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. |
|
|
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. |
|
nota
Para todas las plantillas que requieren un ARN de secreto, la opción predeterminada es almacenar el secreto con el nombre de clave “key” en AWS Secrets Manager.
Plantillas predeterminadas con modelos entrenados previamente
Amazon OpenSearch Service ofrece dos plantillas de flujo de trabajo predeterminadas adicionales que no están disponibles en OpenSearch Service de código abierto.
| Caso de uso de plantillas | Descripción |
|---|---|
|
Configura la búsqueda semántica |
|
Configura la búsqueda híbrida |