Chat Completions API
Solicitação mínima, campos comuns, leitura de respostas e uso de conversas com várias rodadas para POST /v1/chat/completions.
Comece por este endpoint ao usar um cliente compatível com OpenAI, ou quando você já tem o código chat.completions.create. O endereço completo é https://1zheai.com/v1/chat/completions; para SDKs, preencha a Base URL apenas até /v1.
Solicitação Mínima
Seção intitulada "Solicitação Mínima"Primeiro defina ONEZHE_API_KEY no seu terminal para a chave de API deste site. O modelo abaixo deve existir na sua lista de modelos disponíveis .
curl --fail-with-body --connect-timeout 10 --max-time 120 \ https://1zheai.com/v1/chat/completions \ -H "Authorization: Bearer $ONEZHE_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-5.6-sol", "messages": [{"role": "user", "content": "请用一句中文解释 DNS 的作用。"}] }'--fail-with-body faz com que erros HTTP retornem um código de saída diferente de zero, preservando o corpo do erro; requer curl 7.76 ou posterior. Em versões antigas, use -i primeiro para ver o código de status.
Campos Comuns
Seção intitulada "Campos Comuns"| Campo | Tipo | Uso |
|---|---|---|
model | string | Obrigatório. Copie o ID do modelo deste site; não adicione prefixos de fornecedores de outras plataformas. |
messages | array | Obrigatório. Envie a pergunta desta rodada e as mensagens de histórico a serem mantidas, em ordem. |
messages[].role | string | Para conversa normal use user / assistant; o suporte ao papel de instrução do sistema depende do modelo. |
messages[].content | string ou array de blocos de conteúdo | Use uma string para texto simples primeiro; entrada de imagem requer que o modelo suporte o bloco de conteúdo correspondente. |
stream | boolean | Quando definido como true, leia SSE em vez de tratar a resposta inteira como um único JSON. |
temperature | number | Opcional; alguns modelos de raciocínio não permitem modificá-lo. Omita-o primeiro e depois verifique item por item. |
tools / tool_choice | array / string ou object | Opcional; tanto o modelo quanto o upstream devem suportá-los. A execução real da ferramenta é realizada pelo seu programa. |
Os parâmetros de limite de saída variam por modelo. Não troque mecanicamente os parâmetros de max_tokens do Claude, max_output_tokens do Responses e do Chat Completions; consulte os requisitos do modelo selecionado e, em um erro 400, verifique primeiro o corpo do erro.
Como Ler a Resposta
Seção intitulada "Como Ler a Resposta"O resultado em texto simples está localizado em choices[0].message.content. O motivo de finalização está em choices[0].finish_reason; quando chamadas de ferramenta são retornadas, o texto pode estar vazio e você precisa ler message.tool_calls. O id, model e usage da resposta podem ser usados para verificar esta chamada.
Abaixo é mostrada apenas a estrutura na qual você precisa prestar atenção; campos e números omitidos não representam resultados reais da solicitação:
{ "id": "example-completion", "object": "chat.completion", "model": "gpt-5.6-sol", "choices": [{ "index": 0, "message": {"role": "assistant", "content": "DNS 将域名解析为网络地址。"}, "finish_reason": "stop" }]}Conversa com Várias Rodadas
Seção intitulada "Conversa com Várias Rodadas"O endpoint não se lembra automaticamente da rodada anterior apenas porque você reutiliza a mesma chave de API. Envie o histórico que deseja manter junto:
{ "model": "gpt-5.6-sol", "messages": [ {"role": "user", "content": "我正在学习 DNS。"}, {"role": "assistant", "content": "我们可以从域名解析开始。"}, {"role": "user", "content": "它和 HTTP 有什么区别?"} ]}Quanto mais longo o histórico, maior a solicitação. Os aplicamentos devem recortar ou resumir de acordo com os limites de contexto e manter pares completos de chamada e resultado de ferramentas.
Streaming e Próximos Passos
Seção intitulada "Streaming e Próximos Passos"Após adicionar "stream": true, os deltas de texto vêm de choices[].delta.content. Alguns eventos não têm texto ou choices está vazio, então você deve verificar ao ler; veja Saída em Streaming para detalhes.
Execute o exemplo completo em Python / Node.js diretamente, ou mude para Responses ; para parâmetros nativos do Claude veja Messages .
