Source: https://ailoot.ai/docs/it/api/chat-completions/
Canonical: https://ailoot.ai/docs/it/api/chat-completions/
Language: it

[API](https://ailoot.ai/docs/it/) 

# Chat Completions

[Markdown](https://ailoot.ai/docs/it/api/chat-completions/index.md)

Risposta del modello a una conversazione nel formato OpenAI. Il formato più diffuso: è compreso da quasi tutti i client.

POST`https://api.ailoot.ai/v1/chat/completions`

Chat Completions

```bash
curl https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-5-5",
    "messages": [
      {"role": "user", "content": "Spiega in due frasi che cos’è un’API."}
    ]
  }' 
```

```python
from openai import OpenAI
import os

client = OpenAI(max_retries=0, 
    base_url="https://api.ailoot.ai/v1",
    api_key=os.environ["AILOOT_API_KEY"],
)

resp = client.chat.completions.create(
    model="claude-sonnet-5-5",
    messages=[{"role": "user", "content": "Spiega in due frasi che cos’è un’API."}],
)
print(resp.choices[0].message.content)
```

```js
import OpenAI from "openai";

const client = new OpenAI({ maxRetries: 0,
  baseURL: "https://api.ailoot.ai/v1",
  apiKey: process.env.AILOOT_API_KEY,
});

const resp = await client.chat.completions.create({
  model: "claude-sonnet-5-5",
  messages: [{ role: "user", content: "Spiega in due frasi che cos’è un’API." }],
});
console.log(resp.choices[0].message.content);
```

200 OK

```json
{
  "id": "chatcmpl-8f2c…",
  "object": "chat.completion",
  "created": 1790812800,
  "model": "claude-sonnet-5-5",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Un’API è un accordo su come un programma chiede a un altro di fare qualcosa…"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 21,
    "completion_tokens": 48,
    "total_tokens": 69
  }
}
```

## Autorizzazione

| Parametro | Tipo | Obbligatorio | Descrizione |
| --- | --- | --- | --- |
| `Authorization` | header | obbligatorio | Chiave nel formato `Bearer sk-…`. Sono accettati anche gli header `x-api-key` oppure `x-goog-api-key`. |

## Corpo della richiesta

| Parametro | Tipo | Obbligatorio | Descrizione |
| --- | --- | --- | --- |
| `model` | string | obbligatorio | ID del modello dal [catalogo](https://ailoot.ai/models/it/), ad esempio `claude-sonnet-5-5`. Il modello deve supportare il formato OpenAI Chat. |
| `messages` | array | obbligatorio | Cronologia della conversazione: oggetti con `role` (`system`, `developer`, `user`, `assistant`, `tool`) e `content` — una stringa o un array di parti (testo, `image_url`). |
| `stream` | boolean | facoltativo | Risposta nel formato Server-Sent Events. Per impostazione predefinita `false`. Il testo a pagamento arriva in un unico blocco dopo il calcolo del costo, non parola per parola. |
| `stream_options` | object | facoltativo | `{"include_usage": true}` — invia il valore di `usage` finale come ultimo evento del flusso. |
| `max_tokens` | integer | facoltativo | Numero massimo di token della risposta. Il nuovo nome è `max_completion_tokens`. Se il limite non è specificato, Ailoot imposta 4096 (o meno, se il limite di risposta del modello è inferiore; Grok ha un limite proprio). Per risposte lunghe imposta il limite esplicitamente, altrimenti la risposta si fermerà a 4096 token con `finish_reason: "length"`. Il limite rientra nella riserva: più è alto, più saldo libero serve. |
| `temperature` | number | facoltativo | Casualità della risposta, solitamente da 0 a 2. Può essere ignorata dai modelli di ragionamento. |
| `top_p` | number | facoltativo | Alternativa a temperature: quota della massa di probabilità usata per scegliere i token. |
| `stop` | string \| array | facoltativo | Stringhe che interrompono la generazione. |
| `tools` | array | facoltativo | Descrizioni delle funzioni che il modello può chiamare. Il formato è quello di OpenAI: `{"type": "function", "function": {...}}`. |
| `tool_choice` | string \| object | facoltativo | `auto`, `none`, `required` oppure una funzione specifica. |
| `response_format` | object | facoltativo | `{"type": "json_object"}` oppure `{"type": "json_schema", ...}` per una risposta strutturata — se il modello la supporta. |
| `reasoning_effort` | string | facoltativo | Profondità del ragionamento per i modelli di ragionamento: `low`, `medium`, `high`. |

Gli altri parametri OpenAI sono inoltrati senza modifiche; il loro supporto nel singolo modello è deciso dallo sviluppatore del modello.

## Risposta

| Parametro | Tipo | Obbligatorio | Descrizione |
| --- | --- | --- | --- |
| `choices[].message` | object |  | Risposta del modello: `content`, in caso di chiamate agli strumenti — `tool_calls`. |
| `choices[].finish_reason` | string |  | `stop` — risposta conclusa; `length` — raggiunto il limite `max_tokens` (la risposta è comunque completa e viene addebitato il consumo effettivo); `tool_calls` — il modello chiama uno strumento. |
| `usage` | object |  | `prompt_tokens`, `completion_tokens`, `total_tokens` — su questi valori viene calcolato l’addebito. |

Hai altre domande? Invia il Request ID e una descrizione — ti aiuteremo a chiarire il problema.[Contatta l’assistenza](mailto:support@ailoot.ai)

## Ailoot · L’azienda e il suo portafoglio di progetti





Ailoot si basa su un’esperienza operativa consolidata, un’ampia base di clienti, un servizio stabile e un controllo costante dei KPI.





L’azienda e il suo portafoglio di progetti: milioni di clienti; vendite nell’ordine dei miliardi ogni mese.





Ailoot mette questa esperienza operativa al servizio dell’accesso API alle funzioni AI nei prodotti dei clienti, negli agenti, nelle applicazioni e nelle automazioni.
