Mistral AIcompletamento del testo - Amazon Bedrock

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

Mistral AIcompletamento del testo

L'API di completamento del Mistral AI testo consente di generare testo con un Mistral AI modello.

Fai richieste di inferenza ai Mistral AI modelli con InvokeModelo InvokeModelWithResponseStream (streaming).

Mistral AIi modelli sono disponibili con la licenza Apache 2.0. Per ulteriori informazioni sull'uso dei Mistral AI modelli, consulta la Mistral AIdocumentazione.

Modelli supportati

È possibile utilizzare i seguenti Mistral AI modelli.

  • Mistral 7B Instruct

  • Mixtral 8X7B Instruct

  • Mistral Large

  • Mistral Small

È necessario l'ID modello per il modello che desideri utilizzare. Per ottenere l'ID del modello, consultaModello Amazon Bedrock IDs.

Richiesta e risposta

Request

I Mistral AI modelli hanno i seguenti parametri di inferenza.

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

I seguenti sono parametri obbligatori.

  • prompt — (Obbligatorio) Il prompt che desiderate passare al modello, come illustrato nell'esempio seguente.

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

    L'esempio seguente mostra come formattare un prompt a turni multipli.

    <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]

    Il testo per il ruolo utente si trova all'interno dei [INST]...[/INST] token, il testo esterno è il ruolo di assistente. L'inizio e la fine di una stringa sono rappresentati dai token <s> (inizio della stringa) e </s> (fine della stringa). Per informazioni sull'invio di un messaggio di chat nel formato corretto, consulta Modello di chat nella Mistral AI documentazione.

I seguenti sono parametri opzionali.

  • max_tokens — Specificate il numero massimo di token da utilizzare nella risposta generata. Il modello tronca la risposta se il testo generato supera max_tokens.

    Predefinita Minimo Massimo

    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 — Un elenco di sequenze di interruzioni che, se generate dal modello, impediscono al modello di generare ulteriore output.

    Predefinita Minimo Massimo

    0

    0

    10

  • temperatura: controlla la casualità delle previsioni fatte dal modello. Per ulteriori informazioni, consulta Influenza la generazione della risposta con parametri di inferenza.

    Predefinita Minimo Massimo

    Mistral 7B Instruct— 0,5

    Mixtral 8X7B Instruct— 0,5

    Mistral Large— 0,7

    Mistral Small— 0,7

    0

    1

  • top_p — Controlla la diversità del testo generato dal modello impostando la percentuale di candidati più probabili che il modello considera per il token successivo. Per ulteriori informazioni, consulta Influenza la generazione della risposta con parametri di inferenza.

    Predefinita Minimo Massimo

    Mistral 7B Instruct— 0,9

    Mixtral 8X7B Instruct— 0,9

    Mistral Large— 1

    Mistral Small— 1

    0

    1

  • top_k — Controlla il numero di candidati più probabili che il modello considera per il token successivo. Per ulteriori informazioni, consulta Influenza la generazione della risposta con parametri di inferenza.

    Predefinita Minimo Massimo

    Mistral 7B Instruct— 50

    Mixtral 8X7B Instruct— 50

    Mistral Large— disabili

    Mistral Small— disabilitato

    1

    200

Response

Di seguito è riportata la risposta body da una chiamata InvokeModel.

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

La risposta body ha i seguenti campi possibili:

  • uscite: un elenco di uscite del modello. Ogni output ha i seguenti campi.

    • text — Il testo generato dal modello.

    • stop_reason — Il motivo per cui la risposta ha smesso di generare testo. I valori possibili sono:

      • stop: il modello ha terminato la generazione del testo per il prompt di input. Il modello si interrompe perché non ha più contenuti da generare o se genera una delle sequenze di arresto definite nel stop parametro di richiesta.

      • length: la lunghezza dei token per il testo generato supera max_tokens nella chiamata a InvokeModel (InvokeModelWithResponseStream, nel caso di streaming dell'output). La risposta viene troncata in base al valore max_tokens specificato per i token.

esempio di codice

Questo esempio mostra come chiamare il Mistral 7B Instruct modello.

# 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()