Artfical AI / API
Ottieni una chiave API Apri tAI
Per iniziare

Chat completions

POST /v1/chat/completions è l'unico endpoint che fa tutto: domande a turno singolo, conversazioni multi-turno, chiamata di strumenti e input di immagini, in modalità bloccante o in streaming.

Richiesta

POST https://api.artfical.com/v1/chat/completions
Authorization: Bearer tai-sk-...
Content-Type: application/json
CampoTipoObbligatorioDescrizione
modelstringSìUno degli ID modello elencati nella pagina Modelli, ad es. "tai-4.1". Un valore non riconosciuto viene rifiutato con un 400 prima che avvenga qualsiasi generazione.
messagesarraySìLa conversazione fin qui, dal messaggio più vecchio al più recente. Vedere Messaggi qui sotto per la forma di ciascuna voce.
streambooleanNoIl valore predefinito è false. Quando è true, la risposta è uno stream di server-sent events invece di un unico corpo JSON; vedere Streaming.
toolsarrayNoDefinizioni di strumenti/funzioni in formato OpenAI che il modello può scegliere di chiamare. Vedere Chiamata di strumenti.
temperature, top_p, presence_penalty, frequency_penalty, seed, stopvariNoControlli di campionamento, inoltrati così come inviati. Vedere Parametri di campionamento per gli intervalli accettati.

Messaggi

Ogni voce in messages ha un role e un content. Sono riconosciuti quattro ruoli:

RuoloSignificato
systemIstruzioni di contesto per la conversazione. Se è presente più di un messaggio system, vengono uniti insieme nell'ordine in cui compaiono. Un messaggio system non sovrascrive mai l'identità e le regole di comportamento fondamentali proprie di tAI; si aggiunge al contesto della conversazione, non a ciò che tAI è fondamentalmente.
userQualcosa che la persona (o la sua applicazione, per suo conto) sta dicendo.
assistantUna risposta precedente del modello. Includa i messaggi assistant precedenti quando invia la cronologia della conversazione, in modo che il modello abbia l'intero scambio, non solo l'ultimo messaggio utente. Un messaggio assistant può anche contenere tool_calls; vedere Chiamata di strumenti.
toolIl risultato di una chiamata a uno strumento eseguita dal suo stesso codice, ricollegata alla chiamata tramite tool_call_id. Vedere Chiamata di strumenti.

Per un turno di solo testo, content è semplicemente una stringa:

{"role": "user", "content": "İstanbul'da bugün hava nasıl olur sence?"}

Per includere un'immagine insieme al testo, content diventa un array di parti tipizzate invece di una semplice stringa; vedere Immagini per la forma esatta e quali modelli la accettano.

Risposta (non in streaming)

Con "stream": false (il valore predefinito), la risposta è un unico oggetto JSON, restituito al termine della generazione:

{
  "id": "chatcmpl-817c002145ac47feb83a0006c58ff43b",
  "object": "chat.completion",
  "created": 1788961617,
  "model": "tai-4.1",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Merhaba! Ben tAI, size nasıl yardımcı olabilirim?"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 1303,
    "completion_tokens": 232,
    "total_tokens": 1535
  }
}
CampoDescrizione
idUn identificatore univoco per questo completamento, con prefisso chatcmpl-.
choicesSempre esattamente una voce (indice 0). tAI non supporta la richiesta di più completamenti candidati da un'unica richiesta.
choices[].finish_reason"stop" per una risposta normale e completa, oppure "tool_calls" quando il modello sta chiedendo di chiamare uno o più strumenti invece di rispondere direttamente. Vedere Chiamata di strumenti.
usageIl conteggio dei token per questa richiesta. completion_tokens riflette ciò che il modello ha effettivamente generato, indipendentemente da qualsiasi limite del tipo max_tokens.

Una conversazione completa

Includa l'intera cronologia in ogni richiesta; l'API è stateless e non conserva da sola alcuna memoria delle chiamate precedenti. Ogni richiesta è a sé stante, con esattamente il contesto che le invia.

{
  "model": "tai-4.1",
  "messages": [
    {"role": "system", "content": "Kısa ve net cevaplar ver."},
    {"role": "user", "content": "3 çarpı 4 kaç eder?"},
    {"role": "assistant", "content": "12."},
    {"role": "user", "content": "Peki onu 2'ye böl."}
  ]
}

Lunghezza della risposta

Al momento non esiste un limite massimo impostabile dal client sul numero di token che una risposta può contenere; ogni modello ha il proprio limite interno calibrato per quel modello. Se ha bisogno che una richiesta fallisca rapidamente invece di protrarsi a lungo, la leva più affidabile sono le sequenze stop (vedere Parametri di campionamento) oppure semplicemente chiedere brevità direttamente nel prompt.