---
title: "OpenAI SDK 연동 (Python / Node)"
description: "OpenAI 공식 SDK로 1折AI의 GPT 및 Claude 모델 호출: base_url과 api_key만 변경, 스트리밍 예제와 환경변수 작성법 포함."
headingIds: {"설치":"section-1","호출":"section-2","스트리밍 출력":"section-3","환경변수 사용하여 코드 변경 없이 전환":"section-4","언제 Anthropic SDK로 전환해야 하는가":"section-5","자주 묻는 질문":"section-6","Responses 및 전체 프로그램":"section-7"}
---

<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>
이미 OpenAI SDK로 작성된 코드가 있다면, 1折AI로 전환하려면 두 개의 매개변수만 변경하면 됩니다: `base_url` 및 `api_key`. 모델명에는 현재 사용 가능한 GPT 또는 Claude 모델 ID를 입력합니다.

## 설치

<CodeGroup>
```bash title="Python"
pip install openai
```
```bash title="Node.js"
npm install openai
```
</CodeGroup>

## 호출

<CodeGroup>
```python title="Python"
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://1zheai.com/v1",
    api_key=os.environ["ONEZHE_API_KEY"],
)

resp = client.chat.completions.create(
    model="gpt-5.6-sol",
    messages=[{"role": "user", "content": "用一句话解释什么是 prompt caching"}],
)
print(resp.model)
print(resp.choices[0].message.content)
print(resp.usage)
```
```javascript title="Node.js"
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://1zheai.com/v1",
  apiKey: process.env.ONEZHE_API_KEY,
});

const resp = await client.chat.completions.create({
  model: "gpt-5.6-sol",
  messages: [{ role: "user", content: "用一句话解释什么是 prompt caching" }],
});
console.log(resp.model);
console.log(resp.choices[0].message.content);
console.log(resp.usage);
```
</CodeGroup>

`base_url` 에는 `/v1` 을 포함해야 합니다.

## 스트리밍 출력

<CodeGroup>
```python title="Python"
stream = client.chat.completions.create(
    model="gpt-5.6-sol",
    messages=[{"role": "user", "content": "写一首四行的诗"}],
    stream=True,
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)
```
```javascript title="Node.js"
const stream = await client.chat.completions.create({
  model: "gpt-5.6-sol",
  messages: [{ role: "user", content: "写一首四行的诗" }],
  stream: true,
});
for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}
```
</CodeGroup>

## 환경변수 사용하여 코드 변경 없이 전환

OpenAI 공식 SDK(Python 및 Node)는 `OPENAI_BASE_URL` 및 `OPENAI_API_KEY` 을 읽습니다. 코드에서 매개변수를 전달하지 않을 때, 이 두 변수를 설정하면 전환할 수 있습니다:

```bash
export OPENAI_BASE_URL="https://1zheai.com/v1"
export OPENAI_API_KEY="sk-你的Key"
```

이것은 같은 환경에서 OpenAI SDK를 사용하는 모든 프로그램에 영향을 미친다는 점에 유의하세요.

## 언제 Anthropic SDK로 전환해야 하는가

OpenAI 호환 인터페이스는 "기존 코드가 있고 모델만 변경하고 싶은" 경우에 적합합니다. Prompt Caching의 `cache_control`, extended thinking, Claude의 도구 호출 형식이 필요하다면 [Anthropic SDK](/ko/docs/quickstart-anthropic-sdk/) 를 사용하여 네이티브 인터페이스로 전환하는 것이 더 적합합니다.

## 자주 묻는 질문

<AccordionGroup>
<Accordion title="404？">

`base_url` 에 `/v1` 이 빠져 있습니다. OpenAI SDK는 뒤에 `/chat/completions` 을 붙입니다.

</Accordion>
<Accordion title="GPT 모델을 호출할 수 있나요?">

가능합니다. OpenAI / GPT 모델이 이미 출시되었으므로, [지원되는 모델](/ko/docs/models/) 에서 귀하의 키로 호출할 수 있는 모델 ID를 사용하세요.

</Accordion>
</AccordionGroup>

## Responses 및 전체 프로그램

Responses 프로토콜이 필요하면 [Responses 인터페이스](/ko/docs/api-responses/) 을 참조하세요. Python 또는 Node.js를 처음 사용한다면 [전체 예제](/ko/docs/code-examples/) 를 바로 실행할 수 있으며, 출시 전에 [타임아웃 및 제한된 재시도](/ko/docs/retries/) 를 구성하세요.
