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 a modelos da Mistral AI com InvokeModel ou 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 randomização 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()