---
title: "바로 실행 가능한 코드 예제"
description: "환경 설정, 모델 선택, 오류 처리 및 실행 명령을 포함한 Python 및 Node.js의 완전한 Chat Completions 프로그램입니다."
headingIds: {"1. 환경 변수 준비":"section-1","2. 언어 선택하여 실행":"section-2","Python":"section-3","Node.js":"section-4","3. 결과 확인":"section-5","계속 확장하기":"section-6"}
---

<aside className="docs-publication" data-pagefind-ignore>

[1ZheAI](https://1zheai.com/en/editorial/#publisher)가 관리하는 문서입니다. [출처 및 수정 사항](https://1zheai.com/en/editorial/).

오류를 발견하셨나요? 페이지 주소와 설명을 첨부하여 [고객 지원](mailto:support@1zheai.com)으로 문의해 주세요. API 키나 계정 정보는 보내지 마세요.

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

## 1. 환경 변수 준비

프로그램을 실행하는 동일한 터미널에서 설정합니다. `ONEZHE_MODEL`은 [사용 가능한 모델 목록](/ko/docs/api-models/)의 ID로 교체할 수 있습니다.

<CodeGroup>
```bash title="macOS / Linux"
export ONEZHE_API_KEY="sk-你的Key"
export ONEZHE_MODEL="gpt-5.6-sol"
```
```powershell title="Windows PowerShell"
$env:ONEZHE_API_KEY = "sk-你的Key"
$env:ONEZHE_MODEL = "gpt-5.6-sol"
```
</CodeGroup>

## 2. 언어 선택하여 실행

### Python

`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("连接失败或超时：检查网络与代理，再核对调用日志。")
```

### Node.js

`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;
}
```

## 3. 결과 확인

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

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

## 계속 확장하기

- [Chat Completions](/ko/docs/api-chat-completions/): 다중 대화 기록 및 필드 설명.
- [Messages](/ko/docs/api-messages/): Claude 네이티브 콘텐츠 블록.
- [Responses](/ko/docs/api-responses/): GPT Responses 및 스트리밍 이벤트.
- [이미지 생성](/ko/docs/api-images/): 이미지 파일 생성 및 저장.
- [타임아웃 및 재시도](/ko/docs/retries/): 출시 전 실패 처리 구성.
