可直接运行的代码示例
Python 与 Node.js 的完整 Chat Completions 程序,包含环境准备、模型选择、错误处理和执行命令。
下面两个程序完成同一件事:读取环境变量,发出一次非流式文本请求,输出回答或可定位的错误。示例关闭自动重试,方便确认单次请求结果。
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 Module。
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 与流式事件。
- 图片生成:生成并保存图片文件。
- 超时与重试:上线前配置失败处理。
