본문으로 건너뛰기
한국어

바로 실행 가능한 코드 예제

환경 설정, 모델 선택, 오류 처리 및 실행 명령을 포함한 Python 및 Node.js의 완전한 Chat Completions 프로그램입니다.

아래 두 프로그램은 동일한 작업을 수행합니다: 환경 변수를 읽고, 비 스트리밍 텍스트 요청을 한 번 발행하며, 답변 또는 위치를 파악할 수 있는 오류를 출력합니다. 예제는 자동 재시도를 비활성화하여 단일 요청 결과를 확인하기 쉽게 합니다.

프로그램을 실행하는 동일한 터미널에서 설정합니다. ONEZHE_MODEL은 사용 가능한 모델 목록의 ID로 교체할 수 있습니다.

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

python -m pip install openai을 설치하고, chat.py로 저장한 후, 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("连接失败或超时:检查网络与代理,再核对调用日志。")

npm install openai을 설치하고, chat.mjs로 저장한 후, node chat.mjs을 실행합니다. .mjs 확장자를 사용하면 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;
}

답변과 종료 이유가 표시되어야 합니다. finish_reason이 stop이 아닌 경우, 도구 호출 또는 잘림 여부를 확인합니다. SDK의 요청 ID는 비어 있을 수 있습니다. 서버가 추적 ID를 오류 본문에 넣을 수도 있으므로, 디버깅 시 마스킹된 원본 응답에서 보완합니다.

호출 로그에서 호출을 확인합니다. 프로그램의 종료 상태와 일반 텍스트 유무만으로는 모든 비즈니스 성공 조건을 충족할 수 없으므로, 작업에 따라 구조와 내용을 확인합니다.