

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Creazione di connettori ML in Service OpenSearch
<a name="ml-create"></a>

I modelli di framework di flusso di Amazon OpenSearch Service consentono di configurare e installare connettori ML utilizzando l'API create connector offerta in ml-commons. Puoi utilizzare i connettori ML per connettere OpenSearch Service ad altri AWS servizi o piattaforme di terze parti. Per ulteriori informazioni su questo argomento, consulta [Creazione di connettori per piattaforme ML di terze parti](https://opensearch.org/docs/2.13/ml-commons-plugin/remote-models/connectors/). L'API del framework di flusso di Amazon OpenSearch Service consente di automatizzare le attività di configurazione e preelaborazione del OpenSearch servizio e può essere utilizzata per creare connettori ML. 

Prima di poter creare un connettore in OpenSearch Service, devi fare quanto segue:
+ Crea un dominio Amazon SageMaker AI.
+ Crea un ruolo IAM.
+ Configura l'autorizzazione al pass role.
+ Mappa i ruoli flow-framework e ml-commons nelle dashboard. OpenSearch 

Per ulteriori informazioni su come configurare i connettori ML per AWS i servizi, consulta i [connettori ML OpenSearch di Amazon Service per AWS i servizi](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ml-amazon-connector.html#connector-sagemaker-prereq). Per ulteriori informazioni sull'utilizzo dei connettori OpenSearch Service ML con piattaforme di terze parti, consulta [Connettori Amazon OpenSearch Service ML per piattaforme di terze parti](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ml-amazon-connector.html#connector-sagemaker-prereq).

## Creazione di un connettore tramite un servizio flow-framework
<a name="ml-workflow"></a>

Per creare un modello di flow-framework con connettore, è necessario inviare una `POST` richiesta all'endpoint del dominio di servizio. OpenSearch Puoi usare cURL, un client Python di esempio, Postman o un altro metodo per inviare una richiesta firmata. La `POST` richiesta ha il seguente 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 il tuo dominio risiede in un cloud privato virtuale (Amazon VPC), devi essere connesso ad Amazon VPC affinché la richiesta crei correttamente il connettore AI. L'accesso a un Amazon VPC varia in base alla configurazione di rete, ma di solito comporta la connessione a una VPN o a una rete aziendale. Per verificare di poter accedere al dominio del OpenSearch servizio, accedi a `https://{{your-vpc-domain}}.{{region}}.es.amazonaws.com` In un browser Web e verifica di ricevere la risposta JSON predefinita. ({{placeholder text}}Sostituiscili con i tuoi valori.

### Client Python di esempio
<a name="ml-python-sample"></a>

Il client Python è più semplice da automatizzare rispetto a una `HTTP` richiesta e ha una migliore riutilizzabilità. Per creare il connettore AI con il client Python, salva il seguente codice di esempio in un file Python. [Il client richiede i pacchetti [AWS SDK for Python (Requests:HTTP Boto3), for Humans](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ml-amazon-connector.html#connector-sagemaker-prereq)[e requests-aws4auth](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 modelli di flusso di lavoro
<a name="ml-predefined"></a>

Amazon OpenSearch Service fornisce diversi modelli di flusso di lavoro per alcuni casi d'uso comuni di machine learning (ML). L'utilizzo di un modello semplifica le configurazioni complesse e fornisce molti valori predefiniti per casi d'uso come la ricerca semantica o conversazionale. Puoi specificare un modello di workflow quando chiami l'API Create Workflow.
+ Per utilizzare un modello di workflow fornito dal OpenSearch servizio, specifica il caso d'uso del modello come parametro di `use_case` query. 
+ Per utilizzare un modello di workflow personalizzato, inserisci il modello completo nel corpo della richiesta. Per un esempio di modello personalizzato, vedi un esempio di modello JSON o un modello YAML di esempio.

#### Casi d'uso dei modelli
<a name="templates"></a>

Questa tabella fornisce una panoramica dei diversi modelli disponibili, una descrizione dei modelli e i parametri richiesti.


| Caso d'uso del modello | Description | Parametri obbligatori | 
| --- | --- | --- | 
| `bedrock_titan_embedding_model_deploy` | Crea e distribuisce un modello di incorporamento Amazon Bedrock (per impostazione predefinita, `titan-embed-text-v1` | `create_connector.credential.roleArn` | 
| `bedrock_titan_embedding_model_deploy` | Crea e distribuisce un modello di incorporamento multimodale Amazon Bedrock (per impostazione predefinita, `titan-embed-text-v1` | `create_connector.credential.roleArn` | 
| `cohere_embedding_model_deploy` | Crea e distribuisce un modello di incorporamento Cohere (per impostazione predefinita, embed-english-v3.0). | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `cohere_chat_model_deploy` | Crea e distribuisce un modello di chat Cohere (per impostazione predefinita, Cohere Command). | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `open_ai_embedding_model_deploy` | Crea e distribuisce un modello di incorporamento OpenAI (per impostazione predefinita, text-embedding-ada-002). | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `openai_chat_model_deploy` | Crea e distribuisce un modello di chat OpenAI (per impostazione predefinita, gpt-3.5-turbo). | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `semantic_search_with_cohere_embedding` | Configura la ricerca semantica e implementa un modello di incorporamento Cohere. È necessario fornire la chiave API per il modello Cohere. | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `semantic_search_with_cohere_embedding_query_enricher` | Configura la ricerca semantica e implementa un modello di incorporamento Cohere. Aggiunge un processore di ricerca query\_enricher che imposta un ID modello predefinito per le query neurali. È necessario fornire la chiave API per il modello Cohere. | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `multimodal_search_with_bedrock_titan` | Implementa un modello multimodale Amazon Bedrock e configura una pipeline di ingestione con un processore text\_image\_embedding e un indice k-NN per la ricerca multimodale. Devi AWS fornire le tue credenziali. | `create_connector.credential.roleArn` | 

**Nota**  
Per tutti i modelli che richiedono un ARN segreto, l'impostazione predefinita prevede l'archiviazione del segreto con il nome chiave «key» in AWS Secrets Manager.

## Modelli predefiniti con modelli preaddestrati
<a name="ml-pretrained-default"></a>

Amazon OpenSearch Service offre due modelli di flusso di lavoro predefiniti aggiuntivi non disponibili nel servizio opensource OpenSearch .


| Caso d'uso del modello | Description | 
| --- | --- | 
| `semantic_search_with_local_model` | Configura la [ricerca semantica](https://opensearch.org/docs/2.14/search-plugins/semantic-search/) e distribuisce un modello preaddestrato (). `msmarco-distilbert-base-tas-b` Aggiunge un processore [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/)di ricerca che imposta un ID modello predefinito per le query neurali e crea un indice k-NN collegato chiamato 'my-nlp-index'. | 
| `hybrid_search_with_local_model` | [Configura la ricerca](https://opensearch.org/docs/2.14/search-plugins/hybrid-search/) `msmarco-distilbert-base-tas-b` ibrida e distribuisce un modello preaddestrato (). Aggiunge un processore [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/)di ricerca che imposta un ID modello predefinito per le query neurali e crea un indice k-NN collegato chiamato 'my-nlp-index'. | 