documentazione
Introduzione

API per l’intelligenza artificiale: come funziona una richiesta?

Markdown

Come funziona

Cosa succede alla richiesta tra il tuo programma e il modello.

Guida completa

Invii una richiesta ad Ailoot API come la invieresti direttamente a OpenAI, Anthropic o Google. Ailoot controlla chiave e saldo, inoltra la richiesta al modello, restituisce la risposta nello stesso formato e addebita il consumo effettivo.

01RichiestaIl tuo client invia una richiesta a api.ailoot.ai con la chiave sk-…
02Verifica e riservaChiave, limiti, saldo. Un importo viene riservato per la durata della risposta.
03ModelloIl modello risponde e la risposta torna nel tuo formato.
04AddebitoUn solo addebito sui token effettivi; il resto della riserva viene liberato.

Una chiave — tre formati

Il formato è determinato dal percorso della richiesta, non dal modello. Lo stesso modello Claude può essere chiamato tramite OpenAI Chat, OpenAI Responses o Anthropic Messages — la risposta arriva nel formato del percorso chiamato.

FormatoPercorsoChi lo usa
OpenAI Chat Completions/v1/chat/completionsOpenAI SDK, la maggior parte delle chat e degli editor, n8n, LangChain
OpenAI Responses/v1/responsesCodex CLI, OpenAI Agents SDK, nuove versioni degli SDK
Anthropic Messages/v1/messagesClaude Code, Anthropic SDK, Zed, Cline
Gemini/v1beta/models/{model}:generateContentGemini CLI, Google GenAI SDK

Costi: riserva e un solo addebito

  • Prima di inviare una nuova richiesta testuale, Ailoot riserva l’importo stimato per l’input e una risposta tipica, tenendo conto del limite (max_tokens) e delle condizioni del modello specifico. Se la riserva non rientra nel saldo libero o nel limite della chiave, il limite trasmesso può essere ridotto solo per un modello e un metodo che lo rispettano effettivamente, senza scendere sotto 256 token né sotto il minimo di output previsto. Per immagini, video e audio in output rimane riservato l’intero costo del risultato.
  • Dopo la risposta — un solo addebito sul consumo effettivo. La riserva inutilizzata torna subito sul saldo.
  • Se la risposta costa più della riserva, la differenza viene presa dal saldo libero. Il saldo non diventa mai negativo.
  • Se il saldo non basta nemmeno per la riserva minima, la richiesta non viene inviata: ricevi un errore 402 chiaro e non viene addebitato nulla.
  • Un errore che non produce un risultato non viene addebitato.

Dettagli ed esempio di calcolo sono nella pagina Riserva e addebito.

Errori con Request ID

Ogni risposta riceve un identificatore della richiesta nell’header X-Request-ID e nel testo dell’errore. Gli errori arrivano in JSON nel formato chiamato, quindi gli SDK li riconoscono correttamente. Se qualcosa va storto, invia il Request ID al servizio di assistenza — così troviamo la richiesta in un minuto.

401 Unauthorized
{
  "code": "API_KEY_REQUIRED",
  "error": {
    "code": "invalid_api_key",
    "message": "No API key was sent with the request. Nothing was charged. Please check that the full key is sent in the Authorization header as \"Bearer <key>\". Request ID: 3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6.",
    "param": null,
    "reason": "invalid_api_key",
    "request_id": "3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6",
    "type": "invalid_request_error"
  },
  "message": "No API key was sent with the request. Nothing was charged. …"
}

Streaming e timeout

Le risposte in streaming (stream: true) arrivano come Server-Sent Events. Ailoot restituisce la risposta testuale a pagamento dopo il calcolo del costo. Quindi con stream: true il formato resta in streaming (SSE), ma il testo arriva in un unico blocco quando il modello termina, non parola per parola. Se la risposta richiede più di circa 15 secondi, nei flussi Chat Completions, Responses e Messages arrivano prima le righe di servizio : ping (circa ogni 10 secondi), poi la riga : ailoot-charged-usd … con l’importo addebitato e i dati. Gli SDK ignorano queste righe.

Nel formato Gemini non ci sono righe di servizio: la risposta :streamGenerateContent arriva intera dopo il calcolo. Per i modelli di ragionamento lascia un margine nel timeout del client: qualche minuto è normale.

Header della risposta

X-Request-ID arriva in ogni risposta. Ailoot aggiunge gli altri header alle risposte testuali a pagamento:

HeaderContenuto
X-Request-IDIdentificatore della richiesta — viene chiesto dall’assistenza
X-Ailoot-Charged-USDImporto addebitato per questa richiesta, in dollari
X-Ailoot-Output-TokensNumero di token della risposta pagati
X-Ailoot-Max-Tokens-CappedLimite di risposta ridotto perché il saldo non copriva l’intera riserva
X-Ailoot-Notice-Code, X-Ailoot-NoticeSpiegazione se la risposta si è fermata al limite di lunghezza

Se il flusso è già iniziato con righe di servizio, queste informazioni arrivano come riga di commento prima dei dati, non come header.

Cache dei prompt

Se il modello supporta il caching, un prefisso lungo reinviato (istruzione di sistema, documenti) può costare meno. I prezzi di lettura e scrittura della cache sono mostrati nella scheda del modello nel catalogo. Il cache hit è deciso dallo sviluppatore del modello; Ailoot non lo garantisce.

Hai altre domande? Invia il Request ID e una descrizione — ti aiuteremo a chiarire il problema.Contatta l’assistenza
Maggiori dettagli

Domande sul funzionamento dell’API

Cosa fa Ailoot quando invio una richiesta all’API?

Invii una richiesta ad Ailoot API come la invieresti direttamente a OpenAI, Anthropic o Google. Ailoot controlla chiave e saldo, inoltra la richiesta al modello, restituisce la risposta nello stesso formato e addebita il consumo effettivo.