Referência da APIUsuários avançadosAtualizado em
POST/v1/chat/completions

Console da API

POST/v1/chat/completions
Ver chaves

As requisições usam a chave informada e seguem a cobrança padrão da API.

Chat Completions

Envie uma conversa no formato OpenAI Chat. Antes da requisição, confirme se o modelo e o endpoint escolhido aceitam o protocolo Chat.

Antes de começar

Siga o guia rápido para obter a chave e escolher um endpoint que aceite chamadas HTTP diretas. O exemplo envia ICODEEASY_API_KEY como token Bearer. Troque YOUR_MODEL_ID pelo ID de um modelo aceito pelo endpoint.

Exemplo de requisição

Informe o modelo em model e a conversa em messages. Use stream: false para pedir uma resposta JSON.

bash
curl -sS https://api.icodeeasy.cc/v1/chat/completions \
  -H "Authorization: Bearer $ICODEEASY_API_KEY" \
  -H 'Content-Type: application/json' \
  --data '{
  "model": "YOUR_MODEL_ID",
  "messages": [
    {
      "role": "user",
      "content": "Say hello."
    }
  ],
  "stream": false
}'

Leia a resposta

Leia o texto em choices[].message.content. O objeto usage pode conter prompt_tokens, completion_tokens e total_tokens. Quando presente, usage.prompt_tokens_details.cached_tokens conta os tokens de entrada encontrados no cache.

json
{
  "choices": [
    {
      "message": {
        "role": "assistant",
        "content": "Hello!"
      },
      "finish_reason": "stop"
    }
  ]
}

Exemplo de resposta em streaming

Defina stream: true no corpo da requisição para receber SSE. No SSE, junte delta.content por choices[].index. Registre o motivo de término em finish_reason e continue lendo até um quadro final de uso ou [DONE]. Se houver um quadro de erro ou a conexão cair antes do término, trate o resultado como falha ou incompleto.

text
data: {"choices":[{"index":0,"delta":{"content":"Hello!"},"finish_reason":null}]}

data: {"choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}

data: {"choices":[],"usage":{"prompt_tokens":10,"completion_tokens":4,"total_tokens":14}}

data: [DONE]

Se o endpoint oferece uso em streaming, solicite stream_options.include_usage: true. O quadro que contém apenas uso pode vir com choices vazio.