

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.

# Achèvement de discussion Mistral AI
<a name="model-parameters-mistral-chat-completion"></a>

L’API Mistral AI Chat completion vous permet de créer des applications conversationnelles.

**Astuce**  
Vous pouvez utiliser l’API d’achèvement de conversation Mistral AI avec les opérations d’inférence de base ([InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html) ou [InvokeModelWithResponseStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithResponseStream.html)). Toutefois, nous vous recommandons d’utiliser l’API Converse pour mettre en œuvre des messages dans votre application. L’API Converse fournit un ensemble unifié de paramètres qui fonctionnent sur tous les modèles prenant en charge les messages. Pour plus d’informations, consultez [Mener une conversation avec les opérations d’API Converse](conversation-inference.md).

Les modèles Mistral AI sont disponibles sous la [licence Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt). Pour plus d’informations sur l’utilisation des modèles Mistral AI, consultez la [documentation Mistral AI](https://docs.mistral.ai/).

**Topics**
+ [Modèles pris en charge](#mistral-supported-models-chat-completion)
+ [Demande et réponse](#model-parameters-mistral-chat-completion-request-response)

## Modèles pris en charge
<a name="mistral-supported-models-chat-completion"></a>

Vous pouvez utiliser les modèles Mistral AI suivants.
+ Mistral Large

Vous avez besoin de l’ID du modèle que vous voulez utiliser. Pour obtenir l’ID du modèle, consultez [Modèles de fondation pris en charge dans Amazon Bedrock](models-supported.md). 

## Demande et réponse
<a name="model-parameters-mistral-chat-completion-request-response"></a>

------
#### [ Request ]

Les modèles Mistral AI ont les paramètres d’inférence suivants. 

```
{
    "messages": [
        {
            "role": "system"|"user"|"assistant",
            "content": str
        },
        {
            "role": "assistant",
            "content": "",
            "tool_calls": [
                {
                    "id": str,
                    "function": {
                        "name": str,
                        "arguments": str
                    }
                }
            ]
        },
        {
            "role": "tool",
            "tool_call_id": str,
            "content": str
        }
    ],
    "tools": [
        {
            "type": "function",
            "function": {
                "name": str,
                "description": str,
                "parameters": dict
            }
        }
    ],
    "tool_choice": "auto"|"any"|"none",
    "max_tokens": int,
    "top_p": float,
    "temperature": float
}
```

Les paramètres suivants sont obligatoires.
+  **messages** : (obligatoire) les messages que vous souhaitez transmettre au modèle.
  + **role** : rôle du message. Les valeurs valides sont :
    + **system** : définit le comportement et le contexte du modèle dans la conversation. 
    + **user** : message à envoyer au modèle.
    + **assistant** : réponse du modèle.
  + **content** : contenu du message.

  ```
  [
      {
          "role": "user",
          "content": "What is the most popular song on WZPZ?"
      }
  ]
  ```

  Pour transmettre le résultat d’un outil, utilisez le format JSON avec les champs suivants.
  + **role** : rôle du message. La valeur doit être `tool`. 
  + **tool\$1call\$1id** : ID de la demande d’outil. Vous obtenez l’ID dans les champs de réponse `tool_calls` de la demande précédente. 
  + **content** : résultat de l’outil.

  L’exemple suivant illustre le résultat d’un outil qui obtient les chansons les plus populaires d’une station de radio.

  ```
  {
      "role": "tool",
      "tool_call_id": "v6RMMiRlT7ygYkT4uULjtg",
      "content": "{\"song\": \"Elemental Hotel\", \"artist\": \"8 Storey Hike\"}"
  }
  ```

Les paramètres suivants sont facultatifs.
+  **outils** : définitions des outils que le modèle peut utiliser.

  Si vous l’incluez `tools` dans votre demande, le modèle peut renvoyer un champ `tool_calls` dans le message qui représente l’utilisation de ces outils par le modèle. Vous pouvez ensuite exécuter ces outils à l’aide de l’entrée d’outil générée par le modèle, puis éventuellement renvoyer les résultats au modèle à l’aide de blocs de contenu `tool_result`.

  L’exemple suivant concerne un outil qui obtient les chansons les plus populaires d’une station de radio.

  ```
  [
      {
          "type": "function",
          "function": {
              "name": "top_song",
              "description": "Get the most popular song played on a radio station.",
              "parameters": {
                  "type": "object",
                  "properties": {
                      "sign": {
                          "type": "string",
                          "description": "The call sign for the radio station for which you want the most popular song. Example calls signs are WZPZ and WKRP."
                      }
                  },
                  "required": [
                      "sign"
                  ]
              }
          }
      }
  ]
  ```
+  **tool\$1choice** : spécifie comment les fonctions sont appelées. S’il est défini sur `none`, le modèle n’appellera pas de fonction et générera un message à la place. S’il est défini sur `auto`, le modèle peut choisir de générer un message ou d’appeler une fonction. S’il est défini sur `any`, le modèle est forcé d’appeler une fonction.
+ **max\$1tokens** : spécifiez le nombre maximum de jetons à utiliser dans la réponse générée. Le modèle tronque la réponse une fois que le texte généré dépasse `max_tokens`.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/model-parameters-mistral-chat-completion.html)
+ **temperature** : contrôle le caractère aléatoire des prédictions faites par le modèle. Pour plus d’informations, consultez [Génération de réponse d’influence à l’aide de paramètres d’inférence](inference-parameters.md).     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/model-parameters-mistral-chat-completion.html)
+ **top\$1p** : contrôle la diversité du texte généré par le modèle en définissant le pourcentage de candidats les plus probables que le modèle prend en compte pour le jeton suivant. Pour plus d’informations, consultez [Génération de réponse d’influence à l’aide de paramètres d’inférence](inference-parameters.md).    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/bedrock/latest/userguide/model-parameters-mistral-chat-completion.html)

