Pular para o conteúdo

Chat completions

Gera uma resposta do modelo a partir de uma conversa. Compatível com POST /v1/chat/completions da OpenAI.

POST https://api.norlen.io/v1/chat/completions
Authorization: Bearer SUA_API_KEY
Content-Type: application/json
CampoTipoObrigatórioDescrição
modelstringsimid do modelo, ex. qwen3.6-35b, qwen3-coder, gemma-4-12b
messagesarraysimLista de mensagens { role, content }. rolesystem, user, assistant
temperaturenumbernãoAleatoriedade (0–2). Padrão 1
top_pnumbernãoAmostragem por núcleo (0–1)
max_tokensintegernãoMáximo de tokens na resposta
streambooleannãoSe true, envia a resposta token a token via SSE
stopstring | arraynãoSequência(s) que interrompem a geração
frequency_penaltynumbernãoPenaliza repetição (-2 a 2)
presence_penaltynumbernãoIncentiva novos tópicos (-2 a 2)
seedintegernãoTorna a saída mais reprodutível
Terminal window
curl https://api.norlen.io/v1/chat/completions \
-H "Authorization: Bearer $NORLEN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.6-35b",
"messages": [
{"role": "system", "content": "Você é um assistente conciso."},
{"role": "user", "content": "O que é RAG em uma frase?"}
],
"temperature": 0.7
}'
{
"id": "chatcmpl-...",
"object": "chat.completion",
"created": 1750000000,
"model": "qwen3.6-35b",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "RAG combina recuperação de documentos com geração..." },
"finish_reason": "stop"
}
],
"usage": { "prompt_tokens": 32, "completion_tokens": 28, "total_tokens": 60 }
}

Com stream: true, a resposta chega em chunks no formato Server-Sent Events. Cada chunk traz um delta; o fluxo termina com data: [DONE].

stream = client.chat.completions.create(
model="qwen3.6-35b",
messages=[{"role": "user", "content": "Escreva um haiku sobre infraestrutura."}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="", flush=True)