Geração de respostas de chat
Geração de respostas de chat compatível com a OpenAI, com streaming, imagens, chamadas de ferramentas e controle de raciocínio.
POST /v1/chat/completions
curl https://api.unquant.io/v1/chat/completions \
-H "Authorization: Bearer $UNQUANT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"glm-5.3-flash",
"messages":[{"role":"user","content":"Hello!"}]}'Campos da requisição
modeltextoObrigatórioglm-5.3-flash ou qwen-3.8-flash-next.
messageslistaObrigatórioAceita os papéis system, user, assistant e tool. O conteúdo é um texto ou uma lista de partes dos tipos text e image_url.
streambooleanoTransmite a resposta em streaming por meio de eventos enviados pelo servidor.
stream_optionsobjeto{"include_usage": true} adiciona um bloco final com as contagens de tokens.
max_tokensinteiroLimite máximo para o comprimento da resposta.
max_completion_tokensinteiroEquivalente a max_tokens.
temperaturenúmeroGrau de aleatoriedade da amostragem.
top_pnúmeroAmostragem por núcleo.
top_kinteiroSeleciona tokens entre os k mais prováveis.
min_pnúmeroProbabilidade relativa mínima para um token.
seedinteiroSemente para uma amostragem reproduzível.
stoptexto ou listaSequências de parada.
frequency_penaltynúmeroPenaliza tokens de acordo com a frequência com que apareceram.
presence_penaltynúmeroPenaliza tokens que já apareceram, independentemente da frequência.
repetition_penaltynúmeroPenalidade multiplicativa por repetição.
toolslistaFunções que o modelo pode chamar, no formato da OpenAI.
tool_choicetexto ou objetoauto, none, required ou uma função especificada pelo nome.
parallel_tool_callsbooleanoPermite várias chamadas de ferramentas em um único turno.
response_formatobjetoSaída em JSON.
logprobsbooleanoRetorna os logaritmos das probabilidades dos tokens.
top_logprobsinteiroQuantidade de alternativas a retornar por token.
ninteiroDeve ser 1: uma resposta por requisição.
reasoning_efforttextoOs dois modelos aceitam none, low ou high; o GLM-5.3-Flash também aceita max.
chat_template_kwargsobjetoOpções de configuração do modelo de formatação do chat, como {"enable_thinking": false}.
Outros campos são ignorados.
Resposta
response.choices[0].message.contentAs contagens de uso são retornadas para você monitorar o consumo; elas nunca geram cobrança.
Streaming
Com "stream": true, a resposta chega por meio de eventos enviados pelo servidor, no formato de blocos da OpenAI, e termina com data: [DONE]. Leia o texto em choices[0].delta.content.
Imagens
Os dois modelos aceitam imagens como partes do tipo image_url que contêm uma URL de dados em base64 (data:image/png;base64,..., JPEG ou WebP). Imagens indicadas por URLs remotas não são baixadas e retornam o erro 400.
{"role": "user", "content": [
{"type": "text", "text": "Describe this image."},
{"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,/9j/4AAQ..."}}
]}Chamadas de ferramentas
Envie tools no mesmo formato da API da OpenAI. Quando o modelo chama uma ferramenta, a resposta contém finish_reason: "tool_calls" e message.tool_calls; execute a ferramenta, acrescente uma mensagem tool com o resultado e o tool_call_id correspondente e faça uma nova chamada.
Raciocínio
Os dois modelos raciocinam antes de responder e aceitam reasoning_effort: none para respostas diretas, low para raciocínio leve ou high para problemas mais difíceis; o GLM-5.3-Flash também aceita max e usa high por padrão. O raciocínio é retornado separadamente em reasoning_content, sem nunca ser misturado ao content. "thinking": {"type": "disabled"} e "chat_template_kwargs": {"enable_thinking": false} também desativam o raciocínio.
Requisições simultâneas
Seu plano define quantas requisições podem ser executadas ao mesmo tempo, considerando todas as suas chaves. Uma requisição que excede esse limite retorna 429 imediatamente e não entra em uma fila; as requisições em andamento não são afetadas.