Achèvement de discussion Mistral AI - Amazon Bedrock

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

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 ou InvokeModelWithResponseStream). 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.

Les modèles Mistral AI sont disponibles sous la licence Apache 2.0. Pour plus d’informations sur l’utilisation des modèles Mistral AI, consultez la documentation Mistral AI.

Modèles pris en charge

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.

Demande et réponse

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_call_id : 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_choice : 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_tokens : 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.

    Par défaut Minimum Maximum

    Mistral Large : 8 192

    1

    Mistral Large : 8 192

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

    Par défaut Minimum Maximum

    Mistral Large : 0,7

    0

    1

  • top_p : 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.

    Par défaut Minimum Maximum

    Mistral Large : 1

    0

    1

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_calls : 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_reason : 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_calls : le modèle vous demande d’exécuter un outil.