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á.
Text Completion da Mistral AI
A API Text Completion da Mistral AI permite gerar texto com um modelo da Mistral AI.
Você faz solicitações de inferência para Mistral AI modelos com InvokeModelou InvokeModelWithResponseStream(streaming).
Os modelos da Mistral AI estão disponíveis sob a licença do Apache 2.0. Para obter mais informações sobre o uso dos modelos da Mistral AI, consulte a documentação da Mistral AI.
Modelos compatíveis
É possível usar os modelos Mistral AI a seguir.
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
-
Os modelos da Mistral AI têm os parâmetros de inferência a seguir.
{
"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 chat no formato correto, consulte os modelos de chat na documentação da Mistral AI.
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: desabilitado
Mistral Small: desabilitado
|
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:
Exemplo de código
Este exemplo mostra como chamar o modelo Mistral 7B Instruct.
# 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()