Aller au contenu
Français

Interface de conversation Chat Completions

Requête minimale, champs courants, lecture de la réponse et rédaction de conversations multi-tours pour POST /v1/chat/completions.

Si vous utilisez un client compatible OpenAI, ou si vous disposez déjà de code chat.completions.create, commencez par cette interface. L’adresse complète est https://1zheai.com/v1/chat/completions ; pour le SDK, la Base URL ne doit contenir que jusqu’à /v1.

Définissez d’abord ONEZHE_API_KEY dans le terminal avec la clé de ce site. Le modèle ci-dessous doit exister dans votre liste de modèles disponibles.

bash
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 fait retourner un code de sortie non nul en cas d’erreur HTTP tout en conservant le corps de l’erreur ; nécessite curl 7.76 ou une version plus récente. Sur une version antérieure, utilisez d’abord -i pour afficher le code de statut.

ChampTypeMode d’emploi
modelstringObligatoire, copiez l’ID du modèle de ce site, sans ajouter de préfixe de fournisseur d’une autre plateforme
messagesarrayObligatoire, envoyez dans l’ordre la question de ce tour et les messages d’historique à conserver
messages[].rolestringPour une conversation normale, utilisez user / assistant ; la prise en charge du rôle d’instruction système dépend du modèle
messages[].contentstring ou tableau de blocs de contenuPour du texte pur, utilisez d’abord une chaîne ; l’entrée d’image nécessite que le modèle prenne en charge le bloc de contenu correspondant
streambooleanLorsqu’il est défini sur true, lisez le SSE au lieu de traiter l’intégralité de la réponse comme un unique JSON
temperaturenumberFacultatif, certains modèles de raisonnement ne permettent pas de le modifier ; omettez-le d’abord puis vérifiez item par item
tools / tool_choicearray / string ou objectFacultatif, doit être pris en charge à la fois par le modèle et l’amont ; l’exécution réelle des outils est effectuée par votre programme

Les paramètres de limite de sortie varient selon le modèle. Ne remplacez pas mécaniquement les paramètres de Claude max_tokens, ceux de Responses max_output_tokens et ceux de Chat Completions ; référez-vous aux exigences du modèle choisi, et en cas de 400, consultez d’abord le corps de l’erreur.

Le résultat en texte se trouve dans choices[0].message.content. La raison de fin se trouve dans choices[0].finish_reason ; lorsqu’un appel d’outil est renvoyé, le texte peut être vide et vous devrez lire message.tool_calls. Les id, model et usage de la réponse peuvent servir à vérifier cet appel.

Ci-dessous, seules les structures à examiner sont affichées ; les champs et chiffres omis ne représentent pas le résultat d’une vraie requête :

json
{
"id": "example-completion",
"object": "chat.completion",
"model": "gpt-5.6-sol",
"choices": [{
"index": 0,
"message": {"role": "assistant", "content": "DNS 将域名解析为网络地址。"},
"finish_reason": "stop"
}]
}

L’interface ne se souvient pas automatiquement du tour précédent parce que vous réutilisez la même clé. Envoyez ensemble l’historique à conserver :

json
{
"model": "gpt-5.6-sol",
"messages": [
{"role": "user", "content": "我正在学习 DNS。"},
{"role": "assistant", "content": "我们可以从域名解析开始。"},
{"role": "user", "content": "它和 HTTP 有什么区别?"}
]
}

Plus l’historique est long, plus la requête est volumineuse. L’application doit tronquer ou résumer selon la limite de contexte, et conserver les paires complètes d’appels d’outils et de résultats.

Avec "stream": true ajouté, les incrémentes de texte proviennent de choices[].delta.content. Certains événements n’ont pas de texte ou choices est vide ; à la lecture, il faut en tenir compte ; voir sortie en flux.

Exécutez directement l’exemple complet Python / Node.js, ou passez à Responses ; pour les paramètres natifs de Claude, voir Messages.