------
#### [ Response ]

Voici la réponse `body` d’un appel `InvokeModel` :

```
{
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": str,
                "tool_calls": [...]
            },
            "stop_reason": "stop"|"length"|"tool_calls"
        }
    ]
}
```

La réponse `body` inclut les champs suivants :
+ **choices** : sortie du modèle.
  + **index** : index du message. 
  + **message** : message du modèle. 
    + **role** : rôle du message. 
    + **content** : contenu du message. 
    + **tool\$1calls** : si la valeur de `stop_reason` est `tool_calls`, ce champ contient une liste des demandes d’outils que le modèle souhaite que vous exécutiez. 
      + **id** : ID de la demande d’outil. 
      + **function** : fonction demandée par le modèle. 
        + **name** : nom de la fonction. 
        + **arguments** : arguments à transmettre à l’outil 

      Voici un exemple de demande pour un outil qui permet d’obtenir la meilleure chanson d’une station de radio.

      ```
      [
                          {
                              "id": "v6RMMiRlT7ygYkT4uULjtg",
                              "function": {
                                  "name": "top_song",
                                  "arguments": "{\"sign\": \"WZPZ\"}"
                              }
                          }
                      ]
      ```
  + **stop\$1reason** : raison pour laquelle la réponse a cessé de générer du texte. Les valeurs possibles sont :
    + **arrêt** : le modèle a fini de générer le texte pour l’invite d’entrée. Le modèle s’arrête parce qu’il n’a plus de contenu à générer ou s’il génère l’une des séquences d’arrêt que vous définissez dans le paramètre de demande `stop`.
    + **length** : la longueur des jetons pour le texte généré dépasse la valeur de `max_tokens`. La réponse est tronquée en fonction du nombre de jetons défini dans `max_tokens`. 
    + **tool\$1calls** : le modèle vous demande d’exécuter un outil.

------