Mistral AI conclusão de texto - Amazon Bedrock

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Mistral AI conclusão de texto

A ferramenta Mistral AI o preenchimento de texto API permite gerar texto com um Mistral AI modelo.

Você faz solicitações de inferência para Mistral AI modelos com InvokeModelou InvokeModelWithResponseStream(streaming).

Mistral AI os modelos estão disponíveis sob a licença Apache 2.0. Para obter mais informações sobre o uso Mistral AI modelos, veja o Mistral AI documentação.

Modelos compatíveis

Você pode usar o seguinte Mistral AI modelos.

  • Mistral 7B Instruct

  • Mixtral 8X7B Instruct

  • Mistral Large

  • Mistral Small

É necessário o ID do modelo que deseja usar. Para obter o ID do modelo, consulte Modelos de base compatíveis no Amazon Bedrock.

Solicitação e reposta

Request

A ferramenta Mistral AI os modelos têm os seguintes parâmetros de inferência.

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

Veja a seguir os parâmetros necessários.

  • prompt: (obrigatório) o prompt que você deseja enviar ao modelo, conforme mostrado no exemplo a seguir.

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

    O exemplo a seguir mostra como formatar um prompt com vários turnos.

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

    O texto do perfil do usuário está dentro dos tokens [INST]...[/INST], o texto externo é o perfil do assistente. O início e o final de uma string são representados pelos tokens <s> (início da string) e </s> (final da string). Para obter informações sobre como enviar um prompt de bate-papo no formato correto, consulte Modelo de bate-papo no Mistral AI documentação.

Veja a seguir os parâmetros opcionais.

  • max_tokens: especifique o número máximo de tokens a serem usados na resposta gerada. O modelo trunca a resposta quando o texto gerado excede max_tokens.

    Padrão Mínimo Máximo

    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: uma lista de sequências de parada que, se geradas pelo modelo, impedem que o modelo gere mais resultados.

    Padrão Mínimo Máximo

    0

    0

    10

  • temperature: controla a aleatoriedade das previsões feitas pelo modelo. Para obter mais informações, consulte Geração de resposta de influência com parâmetros de inferência..

    Padrão Mínimo Máximo

    Mistral 7B Instruct — 0,5

    Mixtral 8X7B Instruct — 0,5

    Mistral Large — 0,7

    Mistral Small — 0,7

    0

    1

  • top_p: controla a diversidade do texto gerado pelo modelo ao definir a porcentagem de candidatos mais prováveis que o modelo considera para o próximo token. Para obter mais informações, consulte Geração de resposta de influência com parâmetros de inferência..

    Padrão Mínimo Máximo

    Mistral 7B Instruct — 0,9

    Mixtral 8X7B Instruct — 0,9

    Mistral Large — 1

    Mistral Small — 1

    0

    1

  • top-k: controla o número de candidatos mais prováveis que o modelo considera para o próximo token. Para obter mais informações, consulte Geração de resposta de influência com parâmetros de inferência..

    Padrão Mínimo Máximo

    Mistral 7B Instruct — 50

    Mixtral 8X7B Instruct — 50

    Mistral Large — deficiente

    Mistral Small — deficiente

    1

    200

Response

A resposta body de uma chamada para InvokeModel é a seguinte:

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

A resposta do body tem os seguintes campos:

  • outputs: uma lista de saídas do modelo. Cada saída tem os campos a seguir.

    • text: o texto gerado pelo modelo.

    • stop_reason: o motivo pelo qual a resposta parou de gerar texto. Os valores possíveis são:

      • interromper: o modelo terminou de gerar texto para o prompt de entrada. O modelo para porque não tem mais conteúdo para gerar ou se o modelo gerar uma das sequências de parada que você define no parâmetro de solicitação stop.

      • length: o tamanho dos tokens do texto gerado excede o valor de max_tokens na chamada a InvokeModel (InvokeModelWithResponseStream, se você estiver transmitindo uma saída). A resposta é truncada em tokens max_tokens.

Exemplo de código

Este exemplo mostra como chamar o Mistral 7B Instruct modelo.

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