すぐに実行できるコード例
PythonとNode.jsによる完全なChat Completionsプログラム。環境設定、モデル選択、エラー処理、実行コマンドを網羅しています。
以下の2つのプログラムは同じ動作をします。環境変数を読み込み、非ストリーミングのテキストリクエストを1回送信し、応答または特定可能なエラーを出力します。例では自動リトライを無効にしているため、1回のリクエストの結果を確認できます。
1. 環境変数の準備
「1. 環境変数の準備」というセクションプログラムを実行するのと同じターミナルで設定してください。ONEZHE_MODELは利用可能なキーのあるモデル からIDに差し替えられます。
export ONEZHE_API_KEY="sk-你的Key"export ONEZHE_MODEL="gpt-5.6-sol"$env:ONEZHE_API_KEY = "sk-你的Key"$env:ONEZHE_MODEL = "gpt-5.6-sol"2. 言語を選んで実行
「2. 言語を選んで実行」というセクションPython
「Python」というセクションpython -m pip install openaiをインストールし、chat.pyとして保存して、python chat.pyを実行します。
import osimport sysimport 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("连接失败或超时:检查网络与代理,再核对调用日志。")Node.js
「Node.js」というセクションnpm install openaiをインストールし、chat.mjsとして保存して、node chat.mjsを実行します。.mjs拡張子を直接使うとES Modulesが有効になります。
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;}3. 結果の確認
「3. 結果の確認」というセクション応答と終了理由が表示されるはずです。finish_reasonがstopでない場合は、ツール呼び出しか切り詰めかを確認してください。SDKのリクエストIDは空の場合があります。サーバーがエラーボディにトレースIDを含めることもあるため、デバッグ時はマスクされた生レスポンスから補ってください。
呼び出しログ で呼び出しを確認してください。プログラムの終了ステータスやプレーンテキストの有無だけでは、すべての業務上の成功条件をカバーできません。タスクに応じて構造と内容を確認してください。
続けて拡張する
「続けて拡張する」というセクション- Chat Completions :マルチターン履歴とフィールドの説明。
- Messages :Claudeネイティブのコンテンツブロック。
- Responses :GPT Responsesとストリーミングイベント。
- 画像生成 :画像ファイルの生成と保存。
- タイムアウトとリトライ :公開前に失敗時の処理を設定。
