Convidar amigos e ganhar tokens grátis!Saiba mais

Controlar o Nível de Esforço de Raciocínio (Chat Completions)

Descrição do Endpoint

Dado um prompt, o modelo retornará uma ou mais previsões de resposta (suporta o controle do nível de esforço de raciocínio do modelo).

Instruções da Requisição

  • Método da Requisição: POST
  • URL da Requisição: https://api.codingplanx.ai/v1/chat/completions

Cabeçalhos da Requisição (Headers)

Nome do ParâmetroObrigatórioTipoValor de ExemploDescrição
Content-TypeSimstringapplication/jsonFormato dos dados
AcceptSimstringapplication/jsonFormato de aceitação
AuthorizationNãostringBearer {{YOUR_API_KEY}}Credenciais de autenticação

Parâmetros do Corpo (Body)

Formato dos dados: application/json

Nome do ParâmetroObrigatórioTipoDescrição
modelSimstringO ID do modelo a ser usado (por exemplo, o4-mini, etc.).
messagesSimarrayLista de mensagens que compõem a conversa até o momento. Contém role (ex: user/assistant) e content (conteúdo da mensagem).
toolsSimarrayLista de ferramentas (funções) que o modelo pode chamar. Usado para fornecer funções para as quais o modelo pode gerar entradas em JSON.
tool_choiceSimobjectControla qual função o modelo chamará. none significa não chamar nenhuma, auto significa seleção automática.
reasoning_effortNãostringParâmetro Principal: Controla o nível de esforço (profundidade de pensamento) do modelo de raciocínio ao gerar a resposta. Valores opcionais comuns são low (baixo), medium (médio), high (alto).
temperatureNãonumberTemperatura de amostragem, entre 0 e 2. Valores mais altos (como 0.8) tornam a saída mais aleatória, valores mais baixos (como 0.2) a tornam mais focada e determinística. Recomenda-se modificar apenas este ou o top_p.
top_pNãonumberAmostragem de núcleo (nucleus sampling). 0.1 significa que apenas os tokens que compõem os 10% do topo da massa de probabilidade serão considerados. Recomenda-se modificar apenas este ou a temperature.
nNãointegerO padrão é 1. Quantas opções de conclusão de chat gerar para cada mensagem de entrada.
streamNãobooleanO padrão é false. Se definido como true, enviará incrementos parciais da mensagem como Server-Sent Events (SSE) e encerrará o fluxo com data: [DONE].
stopNãostringString de até 4 sequências onde a API parará de gerar novos tokens.
max_tokensNãointegerO número máximo de tokens a serem gerados na conclusão do chat. O comprimento total dos tokens de entrada e gerados é limitado pelo contexto do modelo.
presence_penaltyNãonumberNúmero entre -2.0 e 2.0. Valores positivos penalizam tokens novos com base no fato de já terem aparecido no texto, aumentando a probabilidade de o modelo falar sobre novos tópicos.
frequency_penaltyNãonumberNúmero entre -2.0 e 2.0. Valores positivos penalizam tokens novos com base em sua frequência atual no texto, reduzindo a probabilidade de repetir o mesmo conteúdo.
logit_biasNãoobjectAceita um objeto JSON mapeando IDs de tokens para valores de viés (-100 a 100), usado para modificar a probabilidade de um token específico aparecer na conclusão.
userNãostringIdentificador único que representa o usuário final, auxiliando no monitoramento e detecção de abusos.
response_formatNãoobjectEspecifica o formato que o modelo deve gerar. Por exemplo, {"type": "json_object"} ativa o modo JSON.
seenNãointegerRecurso em fase beta (semelhante ao seed). Se especificado, o sistema fará o possível para amostrar de forma determinística, permitindo que os mesmos parâmetros retornem os mesmos resultados.

Exemplo de Requisição

{
  "model": "o4-mini",
  "max_tokens": 500,
  "messages": [
    {
      "role": "user",
      "content": "Olá, por favor, explique em detalhes os princípios da computação quântica."
    }
  ],
  "temperature": 1.0,
  "stream": false,
  "reasoning_effort": "medium"
}

