

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á.

# Conclusão de chat da Mistral AI
<a name="model-parameters-mistral-chat-completion"></a>

A API de conclusão de chat da Mistral AI permite criar aplicações de conversação.

**dica**  
É possível usar a API de conclusão de chat da Mistral AI com as operações de inferência de base ([InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html) ou [InvokeModelWithResponseStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithResponseStream.html)). No entanto, é recomendável usar a API Converse para implementar mensagens em sua aplicação. A API Converse oferece um conjunto unificado de parâmetros que funcionam em todos os modelos que permitem mensagens. Para obter mais informações, consulte [Realizar uma conversa com as operações de API Converse](conversation-inference.md).

Os modelos da Mistral AI estão disponíveis sob a [licença do Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt). Para obter mais informações sobre o uso dos modelos da Mistral AI, consulte a [documentação da Mistral AI](https://docs.mistral.ai/).

**Topics**
+ [Modelos compatíveis](#mistral-supported-models-chat-completion)
+ [Solicitação e reposta](#model-parameters-mistral-chat-completion-request-response)

## Modelos compatíveis
<a name="mistral-supported-models-chat-completion"></a>

É possível usar os modelos Mistral AI a seguir.
+ Mistral Large

É necessário o ID do modelo que deseja usar. Para obter o ID do modelo, consulte [Modelos de base compatíveis no Amazon Bedrock](models-supported.md). 

## Solicitação e reposta
<a name="model-parameters-mistral-chat-completion-request-response"></a>

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

Os modelos da Mistral AI têm os parâmetros de inferência a seguir. 

```
{
    "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
}
```

Veja a seguir os parâmetros necessários.
+  **messages**: (obrigatório) as mensagens que você deseja passar para o modelo.
  + **role**: o perfil da mensagem. Os valores válidos são:
    + **system**: define o comportamento e o contexto do modelo na conversação. 
    + **user**: a mensagem do usuário a ser enviada ao modelo.
    + **assistant**: a resposta do modelo.
  + **content**: o conteúdo da mensagem.

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

  Para passar o resultado de uma ferramenta, use JSON com os campos a seguir.
  + **role**: o perfil da mensagem. O valor deve ser `tool`. 
  + **tool\$1call\$1id**: o ID da solicitação da ferramenta. Você obtém o ID dos campos `tool_calls` na resposta da solicitação anterior. 
  + **content**: o resultado da ferramenta.

  O exemplo a seguir é o resultado de uma ferramenta que obtém a música mais tocada em uma estação de rádio.

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

Veja a seguir os parâmetros opcionais.
+  **tools**: definições de ferramentas que o modelo pode usar.

  Se você incluir `tools` em sua solicitação, o modelo poderá exibir um campo `tool_calls` na mensagem que representa o uso dessas ferramentas pelo modelo. É possível executar essas ferramentas usando a entrada de ferramenta gerada pelo modelo e, opcionalmente, retornar os resultados ao modelo usando blocos de conteúdo de `tool_result`.

  O exemplo a seguir é de uma ferramenta que obtém as músicas mais tocadas em uma estação de rádio.

  ```
  [
      {
          "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 como os perfis são chamados. Se definido como `none`, o modelo não chamará um perfil e, em vez disso, gerará uma mensagem. Se definido como `auto`, o modelo poderá optar por gerar uma mensagem ou chamar um perfil. Se definido como `any`, o modelo será forçado a chamar um perfil.
+ **max\$1tokens**: 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`.     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/bedrock/latest/userguide/model-parameters-mistral-chat-completion.html)
+ **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](inference-parameters.md).     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/bedrock/latest/userguide/model-parameters-mistral-chat-completion.html)
+ **top\$1p**: 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](inference-parameters.md).    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/bedrock/latest/userguide/model-parameters-mistral-chat-completion.html)

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

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

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

A resposta do `body` tem os seguintes campos:
+ **choices**: a saída dos campos do modelo.
  + **index**: o índice da mensagem. 
  + **message**: a mensagem do modelo. 
    + **role**: o perfil da mensagem. 
    + **content**: o conteúdo da mensagem. 
    + **tool\$1calls**: se o valor de `stop_reason` for `tool_calls`, esse campo conterá uma lista de solicitações de ferramentas que o modelo deseja que você execute. 
      + **id**: o ID da solicitação da ferramenta. 
      + **function**: a função que o modelo está solicitando. 
        + **name**: o nome da função. 
        + **arguments**: os argumentos a serem passados para a ferramenta 

      Veja um exemplo de solicitação de uma ferramenta que obtém as músicas mais tocadas em uma estação de rádio.

      ```
      [
                          {
                              "id": "v6RMMiRlT7ygYkT4uULjtg",
                              "function": {
                                  "name": "top_song",
                                  "arguments": "{\"sign\": \"WZPZ\"}"
                              }
                          }
                      ]
      ```
  + **stop\$1reason**: 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`. A resposta é truncada em tokens `max_tokens`. 
    + **tool\$1calls**: o modelo está solicitando que você execute uma ferramenta.

------