Aller au contenu
Français

Exemples de code exécutables

Programmes complets de Chat Completions en Python et Node.js, incluant la préparation de l'environnement, le choix du modèle, la gestion des erreurs et les commandes d'exécution.

Les deux programmes suivants font la même chose : lire les variables d’environnement, émettre une requête texte non en flux, et afficher la réponse ou une erreur localisable. Les exemples désactivent la nouvelle tentative automatique pour faciliter la vérification du résultat d’une seule requête.

À définir dans le même terminal que celui où le programme s’exécute ; ONEZHE_MODEL peut être remplacé par l’ID dans modèles disponibles.

macOS / Linux
export ONEZHE_API_KEY="sk-你的Key"
export ONEZHE_MODEL="gpt-5.6-sol"

Installer python -m pip install openai, enregistrer sous chat.py, exécuter python chat.py.

python
import os
import sys
import openai
api_key = os.environ.get("ONEZHE_API_KEY")
if not api_key:
sys.exit("请先设置 ONEZHE_API_KEY 环境变量。")
client = openai.OpenAI(
api_key=api_key,
base_url="https://1zheai.com/v1",
timeout=120.0,
max_retries=0,
)
try:
response = client.chat.completions.create(
model=os.environ.get("ONEZHE_MODEL", "gpt-5.6-sol"),
messages=[{"role": "user", "content": "用一句中文解释 DNS。"}],
)
if not response.choices:
sys.exit("响应没有 choices,请检查响应协议。")
choice = response.choices[0]
print(choice.message.content or "本次响应没有普通文本。")
print("finish_reason:", choice.finish_reason)
print("response_id:", response.id)
except openai.APIStatusError as exc:
print("HTTP:", exc.status_code, "request_id:", exc.request_id, file=sys.stderr)
print("请查看控制台日志和错误码文档;不要公开密钥。", file=sys.stderr)
sys.exit(1)
except openai.APIConnectionError:
sys.exit("连接失败或超时:检查网络与代理,再核对调用日志。")

Installer npm install openai, enregistrer sous chat.mjs, exécuter node chat.mjs. L’extension .mjs active directement les ES Module.

javascript
import OpenAI from "openai";
if (!process.env.ONEZHE_API_KEY) {
console.error("请先设置 ONEZHE_API_KEY 环境变量。");
process.exit(1);
}
const client = new OpenAI({
apiKey: process.env.ONEZHE_API_KEY,
baseURL: "https://1zheai.com/v1",
timeout: 120_000,
maxRetries: 0,
});
try {
const response = await client.chat.completions.create({
model: process.env.ONEZHE_MODEL || "gpt-5.6-sol",
messages: [{ role: "user", content: "用一句中文解释 DNS。" }],
});
const choice = response.choices[0];
if (!choice) throw new Error("响应没有 choices,请检查响应协议。");
console.log(choice.message.content || "本次响应没有普通文本。");
console.log("finish_reason:", choice.finish_reason);
console.log("response_id:", response.id);
} catch (error) {
if (error instanceof OpenAI.APIError) {
console.error("HTTP:", error.status, "request_id:", error.request_id);
console.error("请检查网络、控制台日志和错误码文档。");
} else {
console.error(error instanceof Error ? error.message : "未知错误");
}
process.exitCode = 1;
}

Vous devriez voir une réponse et la raison d’arrêt. Lorsque finish_reason n’est pas stop, vérifiez s’il s’agit d’un appel d’outil ou d’une troncature. L’ID de requête du SDK peut être vide ; le serveur peut également placer l’ID de traçage dans le corps de l’erreur, à compléter depuis la réponse brute désensibilisée lors du débogage.

Consultez les journaux d’appel pour vérifier les appels. Le code de sortie du programme et la présence ou non de texte normal ne couvrent pas toutes les conditions de succès métier ; vérifiez la structure et le contenu selon votre tâche.