Convidar amigos e ganhar tokens grátis!Saiba mais

Criar Chat Completions (Não-Streaming)

Este endpoint é usado para, dado um prompt (instrução), retornar um ou mais resultados de preenchimento (completions) previstos pelo modelo. A interface não-streaming retorna o resultado de uma só vez após a geração da resposta completa.

  • Endpoint: https://api.codingplanx.ai/v1/chat/completions
  • Método da Requisição: POST
  • Content-Type: application/json

Parâmetros da Requisição

Cabeçalhos (Headers)

ParâmetroTipoObrigatórioExemploDescrição
Content-TypestringSimapplication/jsonFormato do corpo da requisição
AcceptstringSimapplication/jsonFormato do corpo da resposta
AuthorizationstringNãoBearer {{YOUR_API_KEY}}Token de autenticação

Corpo da Requisição (Body)

ParâmetroTipoObrigatórioPadrãoDescrição
modelstringSim-ID do modelo a ser usado (ex: gpt-4o, gpt-3.5-turbo).
messagesarraySim-Lista de mensagens da conversa. Cada objeto contém role (system/user/assistant) e content.
temperaturenumberNão1Temperatura de amostragem (0-2). Valores maiores tornam a saída mais aleatória, valores menores mais determinísticos.
top_pnumberNão1Amostragem de núcleo (nucleus sampling). Considera apenas os tokens com massa de probabilidade top_p. Recomenda-se alterar este ou a temperature, não ambos.
nintegerNão1Número de escolhas de completion a serem geradas para cada mensagem de entrada.
streambooleanNãofalseSe utiliza transmissão contínua (streaming). Aqui deve ser definido como false.
stopstring/arrayNãonullSequência limite (até 4) onde a API parará de gerar novos tokens.
max_tokensintegerNãoinfNúmero máximo de tokens a serem gerados, limitado pelo tamanho do contexto do modelo.
presence_penaltynumberNão0Entre -2.0 e 2.0. Valores positivos aumentam a probabilidade de o modelo falar sobre novos tópicos.
frequency_penaltynumberNão0Entre -2.0 e 2.0. Valores positivos reduzem a probabilidade de o modelo repetir as mesmas palavras.
logit_biasobjectNãonullModifica a probabilidade de tokens específicos aparecerem na resposta gerada.
userstringNão-Identificador único do usuário final, usado para detectar abusos do sistema.
response_formatobjectNão-Especifica o formato de saída, como { "type": "json_object" } para ativar o modo JSON.
toolsarrayNão-Lista de ferramentas que o modelo pode chamar (atualmente suporta apenas function).
tool_choicestring/objNãoautoControla qual função o modelo irá chamar (none/auto/função específica).

Parâmetros de Resposta

Corpo da Resposta (Response Body)

ParâmetroTipoDescrição
idstringIdentificador único desta requisição.
objectstringTipo do objeto, fixo como chat.completion.
createdintegerTimestamp Unix (em segundos).
choicesarrayLista com os resultados gerados (completions).
├─ indexintegerÍndice deste resultado na lista.
├─ messageobjectConteúdo da mensagem gerada pelo modelo.
│ ├─ rolestringPapel (role), geralmente assistant.
│ └─ contentstringConteúdo de texto específico da mensagem.
└─ finish_reasonstringMotivo da parada (ex: stop, length, tool_calls).
usageobjectEstatísticas de uso de tokens.
├─ prompt_tokensintegerNúmero de tokens consumidos pelo prompt de entrada.
├─ completion_tokensintegerNúmero de tokens gerados na resposta.
└─ total_tokensintegerNúmero total de tokens consumidos.

Exemplos

Exemplo de Requisição (cURL)

curl --location --request POST 'https://api.codingplanx.ai/v1/chat/completions' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
  "model": "gpt-4o",
  "messages": [
    {
      "role": "user",
      "content": "Olá, por favor, apresente-se."
    }
  ],
  "max_tokens": 1000
}'

Exemplo de Resposta

{
    "id": "chatcmpl-123",
    "object": "chat.completion",
    "created": 1677652288,
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "Olá! Sou um assistente de IA fornecido pela CodingPlanX. Como posso ajudar você hoje?"
            },
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "prompt_tokens": 15,
        "completion_tokens": 25,
        "total_tokens": 40
    }
}

FAQs (Perguntas Frequentes)

Q1: Como ativar o modo JSON? A1: No corpo da requisição, configure "response_format": { "type": "json_object" }. Nota: Ao usar o modo JSON, você deve instruir explicitamente o modelo a produzir JSON na mensagem system ou user, caso contrário, o modelo pode gerar um loop infinito de conteúdo em branco.

Q2: Como devo escolher entre temperature e top_p? A2: Geralmente recomendamos alterar apenas um deles. Se você precisa que o modelo seja mais criativo, aumente a temperature (ex: 0.8); se precisa de respostas mais rigorosas, precisas e determinísticas, diminua-a (ex: 0.2).

Q3: Por que o finish_reason é length? A3: Isso indica que a resposta gerada foi truncada porque atingiu o limite de max_tokens que você definiu ou excedeu o limite máximo de contexto permitido pelo modelo.

Q4: O que é um Token? A4: O Token é a unidade básica de processamento de texto do modelo. Para o idioma chinês, um caractere equivale a cerca de 1 a 2 tokens (em idiomas ocidentais, um token geralmente corresponde a uma sílaba ou pedaço de palavra). A cobrança e os limites de contexto da API são baseados na quantidade total de tokens.

Q5: Qual é a diferença entre presence_penalty e frequency_penalty? A5: A presence_penalty (penalidade de presença) foca em "falar sobre novos tópicos", ou seja, aplica uma penalidade se a palavra já apareceu no texto; a frequency_penalty (penalidade de frequência) foca na "quantidade de repetições", ou seja, quanto mais vezes a palavra aparece, maior será a penalidade aplicada.

Q6: O que devo fazer se quiser o efeito de geração de texto em tempo real (como digitando)? A6: Por favor, defina o parâmetro stream como true. Note que o formato da resposta por streaming é diferente deste documento (que é não-streaming) e é baseado na tecnologia Server-Sent Events (SSE).