

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 chats de Mistral AI
<a name="model-parameters-mistral-chat-completion"></a>

La API de finalización de chats de Mistral AI permite crear aplicaciones conversacionales.

**sugerencia**  
Puede usar la API de finalización de chats de Mistral AI con las operaciones de inferencia básicas ([InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html) o [InvokeModelWithResponseStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithResponseStream.html)). Sin embargo, le recomendamos que utilice la API Converse para implementar mensajes en su aplicación. La API Converse proporciona un conjunto unificado de parámetros que funcionan en todos los modelos que admiten mensajes. Para obtener más información, consulte [Cómo mantener una conversación con las operaciones de la API Converse](conversation-inference.md).

Los modelos de Mistral AI están disponibles con la [licencia de Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt). Para obtener más información sobre el uso de modelos de Mistral AI, consulte la [documentación de Mistral AI](https://docs.mistral.ai/).

**Topics**
+ [Modelos compatibles](#mistral-supported-models-chat-completion)
+ [Solicitud y respuesta](#model-parameters-mistral-chat-completion-request-response)

## Modelos compatibles
<a name="mistral-supported-models-chat-completion"></a>

Puede utilizar los siguientes modelos de Mistral AI.
+ Mistral Large

Necesitará el ID de modelo del modelo que desee utilizar. Para obtener el ID del modelo, consulte [Modelos fundacionales compatibles en Amazon Bedrock](models-supported.md). 

## Solicitud y respuesta
<a name="model-parameters-mistral-chat-completion-request-response"></a>

------
#### [ Request ]

Los modelos de Mistral AI tienen los siguientes parámetros de inferencia. 

```
{
    "messages": [
        {
            "role": "system"|"user"|"assistant",
            "content": str
        },
        {
            "role": "assistant",
            "content": "",
            "tool_calls": [
                {
                    "id": str,
                    "function": {
                        "name": str,
                        "arguments": str
                    }
                }
            ]
        },
        {
            "role": "tool",
            "tool_call_id": str,
            "content": str
        }
    ],
    "tools": [
        {
            "type": "function",
            "function": {
                "name": str,
                "description": str,
                "parameters": dict
            }
        }
    ],
    "tool_choice": "auto"|"any"|"none",
    "max_tokens": int,
    "top_p": float,
    "temperature": float
}
```

Los siguientes parámetros son obligatorios.
+  **messages**: (obligatorio) son los mensajes que desea pasar al modelo.
  + **role**: es el rol para el mensaje. Los valores válidos son:
    + **system**: establece el comportamiento y el contexto del modelo en la conversación. 
    + **user**: es el mensaje del usuario que se envía al modelo.
    + **assistant**: es la respuesta del modelo.
  + **content**: es el contenido del mensaje.

  ```
  [
      {
          "role": "user",
          "content": "What is the most popular song on WZPZ?"
      }
  ]
  ```

  Para pasar el resultado de una herramienta, use JSON con los siguientes campos.
  + **role**: es el rol para el mensaje. El valor debe ser `tool`. 
  + **tool\$1call\$1id**: es el ID de la solicitud de la herramienta. El ID se obtiene de los campos `tool_calls` de la respuesta de la solicitud anterior. 
  + **content**: es el resultado de la herramienta.

  El siguiente ejemplo es el resultado de una herramienta que obtiene la canción más popular de una emisora de radio.

  ```
  {
      "role": "tool",
      "tool_call_id": "v6RMMiRlT7ygYkT4uULjtg",
      "content": "{\"song\": \"Elemental Hotel\", \"artist\": \"8 Storey Hike\"}"
  }
  ```

Los siguientes son parámetros opcionales.
+  **tools**: definiciones de las herramientas que puede utilizar el modelo.

  Si incluye `tools` en su solicitud, es posible que el modelo devuelva un campo `tool_calls` en el mensaje que represente el uso de esas herramientas por parte del modelo. A continuación, puede ejecutar esas herramientas con la entrada de herramientas generada por el modelo y, si lo desea, devolver los resultados al modelo mediante bloques de contenido `tool_result`.

  El siguiente ejemplo es de una herramienta que obtiene la canción más popular de una emisora de radio.

  ```
  [
      {
          "type": "function",
          "function": {
              "name": "top_song",
              "description": "Get the most popular song played on a radio station.",
              "parameters": {
                  "type": "object",
                  "properties": {
                      "sign": {
                          "type": "string",
                          "description": "The call sign for the radio station for which you want the most popular song. Example calls signs are WZPZ and WKRP."
                      }
                  },
                  "required": [
                      "sign"
                  ]
              }
          }
      }
  ]
  ```
+  **tool\$1choice**: especifica cómo se llama a las funciones. Si se establece en `none`, el modelo no llamará a ninguna función y, en su lugar, generará un mensaje. Si se establece en `auto`, el modelo puede elegir entre generar un mensaje o llamar a una función. Si se establece en `any`, el modelo se ve obligado a llamar a una función.
+ **max\$1tokens**: 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`.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/bedrock/latest/userguide/model-parameters-mistral-chat-completion.html)
+ **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](inference-parameters.md).     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/bedrock/latest/userguide/model-parameters-mistral-chat-completion.html)
+ **top\$1p**: 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](inference-parameters.md).    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/bedrock/latest/userguide/model-parameters-mistral-chat-completion.html)

------
#### [ Response ]

La respuesta `body` de una llamada a `InvokeModel` es la siguiente:

```
{
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": str,
                "tool_calls": [...]
            },
            "stop_reason": "stop"|"length"|"tool_calls"
        }
    ]
}
```

La respuesta `body` tiene los siguientes campos posibles:
+ **choices**: es la salida del modelo.
  + **index**: es el índice del mensaje. 
  + **message**: es el mensaje del modelo. 
    + **role**: es el rol para el mensaje. 
    + **content**: es el contenido del mensaje. 
    + **tool\$1calls**: si el valor de `stop_reason` es `tool_calls`, este campo contiene una lista de solicitudes de herramientas que el modelo quiere que ejecute. 
      + **id**: es el ID de la solicitud de herramienta. 
      + **function**: es la función que solicita el modelo. 
        + **name**: es el nombre de la función. 
        + **arguments**: son los argumentos que se pasan a la herramienta 

      El siguiente ejemplo es de una solicitud a una herramienta que obtiene la canción más popular de una emisora de radio.

      ```
      [
                          {
                              "id": "v6RMMiRlT7ygYkT4uULjtg",
                              "function": {
                                  "name": "top_song",
                                  "arguments": "{\"sign\": \"WZPZ\"}"
                              }
                          }
                      ]
      ```
  + **stop\$1reason**: motivo por el que la respuesta ha dejado de generar texto. Los valores posibles son los siguientes:
    + **stop**: el modelo ha terminado de generar texto para la solicitud de entrada. El modelo se detiene porque ya no genera más contenido o si el modelo genera una de las secuencias de parada que se han definido en el parámetro de solicitud `stop`.
    + **length**: la longitud de los tokens del texto generado supera el valor de `max_tokens`. La respuesta se trunca en tokens `max_tokens`. 
    + **tool\$1calls**: el modelo le solicita que ejecute una herramienta.

------