Mistral AIcomplétion du texte - 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.

Mistral AIcomplétion du texte

L'API de saisie de Mistral AI texte vous permet de générer du texte à l'aide d'un Mistral AI modèle.

Vous envoyez des demandes d'inférence aux Mistral AI modèles avec InvokeModelou InvokeModelWithResponseStream (streaming).

Mistral AIles modèles sont disponibles sous licence Apache 2.0. Pour plus d'informations sur l'utilisation Mistral AI des modèles, consultez la Mistral AIdocumentation.

Modèles pris en charge

Vous pouvez utiliser les Mistral AI modèles suivants.

  • Mistral 7B Instruct

  • Mixtral 8X7B Instruct

  • Mistral Large

  • Mistral Small

Vous avez besoin de l’ID du modèle que vous voulez utiliser. Pour obtenir l'ID du modèle, voirModèle Amazon Bedrock IDs.

Demande et réponse

Request

Les Mistral AI modèles possèdent les paramètres d'inférence suivants.

{ "prompt": string, "max_tokens" : int, "stop" : [string], "temperature": float, "top_p": float, "top_k": int }

Les paramètres suivants sont obligatoires.

  • prompt — (Obligatoire) L'invite que vous souhaitez transmettre au modèle, comme indiqué dans l'exemple suivant.

    <s>[INST] What is your favourite condiment? [/INST]

    L'exemple suivant montre comment formater une invite à plusieurs tours.

    <s>[INST] What is your favourite condiment? [/INST] Well, I'm quite partial to a good squeeze of fresh lemon juice. It adds just the right amount of zesty flavour to whatever I'm cooking up in the kitchen!</s> [INST] Do you have mayonnaise recipes? [/INST]

    Le texte du rôle d'utilisateur se trouve à l'intérieur [INST]...[/INST] des jetons, le texte extérieur est le rôle d'assistant. Le début et la fin d'une chaîne sont représentés par les jetons <s> (début de chaîne) et </s> (fin de chaîne). Pour plus d'informations sur l'envoi d'une invite de chat dans le format correct, voir Modèle de chat dans la Mistral AI documentation.

Les paramètres suivants sont facultatifs.

  • 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 7B Instruct— 512

    Mixtral 8X7B Instruct— 512

    Mistral Large— 8 192

    Mistral Small— 8 192

    1

    Mistral 7B Instruct— 8 192

    Mixtral 8X7B Instruct— 4 096

    Mistral Large— 8 192

    Mistral Small— 8 192

  • stop — Liste de séquences d'arrêt qui, si elles sont générées par le modèle, empêchent le modèle de générer d'autres sorties.

    Par défaut Minimum Maximum

    0

    0 USD

    10

  • température — Contrôle le caractère aléatoire des prédictions faites par le modèle. Pour plus d’informations, consultez Influencez la génération de réponses avec des paramètres d'inférence.

    Par défaut Minimum Maximum

    Mistral 7B Instruct— 0,5

    Mixtral 8X7B Instruct— 0,5

    Mistral Large— 0,7

    Mistral Small— 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 Influencez la génération de réponses avec des paramètres d'inférence.

    Par défaut Minimum Maximum

    Mistral 7B Instruct— 0,9

    Mixtral 8X7B Instruct— 0,9

    Mistral Large— 1

    Mistral Small— 1

    0

    1

  • top_k — Contrôle le nombre de candidats les plus probables que le modèle prend en compte pour le jeton suivant. Pour plus d’informations, consultez Influencez la génération de réponses avec des paramètres d'inférence.

    Par défaut Minimum Maximum

    Mistral 7B Instruct— 50

    Mixtral 8X7B Instruct— 50

    Mistral Large— handicapé

    Mistral Small— handicapé

    1

    200

Response

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

{ "outputs": [ { "text": string, "stop_reason": string } ] }

La réponse body inclut les champs suivants :

  • sorties — Liste des sorties du modèle. Chaque sortie comporte les champs suivants.

    • text — Le texte généré par le modèle.

    • stop_reason — La 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 stop requête.

      • longueur : la longueur des jetons pour le texte généré dépasse la valeur de max_tokens dans l’appel InvokeModel (InvokeModelWithResponseStream, si vous diffusez une sortie). La réponse est tronquée en fonction du nombre de jetons défini dans max_tokens.

Exemple de code

Cet exemple montre comment appeler le Mistral 7B Instruct modèle.

# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 """ Shows how to generate text using a Mistral AI model. """ import json import logging import boto3 from botocore.exceptions import ClientError logger = logging.getLogger(__name__) logging.basicConfig(level=logging.INFO) def generate_text(model_id, body): """ Generate text using a Mistral AI model. Args: model_id (str): The model ID to use. body (str) : The request body to use. Returns: JSON: The response from the model. """ logger.info("Generating text with Mistral AI model %s", model_id) bedrock = boto3.client(service_name='bedrock-runtime') response = bedrock.invoke_model( body=body, modelId=model_id ) logger.info("Successfully generated text with Mistral AI model %s", model_id) return response def main(): """ Entrypoint for Mistral AI example. """ logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s") try: model_id = 'mistral.mistral-7b-instruct-v0:2' prompt = """<s>[INST] In Bash, how do I list all text files in the current directory (excluding subdirectories) that have been modified in the last month? [/INST]""" body = json.dumps({ "prompt": prompt, "max_tokens": 400, "temperature": 0.7, "top_p": 0.7, "top_k": 50 }) response = generate_text(model_id=model_id, body=body) response_body = json.loads(response.get('body').read()) outputs = response_body.get('outputs') for index, output in enumerate(outputs): print(f"Output {index + 1}\n----------") print(f"Text:\n{output['text']}\n") print(f"Stop reason: {output['stop_reason']}\n") except ClientError as err: message = err.response["Error"]["Message"] logger.error("A client error occurred: %s", message) print("A client error occured: " + format(message)) else: print(f"Finished generating text with Mistral AI model {model_id}.") if __name__ == "__main__": main()