> ## 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：形式の選び方と最初のリクエスト

> 同じAPIキーで、OpenAI互換、Anthropic Messages、Geminiネイティブの3形式からテキスト生成を呼び出す方法と、主なモデルの料金、ストリーミング、エラー対処を説明します。

LaoZhang APIでは、同じAPIキーで3つのリクエスト形式のテキストモデルを呼び出せます。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を使っている場合は、リクエスト形式はそのままで、ベースURLとAPIキーだけを変更します |
| モデルごとの対応形式 | [モデルと料金](https://docs.laozhang.ai/ja/models.md)の**エンドポイント**列 |
| 料金 | 下の「主なテキストモデル」を参照 |

## 形式の選び方

* **新規プロジェクト、またはOpenAI SDKやOpenAI形式のクライアント**：OpenAI互換のChat Completionsを使います。[OpenAIプロトコルのリファレンス](https://docs.laozhang.ai/ja/api-reference/chat-completions.md)を参照してください。
* **Anthropic SDK、Claude Code、その他のMessagesクライアント**：Anthropic Messagesを使います。[Claudeプロトコルのリファレンス](https://docs.laozhang.ai/ja/api-reference/claude.md)を参照してください。
* **Google Gen AI SDK、またはGemini独自のフィールドに依存するコード**：Gemini形式を使います。[Geminiプロトコルのリファレンス](https://docs.laozhang.ai/ja/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のベースURLは `https://api.laozhang.ai/v1` に設定します。Anthropic SDKとGoogle Gen AI SDKは、ホストのルート `https://api.laozhang.ai` を指定してください。パスはSDKが付け足します。

Anthropic Messagesのエンドポイントは、料金設定でこの形式に対応しているモデルを提供します。主なモデルは次のとおりです。

* Claudeモデル：2026年10月18日から再び提供しています。切り替える前に、[Claudeプロトコルのリファレンス](https://docs.laozhang.ai/ja/api-reference/claude.md)にあるClaudeモデルの制限を確認してください。
* `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ネイティブ）のように2つの形式に対応するモデルは、どちらの形式でも呼び出せますが、1つのリクエストでは1つの形式のフィールドだけを使ってください。

## 主なテキストモデル

次の料金は、LaoZhang APIの2026年10月18日時点の公開料金です。`default` トークングループの掲載料金で、100万トークンあたりの米ドルです。キャッシュ読み取りの料金、ほかのモデル、ほかのトークングループは[モデルと料金](https://docs.laozhang.ai/ja/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/ja/models.md)の表にあります。
* GPT-6の3つのモデルの選び方や、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/ja/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` に1件のメッセージを送ります。実行する前に、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` になります。別のモデルを試すには、**エンドポイント**にOpenAI互換が含まれるモデルIDに `model` を変更してください。SDKの例では自動リトライを無効にしています。リクエストを再送するタイミングは、アプリケーション側で決めるためです。

## 返信をストリーミングで受け取る

`"stream": true` を追加すると、モデルが書いている途中の返信を、サーバー送信イベント（SSE）で受け取れます。ストリーミングの扱いは形式ごとに少し異なります。

* **OpenAI互換**：`choices[0].delta.content` を順に連結し、`choices` や `content` を持たないチャンクは読み飛ばします。ストリームは `data: [DONE]` で終わります。cURLとPythonの完全な例と生のイベントは、[OpenAIプロトコルのリファレンス](https://docs.laozhang.ai/ja/api-reference/chat-completions.md)にあります。
* **Anthropic Messages**：テキストは `content_block_delta` イベントの `delta.text` で届き、`message_stop` の後に返信が完了します。詳しくは[Claudeプロトコルのリファレンス](https://docs.laozhang.ai/ja/api-reference/claude.md)を参照してください。
* **Geminiネイティブ**：`generateContent` を `streamGenerateContent` に置き換え、`?alt=sse` を付けます。各イベントには `candidates` を含む部分的なレスポンスが入ります。詳しくは[Geminiプロトコルのリファレンス](https://docs.laozhang.ai/ja/api-reference/gemini.md)を参照してください。
* 終了マーカーが届く前に接続が閉じた場合、受信したテキストは不完全です。リクエストを失敗として扱うか、再送してください。cURLでは、出力のバッファリングを無効にするために `-N` を付けます。

## よくあるエラーの対処

* **URLに `/v1/v1` を含む404**：SDKのベースURLにパスの一部が重複しています。OpenAI SDKには `https://api.laozhang.ai/v1`、Anthropic SDKとGoogle Gen AI SDKには `https://api.laozhang.ai` を使ってください。
* **モデルが利用できない、403、404**：カタログから正確なモデルIDをコピーし、次の2点を確認します。詳しくは[モデルの利用可否](https://docs.laozhang.ai/en/faq/model-availability.md)を参照してください。
  * APIキーのトークングループに、そのモデルが含まれていること。
  * 送っている形式にモデルが対応していること。たとえば、`o3-pro` はResponsesでのみ使え、`gpt-6-astra` のツールコールにはResponsesが必要で、GPTモデルはGeminiネイティブのリクエストを受け付けません。
* **400**：Messagesのリクエストに `max_tokens` がないことがよくある原因です。そうでなければ、最小のリクエストに戻し、任意のフィールドを1つずつ追加して、エラーが示すフィールドを修正します。
* **401**：APIキーが誤っているか、ヘッダーの形式が不正か、環境変数が現在のシェルに設定されていません。
* **空の返信**：
  * Chat Completions：`message.tool_calls` と `finish_reason` を確認します。
  * Messages：`content[0]` を取るのではなく、ブロックの `type` ごとに `content[]` を読み取ります。
  * Gemini：`finishReason` と `promptFeedback` を確認します。
* **途中で切れた返信**：次のいずれかの値は、返信が出力の上限に達したことを示します。モデルの出力上限を上げるか、入力を短くしてください。
  * Chat Completions：`finish_reason` が `length`
  * Messages：`stop_reason` が `max_tokens`
  * Gemini：`finishReason` が `MAX_TOKENS`
* **429**：エラーのボディを読み、レート制限や同時実行の制限と、残高不足を見分けます。残高があるのに失敗する場合は、[残高があるのに失敗する理由](https://docs.laozhang.ai/ja/faq/balance-insufficient.md)を参照してください。

## 本番運用の前に

1. モデルIDとプロトコルを設定で固定し、モデルの変更はほかのリリースと同じようにテストします。
2. 自分のプロンプトのサンプルを2〜3個の候補モデルに送り、回答の品質、レイテンシ、トークン使用量を比べます。比較の方法は[OpenAIプロトコルのリファレンス](https://docs.laozhang.ai/ja/api-reference/chat-completions.md)に書かれています。
3. 通常のリクエスト、ストリーミング、エラー処理をテストします。リトライはSDKかアプリケーションのどちらか1つの層にまとめます。
4. [呼び出しログ](https://api.laozhang.ai/log)で、リクエストごとのモデル、入力・出力トークン数、課金額を確認します。

## 関連ドキュメント

* [OpenAIプロトコル：Chat Completions](https://docs.laozhang.ai/ja/api-reference/chat-completions.md)
* [LaoZhang APIでOpenAIモデルを使う](https://docs.laozhang.ai/ja/api-reference/openai.md)
* [Claudeプロトコル：Anthropic Messages](https://docs.laozhang.ai/ja/api-reference/claude.md)
* [Geminiプロトコル：generateContent](https://docs.laozhang.ai/ja/api-reference/gemini.md)
* [API接続ガイド](https://docs.laozhang.ai/ja/api-manual.md)：キー、ベースURL、Responses、画像
* [モデルと料金](https://docs.laozhang.ai/ja/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.