Artfical AI / API
Obter uma chave de API Abrir tAI
Introdução

Conclusões de chat

POST /v1/chat/completions é o único endpoint que faz tudo: perguntas de um único turno, conversas com vários turnos, chamada de ferramentas e entrada de imagens, bloqueante ou em streaming.

Pedido

POST https://api.artfical.com/v1/chat/completions
Authorization: Bearer tai-sk-...
Content-Type: application/json
CampoTipoObrigatórioDescrição
modelstringSimUm dos IDs de modelo listados na página Modelos, por exemplo "tai-4.1". Um valor não reconhecido é rejeitado com um 400 antes de qualquer geração acontecer.
messagesarraySimA conversa até ao momento, da mais antiga para a mais recente. Consulte Mensagens abaixo para o formato de cada entrada.
streambooleanNãoPor defeito é false. Quando true, a resposta é um stream de eventos enviados pelo servidor em vez de um único corpo JSON; consulte Streaming.
toolsarrayNãoDefinições de ferramentas de função no formato da OpenAI que o modelo pode optar por chamar. Consulte Chamada de ferramentas.
temperature, top_p, presence_penalty, frequency_penalty, seed, stopváriosNãoControlos de amostragem, encaminhados tal como enviados. Consulte Parâmetros de amostragem para os intervalos aceites.

Mensagens

Cada entrada em messages tem um role e um content. São reconhecidas quatro funções (roles):

FunçãoSignificado
systemInstruções de contexto para a conversa. Se estiver presente mais do que uma mensagem system, são combinadas em conjunto pela ordem em que aparecem. Uma mensagem system nunca substitui a identidade e as regras de comportamento fundamentais da própria tAI; acrescenta-se ao contexto da conversa, não ao que a tAI fundamentalmente é.
userAlgo que a pessoa (ou a sua aplicação, em nome dela) está a dizer.
assistantUma resposta anterior do modelo. Inclua mensagens assistant anteriores ao enviar o histórico da conversa, para que o modelo tenha a troca completa, não apenas a última mensagem do utilizador. Uma mensagem assistant também pode transportar tool_calls; consulte Chamada de ferramentas.
toolO resultado de uma chamada de ferramenta que o seu próprio código executou, associada de volta à chamada através de tool_call_id. Consulte Chamada de ferramentas.

Para um turno de texto simples, content é apenas uma string:

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

Para incluir uma imagem junto com texto, content passa a ser um array de partes tipadas em vez de uma string simples; consulte Imagens para o formato exato e quais os modelos que o aceitam.

Resposta (sem streaming)

Com "stream": false (o valor por defeito), a resposta é um único objeto JSON, devolvido assim que a geração termina:

{
  "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
  }
}
CampoDescrição
idUm identificador único para esta conclusão, com o prefixo chatcmpl-.
choicesSempre exatamente uma entrada (índice 0). A tAI não suporta pedir múltiplas conclusões candidatas a partir de um único pedido.
choices[].finish_reason"stop" para uma resposta normal e completa, ou "tool_calls" quando o modelo está a pedir para chamar uma ou mais ferramentas em vez de responder diretamente. Consulte Chamada de ferramentas.
usageContagens de tokens para este pedido. completion_tokens reflete o que o modelo efetivamente gerou, independentemente de qualquer limite do tipo max_tokens.

Uma conversa completa

Inclua todo o histórico em cada pedido; a API não guarda estado e não tem memória de chamadas anteriores por si própria. Cada pedido é independente, com exatamente o contexto que lhe enviar.

{
  "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."}
  ]
}

Comprimento da resposta

Atualmente não existe um limite configurável pelo cliente para quantos tokens uma resposta pode conter; cada modelo tem o seu próprio limite interno, ajustado para esse modelo. Se precisar que um pedido falhe rapidamente em vez de se prolongar, a forma mais fiável é usar sequências stop (consulte Parâmetros de amostragem) ou simplesmente pedir brevidade na própria instrução.