Convidar amigos e ganhar tokens grátis!Saiba mais

Documentação da API de Chat Completions

Esta interface é usada para fornecer um prompt (Prompt), e o modelo retornará um ou mais resultados de conclusão (completions) previstos. Você pode gerar texto com base no histórico da conversa e controlar a aleatoriedade, o comprimento e o formato do processo de geração.

  • Nome da Interface: Listar Modelos / Chat Completions
  • Método de Requisição: GET (Nota: conforme a definição dos dados fornecidos)
  • Endpoint da Requisição: https://api.codingplanx.ai/v1/models
  • Status: Publicado (Released)

1. Parâmetros da Requisição

1.1 Parâmetros de Header (Cabeçalho)

Nome do ParâmetroObrigatórioTipoValor de ExemploDescrição
Content-TypeSimStringapplication/jsonFormato do corpo da requisição da interface
AcceptSimStringapplication/jsonFormato da resposta da interface
AuthorizationNãoStringBearer {{YOUR_API_KEY}}Chave de API usada para autenticação

1.2 Parâmetros de Body (Corpo)

Embora a definição original seja GET, com base na lógica de negócios, os seguintes parâmetros geralmente são passados por meio de um JSON Body.

Nome do ParâmetroTipoObrigatórioPadrãoDescrição
modelstringSim-ID do modelo a ser usado. Exemplo: gpt-3.5-turbo.
messagesarraySim-Lista de mensagens incluídas na conversa até o momento. Cada mensagem contém um role (papel) e content (conteúdo).
temperaturenumberNão1Temperatura de amostragem, entre 0 e 2. Valores mais altos tornam a saída mais aleatória.
top_pnumberNão1Amostragem de núcleo (nucleus sampling). 0.1 significa que apenas os tokens que compõem os top 10% da massa de probabilidade são considerados.
nintegerNão1Quantas opções de conclusão de chat gerar para cada entrada.
streambooleanNãofalseSe deve usar streaming. Quando definido como true, enviará deltas parciais de mensagens via Server-Sent Events (SSE).
stopstring/arrayNãonullSequência de parada. O modelo parará de gerar quando encontrar esses caracteres.
max_tokensintegerNãoinfNúmero máximo de tokens a serem gerados na saída.
presence_penaltynumberNão0Número entre -2.0 e 2.0. Valores positivos aumentam a probabilidade de o modelo falar sobre novos tópicos.
frequency_penaltynumberNão0Número entre -2.0 e 2.0. Valores positivos diminuem a probabilidade de o modelo repetir as mesmas frases.
logit_biasobjectNãonullModifica a probabilidade de tokens específicos aparecerem na conclusão.
userstringNão-Identificador único representando o usuário final, ajudando a monitorar abusos.
response_formatobjectNão-Especifica o formato de saída do modelo, como { "type": "json_object" } para ativar o modo JSON.
toolsarrayNão-Lista de ferramentas (como funções) que o modelo pode chamar.
tool_choiceobjectNãoautoControla qual função o modelo chamará.

2. Parâmetros de Resposta

Nome do ParâmetroTipoDescrição
idstringIdentificador único para esta requisição.
objectstringTipo de objeto, geralmente chat.completion.
createdintegerTimestamp (em segundos) de quando a requisição foi criada.
choicesarrayLista contendo os resultados da conclusão.
├─ indexintegerÍndice desta escolha na lista.
├─ messageobjectA mensagem específica gerada pelo modelo.
│ ├─ rolestringPapel, geralmente assistant (assistente).
│ └─ contentstringConteúdo do texto da mensagem.
└─ finish_reasonstringMotivo da parada, como stop (parada normal) ou length (atingiu o limite máximo de tokens).
usageobjectEstatísticas de uso de tokens.
├─ prompt_tokensintegerNúmero de tokens consumidos pela entrada (prompt).
├─ completion_tokensintegerNúmero de tokens gerados na saída (completion).
└─ total_tokensintegerNúmero total de tokens consumidos.

3. Exemplos de Requisição

Exemplo de Requisição Bem-sucedida

curl --location --request GET 'https://api.codingplanx.ai/v1/models' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data '{
  "model": "gpt-3.5-turbo",
  "messages": [
    {
      "role": "user",
      "content": "Hello there, how may I assist you today?"
    }
  ],
  "temperature": 1,
  "top_p": 1,
  "n": 1,
  "stream": false,
  "user": "user-1234"
}'

Exemplo de Resposta Bem-sucedida

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

4. FAQs (Perguntas Frequentes)

Q: Por que a documentação mostra o método GET, mas parece uma requisição POST? A: Na especificação padrão da OpenAI, a criação de completions geralmente usa o método POST. No entanto, de acordo com os metadados que você forneceu, esta interface está definida como GET. Certifique-se de confirmar a configuração real do lado do servidor ao fazer a chamada. Se o GET não funcionar, tente usar o POST.

Q: Como devo escolher entre temperature e top_p? A: Recomendamos ajustar apenas um deles. Se você deseja respostas mais precisas e determinísticas, diminua a temperature (ex: 0.2); se deseja respostas mais diversificadas e criativas, pode aumentá-la.

Q: Como ativar o modo JSON? A: Você precisa definir { "type": "json_object" } no parâmetro response_format e instruir explicitamente o modelo (nas mensagens de System ou User) que a saída deve ser no formato JSON. Caso contrário, o modelo pode gerar erros de análise ou um fluxo infinito de espaços em branco.

Q: O que são presence_penalty e frequency_penalty? A:

  • presence_penalty (Penalidade de Presença): Foca em penalizar tópicos que já apareceram, incentivando o modelo a falar sobre novos assuntos.
  • frequency_penalty (Penalidade de Frequência): Foca em penalizar palavras/termos que se repetem, evitando que o modelo repita as mesmas frases em um curto período de tempo.

Q: Como funciona a saída em fluxo (stream: true)? A: Ao ativar o streaming, a API retornará os dados palavra por palavra via Server-Sent Events (SSE). Cada bloco de dados é uma string JSON começando com data: e terminando com data: [DONE]. Isso é extremamente útil para a exibição em tempo real da geração de textos longos no frontend.