

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# OpenSearch Modèles de framework de flux de services
<a name="ml-workflow-framework"></a>

Les modèles de framework Amazon OpenSearch Service Flow vous permettent d'automatiser les tâches complexes de configuration et de prétraitement des OpenSearch services en fournissant des modèles pour les cas d'utilisation courants. Par exemple, vous pouvez utiliser des modèles de structure de flux pour automatiser les tâches de configuration du machine learning. Les modèles de framework Amazon OpenSearch Service Flow fournissent une description compacte du processus de configuration dans un document JSON ou YAML. Ces modèles décrivent les configurations de flux de travail automatisés pour le chat conversationnel ou la génération de requêtes, les connecteurs AI, les outils, les agents et les autres composants qui préparent le OpenSearch service à une utilisation en backend pour les modèles génératifs.

Les modèles de framework Amazon OpenSearch Service Flow peuvent être personnalisés pour répondre à vos besoins spécifiques. Pour voir un exemple de modèle de structure de flux personnalisé, voir [flow-framework](https://github.com/opensearch-project/flow-framework/blob/main/sample-templates/deploy-bedrock-claude-model.json). Pour les modèles fournis par le OpenSearch service, voir modèles [de flux de travail](https://opensearch.org/docs/2.13/automating-configurations/workflow-templates/). Pour une documentation complète, y compris les étapes détaillées, une référence d'API et une référence de tous les paramètres disponibles, consultez la section [Automatisation de la configuration](https://github.com/opensearch-project/flow-framework/blob/main/sample-templates/deploy-bedrock-claude-model.json) dans la OpenSearch documentation open source.

**Note**  
Flow-framework ne prend pas en charge le filtrage des rôles principaux pour OpenSearch le Service 2.17.

# Création de connecteurs ML dans OpenSearch Service
<a name="ml-create"></a>

Les modèles de framework Amazon OpenSearch Service Flow vous permettent de configurer et d'installer des connecteurs ML à l'aide de l'API de création de connecteurs proposée dans ml-commons. Vous pouvez utiliser les connecteurs ML pour connecter le OpenSearch service à d'autres AWS services ou à des plateformes tierces. Pour plus d'informations à ce sujet, consultez [Création de connecteurs pour des plateformes ML tierces](https://opensearch.org/docs/2.13/ml-commons-plugin/remote-models/connectors/). L'API Amazon OpenSearch Service Flow Framework vous permet d'automatiser les tâches de configuration et de prétraitement du OpenSearch service et peut être utilisée pour créer des connecteurs ML. 

Avant de créer un connecteur dans OpenSearch Service, vous devez effectuer les opérations suivantes :
+ Créez un domaine Amazon SageMaker AI.
+ Créez un rôle IAM.
+ Configurez l'autorisation du rôle de passe.
+ Mappez les rôles flow-framework et ml-commons dans les tableaux de bord. OpenSearch 

Pour plus d'informations sur la configuration des connecteurs ML pour les AWS services, consultez la section [Connecteurs ML Amazon OpenSearch Service pour les AWS services](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ml-amazon-connector.html#connector-sagemaker-prereq). Pour en savoir plus sur l'utilisation des connecteurs OpenSearch Service ML avec des plateformes tierces, consultez la section [Connecteurs Amazon OpenSearch Service ML pour plateformes tierces](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ml-amazon-connector.html#connector-sagemaker-prereq).

## Création d'un connecteur via un service Flow-Framework
<a name="ml-workflow"></a>

Pour créer un modèle de framework de flux avec connecteur, vous devez envoyer une `POST` demande au point de terminaison de votre domaine OpenSearch de service. Vous pouvez utiliser cURL, un exemple de client Python, Postman ou une autre méthode pour envoyer une demande signée. La `POST` demande prend le format suivant :

```
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 votre domaine réside dans un cloud privé virtuel (Amazon VPC), vous devez être connecté à Amazon VPC pour que la demande puisse créer correctement le connecteur AI. L'accès à un Amazon VPC varie en fonction de la configuration du réseau, mais implique généralement de se connecter à un VPN ou à un réseau d'entreprise. Pour vérifier que vous pouvez accéder à votre domaine de OpenSearch service, accédez `https://your-vpc-domain.region.es.amazonaws.com` à un navigateur Web et vérifiez que vous recevez la réponse JSON par défaut. (*placeholder text*Remplacez-les par vos propres valeurs.

### Exemple de client Python
<a name="ml-python-sample"></a>

Le client Python est plus simple à automatiser qu'une `HTTP` requête et offre une meilleure réutilisabilité. Pour créer le connecteur AI avec le client Python, enregistrez l'exemple de code suivant dans un fichier Python. [Le client a besoin des packages [AWS SDK for Python (Boto3), requests:HTTP for Humans](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ml-amazon-connector.html#connector-sagemaker-prereq)[et requests-aws4auth 1.2.3](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ml-amazon-connector.html#connector-sagemaker-prereq).](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)
```

#### Modèles de flux de travail prédéfinis
<a name="ml-predefined"></a>

Amazon OpenSearch Service fournit plusieurs modèles de flux de travail pour certains cas d'utilisation courants du machine learning (ML). L'utilisation d'un modèle simplifie les configurations complexes et fournit de nombreuses valeurs par défaut pour des cas d'utilisation tels que la recherche sémantique ou conversationnelle. Vous pouvez spécifier un modèle de flux de travail lorsque vous appelez l'API Create Workflow.
+ Pour utiliser un modèle de flux de travail fourni par le OpenSearch service, spécifiez le cas d'utilisation du modèle comme paramètre de `use_case` requête. 
+ Pour utiliser un modèle de flux de travail personnalisé, fournissez le modèle complet dans le corps de la demande. Pour un exemple de modèle personnalisé, consultez un exemple de modèle JSON ou un exemple de modèle YAML.

#### Cas d'utilisation des modèles
<a name="templates"></a>

Ce tableau fournit une vue d'ensemble des différents modèles disponibles, une description des modèles et les paramètres requis.


| Cas d'utilisation du modèle | Description | Paramètres requis | 
| --- | --- | --- | 
| `bedrock_titan_embedding_model_deploy` | Crée et déploie un modèle d'intégration Amazon Bedrock (par défaut, `titan-embed-text-v1` | `create_connector.credential.roleArn` | 
| `bedrock_titan_embedding_model_deploy` | Crée et déploie un modèle d'intégration multimodal Amazon Bedrock (par défaut, `titan-embed-text-v1` | `create_connector.credential.roleArn` | 
| `cohere_embedding_model_deploy` | Crée et déploie un modèle d'intégration Cohere (par défaut, embed-english-v 3.0). | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `cohere_chat_model_deploy` | Crée et déploie un modèle de chat Cohere (par défaut, Cohere Command). | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `open_ai_embedding_model_deploy` | Crée et déploie un modèle d'intégration OpenAI (par défaut text-embedding-ada, -002). | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `openai_chat_model_deploy` | Crée et déploie un modèle de chat OpenAI (par défaut, gpt-3.5-turbo). | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `semantic_search_with_cohere_embedding` | Configure la recherche sémantique et déploie un modèle d'intégration Cohere. Vous devez fournir la clé d'API pour le modèle Cohere. | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `semantic_search_with_cohere_embedding_query_enricher` | Configure la recherche sémantique et déploie un modèle d'intégration Cohere. Ajoute un processeur de recherche query\$1enricher qui définit un ID de modèle par défaut pour les requêtes neuronales. Vous devez fournir la clé d'API pour le modèle Cohere. | `create_connector.credential.roleArn`, `create_connector.credential.secretArn` | 
| `multimodal_search_with_bedrock_titan` | Déploie un modèle multimodal Amazon Bedrock et configure un pipeline d'ingestion avec un processeur text\$1image\$1embedding et un index K-nn pour la recherche multimodale. Vous devez fournir vos AWS informations d'identification. | `create_connector.credential.roleArn` | 

**Note**  
Pour tous les modèles qui nécessitent un ARN secret, le secret est stocké par défaut sous le nom de clé « key » dans AWS Secrets Manager.

## Modèles par défaut avec modèles préentraînés
<a name="ml-pretrained-default"></a>

Amazon OpenSearch Service propose deux modèles de flux de travail par défaut supplémentaires qui ne sont pas disponibles dans le service open OpenSearch source.


| Cas d'utilisation du modèle | Description | 
| --- | --- | 
| `semantic_search_with_local_model` | Configure la [recherche sémantique](https://opensearch.org/docs/2.14/search-plugins/semantic-search/) et déploie un modèle préentraîné (). `msmarco-distilbert-base-tas-b` Ajoute un processeur [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 recherche qui définit un ID de modèle par défaut pour les requêtes neuronales et crée un index K-nn lié appelé « my-nlp-index ». | 
| `hybrid_search_with_local_model` | Configure la [recherche hybride](https://opensearch.org/docs/2.14/search-plugins/hybrid-search/) et déploie un modèle préentraîné (). `msmarco-distilbert-base-tas-b` Ajoute un processeur [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 recherche qui définit un ID de modèle par défaut pour les requêtes neuronales et crée un index K-nn lié appelé « my-nlp-index ». | 

# Configurer les autorisations
<a name="flow-framework-permissions"></a>

Si vous créez un nouveau domaine avec la version 2.13 ou ultérieure, les autorisations sont déjà en place. Si vous activez l'infrastructure de flux sur un domaine de OpenSearch service préexistant avec la version 2.11 ou antérieure que vous mettez ensuite à niveau vers la version 2.13 ou ultérieure, vous devez définir le rôle. `flow_framework_manager` Les utilisateurs non-administrateurs doivent être mappés à ce rôle pour gérer les index à chaud des domaines utilisant le contrôle précis des accès. Pour créer manuellement le rôle `flow_framework_manager`, procédez comme suit :

1. Dans les OpenSearch tableaux de bord, accédez à **Sécurité**, puis sélectionnez **Autorisations**.

1. Choisissez **Create action group (Créer un groupe d'actions)** et configurez les groupes suivants :     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/opensearch-service/latest/developerguide/flow-framework-permissions.html)

1. Choisissez **Roles (Rôles)**, puis **Create role (Créer un rôle)**.

1. Nommez le rôle **flow\$1framework\$1manager**.

1. Pour **Cluster permissions (Autorisations de cluster), **sélectionnez `flow_framework_full_access` et`flow_framework_read_access`.

1. Pour **Index**, saisissez `*`.

1. Pour **Index permissions (Autorisations d'index)**, sélectionnez `indices:admin/aliases/get`, `indices:admin/mappings/get` et `indices_monitor`.

1. Choisissez **Créer**.

1. Après avoir créé le rôle, [associez-le](fgac.md#fgac-mapping) à n'importe quel rôle d'utilisateur ou de backend qui gérera les index de la structure de flux.