> ## Documentation Index
> Fetch the complete documentation index at: https://docs.laozhang.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 텍스트 생성 API: OpenAI·Claude·Gemini 프로토콜

> OpenAI 호환, Anthropic Messages, Gemini 네이티브 중 요청 형식을 고르고 모델 가격을 비교한 뒤 스트리밍 응답을 읽는 방법을 안내합니다.

LaoZhang API는 같은 API 키로 세 가지 요청 형식의 텍스트 모델을 제공합니다. OpenAI 호환 Chat Completions, Anthropic Messages, Gemini 네이티브 generateContent입니다. 새 프로젝트라면 지원하는 텍스트 모델이 가장 많은 Chat Completions를 쓰세요.

| 항목 | 내용 |
| - | - |
| API 호스트 | `https://api.laozhang.ai` |
| 새 프로젝트 | `POST /v1/chat/completions`에 `model`과 `messages`를 보내고 `choices[0].message.content`에서 응답 읽기 |
| 기존 SDK 앱 | Anthropic SDK, Claude Code, Google Gen AI SDK를 이미 쓴다면 요청 형식은 그대로 두고 base URL과 API 키만 바꾸기 |
| 모델별 지원 형식 | [모델 및 가격](https://docs.laozhang.ai/ko/models.md)의 **Endpoints** 열 |
| 가격 | 아래 주요 텍스트 모델 표 참고 |

## 프로토콜 선택

* **새 프로젝트, 또는 OpenAI SDK나 OpenAI 형식 기반 클라이언트**: OpenAI 호환 Chat Completions를 쓰세요. [OpenAI 프로토콜 레퍼런스](https://docs.laozhang.ai/ko/api-reference/chat-completions.md)를 참고하세요.
* **Anthropic SDK, Claude Code, 기타 Messages 클라이언트**: Anthropic Messages를 쓰세요. [Claude 프로토콜 레퍼런스](https://docs.laozhang.ai/ko/api-reference/claude.md)를 참고하세요.
* **Google Gen AI SDK, 또는 Gemini 네이티브 필드에 의존하는 코드**: Gemini 형식을 쓰세요. [Gemini 프로토콜 레퍼런스](https://docs.laozhang.ai/ko/api-reference/gemini.md)를 참고하세요.

형식마다 엔드포인트가 다릅니다.

```text theme={null}
OpenAI 호환          POST https://api.laozhang.ai/v1/chat/completions
Anthropic Messages   POST https://api.laozhang.ai/v1/messages
Gemini 네이티브      POST https://api.laozhang.ai/v1beta/models/{model}:generateContent
```

SDK를 쓸 때 OpenAI SDK의 base URL은 `https://api.laozhang.ai/v1`로 지정합니다. Anthropic SDK와 Google Gen AI SDK는 호스트 루트 `https://api.laozhang.ai`를 받고 경로는 SDK가 붙입니다.

Anthropic Messages 엔드포인트는 가격 설정에서 이 형식으로 표시된 모델을 제공하며 다음이 포함됩니다.

* 2026년 10월 18일부터 다시 제공되는 Claude 모델. 전환하기 전에 [Claude 모델 제한](https://docs.laozhang.ai/ko/api-reference/claude.md)을 확인하세요.
* `glm-5.2`(`default` 토큰 그룹)
* `deepseek-v4-pro`
* `deepseek-v4-flash`

요청과 응답의 구조가 다르므로 형식을 바꾸려면 요청 코드와 파서를 모두 고쳐야 합니다.

| | OpenAI 호환 | Anthropic Messages | Gemini 네이티브 |
| - | - | - | - |
| 모델 ID | 본문의 `model` | 본문의 `model` | URL 경로 |
| 입력 | `messages` | `messages`와 필수 `max_tokens` | `contents[].parts[]` |
| 시스템 프롬프트 | `system` 역할 메시지 | 최상위 `system` | `systemInstruction` |
| 응답 텍스트 | `choices[0].message.content` | `content[]`의 `text` 블록 | `parts[]`의 `text` |
| 스트리밍 | `"stream": true` | `"stream": true` | `streamGenerateContent` |

`gemini-3.8-flash`(Chat Completions와 Gemini 네이티브)처럼 두 형식으로 표시된 모델은 어느 쪽이든 받지만, 요청 하나에는 한 형식의 필드만 써야 합니다.

## 주요 텍스트 모델

아래 가격은 2026년 10월 18일 기준 LaoZhang API 공개 가격입니다. `default` 토큰 그룹의 표시 가격이며 단위는 1M 토큰당 미국 달러입니다. 캐시 읽기 가격과 다른 모델, 다른 토큰 그룹은 [모델 및 가격](https://docs.laozhang.ai/ko/models.md)에서 확인하세요.

| 모델 ID | 형식 | 입력 / 출력 |
| - | - | - |
| `gpt-6-luna` | OpenAI 호환 | \$0.1 / \$0.5 |
| `gpt-6-sol` | OpenAI 호환 | \$2 / \$10 |
| `gpt-6.1-sol` | OpenAI 호환 | \$2 / \$10 |
| `gpt-6-astra` | OpenAI 호환 | \$10 / \$50 |
| `gpt-5.6-luna` | OpenAI 호환 | \$0.2 / \$1.2 |
| `gpt-5.6-terra` | OpenAI 호환 | \$2 / \$12 |
| `gpt-5.6-sol` | OpenAI 호환 | \$4 / \$20 |
| `gpt-5.4-mini` | OpenAI 호환 | \$0.75 / \$4.5 |
| `gpt-5.4` | OpenAI 호환 | \$2.5 / \$15 |
| `gemini-4-argon` | OpenAI 호환, Gemini 네이티브 | \$2 / \$10 |
| `gemini-3.8-flash` | OpenAI 호환, Gemini 네이티브 | \$0.75 / \$3.75 |
| `gemini-3.6-flash` | OpenAI 호환, Gemini 네이티브 | \$1.5 / \$7.5 |
| `gemini-3.5-flash-lite` | OpenAI 호환, Gemini 네이티브 | \$0.3 / \$2.502 |
| `claude-opus-5-5` | OpenAI 호환, Anthropic Messages | \$4 / \$20 |
| `claude-sonnet-5-5` | OpenAI 호환, Anthropic Messages | \$2 / \$10 |
| `claude-haiku-5-5` | OpenAI 호환, Anthropic Messages | \$0.1 / \$0.5 |
| `glm-5.2` | OpenAI 호환, Anthropic Messages | 카탈로그 참고 |
| `deepseek-v4-pro` | OpenAI 호환, Anthropic Messages | 카탈로그 참고 |
| `deepseek-v4-flash` | OpenAI 호환, Anthropic Messages | 카탈로그 참고 |
| `o3-pro` | Responses | 카탈로그 참고 |

* GPT-6 모델, GPT-5.6 모델, `gpt-5.4`, `claude-haiku-5-5`는 긴 입력에 더 높은 구간 가격을 부과합니다. 기준값과 가격은 [모델 및 가격](https://docs.laozhang.ai/ko/models.md)의 구간별 가격 표에 있습니다.
* GPT-6 세 모델 중 고르는 방법과 Chat Completions에서의 파라미터·도구 호출에 대한 OpenAI 규칙은 [GPT-6 출시 공지](https://docs.laozhang.ai/en/announcements/gpt-6-launch-2026-09.md)를 참고하세요.
* 표의 OpenAI 모델은 Responses 엔드포인트 `POST /v1/responses`에서도 쓸 수 있으며 `o3-pro` 계열은 Responses만 지원합니다.
* GPT-6 Astra와 GPT-6.1 Sol의 도구 호출은 Responses가 필요합니다. GPT-6.1 Sol의 다른 파라미터 차이는 [GPT-6.1 Sol 출시 공지](https://docs.laozhang.ai/en/announcements/gpt-6-1-sol-2026-10.md)를, 예제는 [LaoZhang API에서 OpenAI 모델 사용하기](https://docs.laozhang.ai/ko/api-reference/openai.md)를 참고하세요.
* Gemini 4 Argon이 깊이 추론해야 한다면 `high` 사고 수준을 보내세요. 사고 수준과 출시 가격은 [Gemini 4 Argon 출시 공지](https://docs.laozhang.ai/en/announcements/gemini-4-argon-2026-10.md)를 참고하세요.
* 비전 모델에 이미지를 보내려면 [이미지 이해 API](https://docs.laozhang.ai/en/api-capabilities/vision-understanding.md)를 참고하세요.

## 첫 요청 보내기

[토큰 관리](https://api.laozhang.ai/token)에서 API 키를 만듭니다. 과금 방식은 사용량 우선(콘솔 표시: 按量优先, 권장) 또는 사용량 과금(按量计费)으로 설정하고, 원하는 모델을 호출할 수 있는 토큰 그룹인지 확인하세요. 그런 다음 키를 환경 변수로 설정합니다.

```bash theme={null}
export LAOZHANG_API_KEY="YOUR_LAOZHANG_API_KEY"
```

아래 예제는 OpenAI 호환 형식으로 `gpt-5.4-mini`에 메시지 한 개를 보냅니다. 실행하기 전에 SDK를 설치하세요.

* Python: `python -m pip install openai`를 실행합니다.
* Node.js: `npm install openai`를 실행하고, 코드를 `chat.mjs`로 저장한 뒤 `node chat.mjs`로 실행합니다.

> [tab] cURL
>
> ```bash theme={null}
> curl --fail-with-body --max-time 120 \
>   "https://api.laozhang.ai/v1/chat/completions" \
>   -H "Authorization: Bearer $LAOZHANG_API_KEY" \
>   -H "Content-Type: application/json" \
>   -d '{
>     "model": "gpt-5.4-mini",
>     "messages": [{"role": "user", "content": "connected라고만 답하세요"}]
>   }'
> ```

> [tab] Python
>
> ```python theme={null}
> import os
> from openai import OpenAI
>
> client = OpenAI(
>     api_key=os.environ["LAOZHANG_API_KEY"],
>     base_url="https://api.laozhang.ai/v1",
>     timeout=120.0,
>     max_retries=0,
> )
> response = client.chat.completions.create(
>     model="gpt-5.4-mini",
>     messages=[{"role": "user", "content": "connected라고만 답하세요"}],
> )
> print(response.choices[0].message.content)
> ```

> [tab] Node.js
>
> ```javascript theme={null}
> import OpenAI from "openai";
>
> const client = new OpenAI({
>   apiKey: process.env.LAOZHANG_API_KEY,
>   baseURL: "https://api.laozhang.ai/v1",
>   timeout: 120_000,
>   maxRetries: 0,
> });
> const response = await client.chat.completions.create({
>   model: "gpt-5.4-mini",
>   messages: [{ role: "user", content: "connected라고만 답하세요" }],
> });
> console.log(response.choices[0].message.content);
> ```

응답은 `connected`여야 합니다. 다른 모델을 시험하려면 `model`을 **Endpoints**에 OpenAI 호환이 포함된 ID로 바꾸세요. SDK 예제는 자동 재시도를 꺼 두었으므로 요청을 다시 보낼 시점은 애플리케이션이 정합니다.

## 응답 스트리밍

`"stream": true`를 추가하면 모델이 답을 쓰는 동안 서버 전송 이벤트(SSE)로 응답을 받습니다. 형식마다 스트리밍 방식이 조금씩 다릅니다.

* **OpenAI 호환**: `choices[0].delta.content`를 순서대로 이어 붙이고, `choices`나 `content`가 없는 청크는 건너뜁니다. 스트림은 `data: [DONE]`으로 끝납니다. 전체 cURL·Python 예제와 원본 이벤트는 [OpenAI 프로토콜 레퍼런스](https://docs.laozhang.ai/ko/api-reference/chat-completions.md)의 스트리밍 절에 있습니다.
* **Anthropic Messages**: 텍스트는 `content_block_delta` 이벤트의 `delta.text`로 도착하며 `message_stop`이 와야 응답이 완료된 것입니다. [Claude 프로토콜 레퍼런스](https://docs.laozhang.ai/ko/api-reference/claude.md)를 참고하세요.
* **Gemini 네이티브**: `generateContent`를 `streamGenerateContent`로 바꾸고 `?alt=sse`를 붙입니다. 각 이벤트에 `candidates`가 들어 있는 부분 응답이 실립니다. [Gemini 프로토콜 레퍼런스](https://docs.laozhang.ai/ko/api-reference/gemini.md)를 참고하세요.
* 종료 표시가 오기 전에 연결이 닫히면 받은 텍스트는 불완전한 것입니다. 요청을 실패로 처리하거나 다시 보내세요. cURL에서는 출력 버퍼링을 끄도록 `-N`을 추가하세요.

## 자주 만나는 오류 해결

* **URL에 `/v1/v1`이 있는 404**: SDK base URL이 경로 일부를 중복합니다. OpenAI SDK는 `https://api.laozhang.ai/v1`, Anthropic·Google Gen AI SDK는 `https://api.laozhang.ai`를 쓰세요.
* **모델을 쓸 수 없음, 403, 404**: 카탈로그에서 정확한 모델 ID를 복사하고, 내 키의 토큰 그룹에 그 모델이 포함되는지, 모델이 보내는 형식을 지원하는지 확인하세요. 예를 들어 `o3-pro`는 Responses로만, `gpt-6-astra`의 도구 호출은 Responses로만 동작하며 GPT 모델은 Gemini 네이티브 요청을 받지 않습니다. [모델 이용 가능 여부](https://docs.laozhang.ai/en/faq/model-availability.md)를 참고하세요.
* **400**: Messages 요청에 `max_tokens`가 없는 경우가 흔합니다. 그렇지 않다면 최소 요청으로 돌아가 선택 필드를 하나씩 추가하면서, 오류가 가리키는 필드를 고치세요.
* **401**: API 키가 틀렸거나, 헤더 형식이 잘못되었거나, 현재 셸에 환경 변수가 설정되지 않았습니다.
* **빈 응답**:
  * Chat Completions: `message.tool_calls`와 `finish_reason`을 확인합니다.
  * Messages: `content[0]`을 쓰지 말고 `content[]`를 블록 `type`별로 읽습니다.
  * Gemini: `finishReason`과 `promptFeedback`을 확인합니다.
* **잘린 응답**: 아래 값 중 하나라면 응답이 출력 한도에 걸린 것입니다. 모델의 출력 한도를 늘리거나 입력을 줄이세요.
  * Chat Completions: `finish_reason`이 `length`
  * Messages: `stop_reason`이 `max_tokens`
  * Gemini: `finishReason`이 `MAX_TOKENS`
* **429**: 오류 본문을 읽고 속도·동시 요청 제한과 잔액 부족을 구분하세요. 잔액이 남아 있다면 [잔액이 남았는데 실패하는 이유](https://docs.laozhang.ai/ko/faq/balance-insufficient.md)를 참고하세요.

## 운영 배포 전 점검

1. 모델 ID와 프로토콜을 설정에 고정하고, 모델 변경도 다른 릴리스처럼 테스트하세요.
2. 내 프롬프트 샘플을 후보 모델 두세 개에 돌려 응답 품질, 지연 시간, 토큰 사용량을 비교하세요. 비교 방법은 [OpenAI 프로토콜 레퍼런스](https://docs.laozhang.ai/ko/api-reference/chat-completions.md)의 모델 선택 절에 있습니다.
3. 일반 요청, 스트리밍, 오류 처리를 테스트하세요. 재시도는 SDK와 애플리케이션 중 한 계층에서만 관리합니다.
4. [호출 로그](https://api.laozhang.ai/log)에서 요청별 모델, 입력·출력 토큰, 청구액을 확인하세요.

## 관련 문서

* [OpenAI 프로토콜: Chat Completions](https://docs.laozhang.ai/ko/api-reference/chat-completions.md)
* [LaoZhang API에서 OpenAI 모델 사용하기](https://docs.laozhang.ai/ko/api-reference/openai.md)
* [Claude 프로토콜: Anthropic Messages](https://docs.laozhang.ai/ko/api-reference/claude.md)
* [Gemini 프로토콜: generateContent](https://docs.laozhang.ai/ko/api-reference/gemini.md)
* [API 연동 가이드](https://docs.laozhang.ai/ko/api-manual.md): 키, base URL, Responses, 이미지
* [모델 및 가격](https://docs.laozhang.ai/ko/models.md)
* 업스트림 문서: [OpenAI 텍스트 생성](https://developers.openai.com/api/docs/guides/text), [Anthropic Messages API](https://platform.claude.com/docs/en/api/messages), [Gemini 텍스트 생성](https://ai.google.dev/gemini-api/docs/text-generation)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.