Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Finalización de texto de Mistral AI
La API de finalización de texto de Mistral AI le permite generar texto con un modelo de Mistral AI.
Realiza solicitudes de inferencia a Mistral AI los modelos con InvokeModelo InvokeModelWithResponseStream(streaming).
Los modelos de Mistral AI están disponibles con la licencia de Apache 2.0. Para obtener más información sobre el uso de modelos de Mistral AI, consulte la documentación de Mistral AI.
Modelos compatibles
Puede utilizar los siguientes modelos de Mistral AI.
Mistral 7B Instruct
Mixtral 8X7B Instruct
Mistral Large
Mistral Small
Necesitará el ID de modelo del modelo que desee utilizar. Para obtener el ID del modelo, consulte Modelos fundacionales compatibles en Amazon Bedrock.
Solicitud y respuesta
- Request
-
Los modelos de Mistral AI tienen los siguientes parámetros de inferencia.
{
"prompt": string,
"max_tokens" : int,
"stop" : [string],
"temperature": float,
"top_p": float,
"top_k": int
}
Los siguientes parámetros son obligatorios.
-
prompt: (obligatorio) es la petición que desea pasar al modelo, tal y como se muestra en el siguiente ejemplo.
<s>[INST] What is your favourite condiment? [/INST]
En el siguiente ejemplo se muestra cómo dar formato a una petición de varios 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]
El texto del rol de usuario está dentro de los tokens [INST]...[/INST]
y el texto exterior corresponde al rol de asistente. El principio y el final de una cadena se representan mediante los tokens <s>
(principio de la cadena) y </s>
(final de la cadena). Para obtener información sobre cómo enviar una petición de chat en el formato correcto, consulte Chat template en la documentación de Mistral AI.
Los siguientes son parámetros opcionales.
-
max_tokens: especifique la cantidad máxima de tokens para usar en la respuesta generada. El modelo trunca la respuesta una vez que el texto generado excede max_tokens
.
Predeterminado/a |
Mínimo |
Máximo |
Mistral 7B Instruct: 512
Mixtral 8X7B Instruct: 512
Mistral Large: 8192
Mistral Small: 8192
|
1
|
Mistral 7B Instruct: 8192
Mixtral 8X7B Instruct: 4096
Mistral Large: 8192
Mistral Small: 8192
|
-
stop: lista de secuencias de parada que, si las genera el modelo, impiden que este genere más resultados.
Predeterminado/a |
Mínimo |
Máximo |
0
|
0
|
10
|
-
temperature: controla la asignación al azar de las predicciones realizadas por el modelo. Para obtener más información, consulte Influencia sobre la generación de respuestas con parámetros de inferencia.
Predeterminado/a |
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 la diversidad de texto que genera el modelo al establecer el porcentaje de candidatos más probables que considera el modelo para el siguiente token. Para obtener más información, consulte Influencia sobre la generación de respuestas con parámetros de inferencia.
Predeterminado/a |
Mínimo |
Máximo |
Mistral 7B Instruct: 0,9
Mixtral 8X7B Instruct: 0,9
Mistral Large: 1
Mistral Small: 1
|
0
|
1
|
-
top_k: es el número de candidatos más probables que el modelo considera para el siguiente token. Para obtener más información, consulte Influencia sobre la generación de respuestas con parámetros de inferencia.
Predeterminado/a |
Mínimo |
Máximo |
Mistral 7B Instruct: 50
Mixtral 8X7B Instruct: 50
Mistral Large: desactivado
Mistral Small: desactivado
|
1
|
200
|
- Response
-
La respuesta body
de una llamada a InvokeModel
es la siguiente:
{
"outputs": [
{
"text": string,
"stop_reason": string
}
]
}
La respuesta body
tiene los siguientes campos posibles:
Ejemplo de código
En este ejemplo se muestra cómo llamar al 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()