Instruções de Resposta

Parâmetros do Corpo da Resposta

Formato dos dados: application/json

Nome do ParâmetroTipoDescrição
idstringO identificador único desta requisição.
objectstringTipo do objeto, geralmente chat.completion.
createdintegerTimestamp do momento da criação.
choicesarrayLista com os resultados da conclusão.
└ indexintegerÍndice da escolha atual na lista.
└ messageobjectCorpo da mensagem gerada pelo modelo. Contém role e content.
└ finish_reasonstringMotivo pela qual a geração parou (ex: stop, length).
usageobjectEstatísticas de consumo de Tokens.
└ prompt_tokensintegerNúmero de Tokens consumidos pelo prompt.
└ completion_tokensintegerNúmero de Tokens consumidos pela geração do modelo.
└ total_tokensintegerNúmero total de Tokens consumidos.

Exemplo de Resposta (HTTP 200 OK)

{
    "id": "chatcmpl-123",
    "object": "chat.completion",
    "created": 1677652288,
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "\r
\r
Hello there, how may I assist you today?"
            },
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "prompt_tokens": 9,
        "completion_tokens": 12,
        "total_tokens": 21
    }
}

FAQs (Perguntas Frequentes)

1. Qual é a função do parâmetro reasoning_effort?

O parâmetro reasoning_effort é utilizado para controlar quanto recurso computacional e tempo os modelos com capacidades avançadas de raciocínio (Reasoning) (como a série o1/o4 da OpenAI) gastam em pensamentos internos antes de fornecer a resposta final. Normalmente suporta três níveis: low (baixo), medium (médio) e high (alto). Quando configurado para high, o modelo realiza deduções lógicas mais profundas, ideal para resolver problemas complexos de matemática ou programação; no entanto, o tempo de resposta também aumentará correspondentemente.

2. Por que, ao ativar stream: true, não recebo uma resposta JSON padrão?

Quando a transmissão contínua (stream: true) está ativada, a API utiliza o protocolo Server-Sent Events (SSE) para retornar blocos de dados (Chunks) continuamente. Cada bloco de dados é enviado no formato data: {...} e, quando todo o conteúdo terminar de ser transmitido, será enviada a mensagem data: [DONE]. Os desenvolvedores precisam ler o fluxo linha por linha e analisar a string JSON após data: para concatenar a resposta completa.

3. O documento menciona que se recomenda modificar apenas temperature ou top_p. Por quê?

Ambos os parâmetros são usados para controlar a aleatoriedade e a diversidade do conteúdo gerado pelo modelo. A temperature altera a distribuição de probabilidade escalando os logits, enquanto o top_p (Amostragem de núcleo) restringe o pool de candidatos ao cortar vocabulários com probabilidade acumulada mais baixa. Ajustar simultaneamente ambos os parâmetros fará com que o comportamento do modelo se torne difícil de prever e controlar. Portanto, a melhor prática é fixar um deles (geralmente mantendo o padrão) e ajustar apenas o outro para satisfazer as necessidades de controle da "aleatoriedade".

4. O que significa se o finish_reason retornar "length"?

Isso significa que a resposta do modelo foi forçadamente truncada (cortada). Geralmente, há dois motivos para isso: primeiro, a quantidade de Tokens gerados atingiu o limite definido no parâmetro max_tokens na requisição; segundo, o número total de Tokens (o seu Prompt da requisição mais a resposta gerada) excedeu o limite máximo da janela de contexto permitido por esse modelo. Neste caso, recomenda-se encurtar o histórico da conversa ou aumentar o valor do parâmetro max_tokens.

5. Como forçar o modelo a retornar os dados no formato JSON?

Você pode ativar o modo JSON passando "response_format": {"type": "json_object"} no corpo da requisição. MUITO IMPORTANTE: Ao ativar este modo, você deve solicitar explicitamente ao modelo em linguagem natural, dentro do campo messages (geralmente no prompt do system ou user), que a saída seja em JSON. Caso contrário, o modelo poderá entrar em um loop infinito gerando apenas espaços em branco até atingir o limite de Tokens.