

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Completamento della chat Mistral AI
<a name="model-parameters-mistral-chat-completion"></a>

L’API di completamento della chat Mistral AI consente di creare applicazioni conversazionali.

**Suggerimento**  
Puoi utilizzare l’API di completamento della chat Mistral AI con le operazioni di inferenza di base ([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)). Tuttavia, ti consigliamo di utilizzare l’API Converse per implementare i messaggi nell’applicazione. L’API Converse fornisce un set unificato di parametri che funzionano su tutti i modelli che supportano i messaggi. Per ulteriori informazioni, consulta [Avvio di una conversazione con le operazioni dell’API Converse](conversation-inference.md).

I modelli Mistral AI sono disponibili con la [licenza Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0.txt). Per ulteriori informazioni sull’utilizzo dei modelli Mistral AI, consulta la [Documentazione di Mistral AI](https://docs.mistral.ai/).

**Topics**
+ [Modelli supportati](#mistral-supported-models-chat-completion)
+ [Richiesta e risposta](#model-parameters-mistral-chat-completion-request-response)

## Modelli supportati
<a name="mistral-supported-models-chat-completion"></a>

Puoi utilizzare i seguenti modelli Mistral AI.
+ Mistral Large

È necessario l'ID modello per il modello che desideri utilizzare. Per ottenere l’ID modello, consulta [Modelli di fondazione supportati in Amazon Bedrock](models-supported.md). 

## Richiesta e risposta
<a name="model-parameters-mistral-chat-completion-request-response"></a>

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

I modelli Mistral AI hanno i seguenti parametri di inferenza. 

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

I seguenti sono parametri obbligatori.
+  **messages**: (obbligatorio) i messaggi che desideri passare al modello.
  + **role**: il ruolo del messaggio. I valori validi sono:
    + **system**: imposta il comportamento e il contesto del modello nella conversazione. 
    + **user**: il messaggio dell’utente da inviare al modello.
    + **assistant**: la risposta del modello.
  + **content**: il contenuto per il messaggio.

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

  Per passare il risultato di uno strumento, utilizza JSON con i seguenti campi.
  + **role**: il ruolo del messaggio. Il valore deve essere `tool`. 
  + **tool\_call\_id**: l’ID della richiesta dello strumento. L’ID si ottiene dai campi `tool_calls` della risposta alla richiesta precedente. 
  + **content**: il risultato dello strumento.

  L’esempio seguente è il risultato di uno strumento che riproduce i brani più popolari su una stazione radio.

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

I seguenti sono parametri opzionali.
+  **tools**: definizioni degli strumenti che il modello può utilizzare.

  Se includi `tools` nella richiesta, il modello potrebbe restituire un campo `tool_calls` nel messaggio che rappresenta l’utilizzo di tali strumenti da parte del modello. È quindi possibile eseguire tali strumenti utilizzando l’input dello strumento generato dal modello e quindi, facoltativamente, restituire i risultati al modello utilizzando blocchi di contenuto `tool_result`.

  L’esempio seguente riguarda uno strumento che riproduce i brani più popolari su una stazione 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\_choice**: specifica come vengono chiamate le funzioni. Se impostato su `none`, il modello non chiama una funzione, generando invece un messaggio. Se impostato su `auto`, il modello può ora scegliere di generare un messaggio o di chiamare una funzione. Se impostato su `any`, il modello è forzato a chiamare una funzione.
+ **max\_tokens**: specifica il numero massimo di token da utilizzare nella risposta generata. Il modello tronca la risposta se il testo generato supera `max_tokens`.     
[See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/bedrock/latest/userguide/model-parameters-mistral-chat-completion.html)
+ **temperature**: controlla la casualità delle previsioni fatte dal modello. Per ulteriori informazioni, consulta [Influenza sulla generazione della risposta con i parametri di inferenza](inference-parameters.md).     
[See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/bedrock/latest/userguide/model-parameters-mistral-chat-completion.html)
+ **top\_p**: controlla la diversità di testo che il modello genera impostando la percentuale di candidati più probabili che il modello considera per il token successivo. Per ulteriori informazioni, consulta [Influenza sulla generazione della risposta con i parametri di inferenza](inference-parameters.md).    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/bedrock/latest/userguide/model-parameters-mistral-chat-completion.html)

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

Di seguito è riportata la risposta `body` da una chiamata `InvokeModel`.

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

La risposta `body` ha i seguenti campi possibili:
+ **choices**: l’output dei campi del modello.
  + **index**: l’indice del messaggio. 
  + **message**: il messaggio del modello. 
    + **role**: il ruolo del messaggio. 
    + **content**: il contenuto per il messaggio. 
    + **tool\_calls**: se il valore di `stop_reason` è `tool_calls`, questo campo contiene un elenco di richieste di strumenti che il modello vuole che tu esegua. 
      + **id**: l’ID per la richiesta di strumento. 
      + **function**: la funzione richiesta dal modello. 
        + **name**: il nome della funzione. 
        + **arguments**: gli argomenti da passare allo strumento. 

      Di seguito è riportato un esempio di richiesta per uno strumento che recupera la canzone più popolare di una stazione radio.

      ```
      [
                          {
                              "id": "v6RMMiRlT7ygYkT4uULjtg",
                              "function": {
                                  "name": "top_song",
                                  "arguments": "{\"sign\": \"WZPZ\"}"
                              }
                          }
                      ]
      ```
  + **stop\_reason**: il motivo per cui la risposta ha smesso di generare testo. I valori possibili sono:
    + **stop**: il modello ha terminato la generazione del testo per il prompt di input. Il modello si arresta perché non ha più contenuto da generare oppure se genera una delle sequenze di arresti definite nel parametro di richiesta `stop`.
    + **length**: la lunghezza dei token per il testo generato supera il valore `max_tokens`. La risposta viene troncata in base al valore `max_tokens` specificato per i token. 
    + **tool\_calls**: il modello richiede l’esecuzione di uno strumento.

------