---
title: "Chat Completions 対話インターフェース"
description: "POST /v1/chat/completions の最小リクエスト、よく使うフィールド、レスポンスの読み取り、マルチターン対話の書き方。"
headingIds: {"最小リクエスト":"section-1","よく使うフィールド":"section-2","レスポンスの読み取り方":"section-3","マルチターン対話":"section-4","ストリーミングと次のステップ":"section-5"}
---

<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 互換クライアントを使う場合、または既に `chat.completions.create` のコードがある場合は、このインターフェースから始めます。完全なアドレスは `https://1zheai.com/v1/chat/completions` です。SDK の Base URL は `/v1` まで記入します。

## 最小リクエスト

まずターミナルで `ONEZHE_API_KEY` をこのサイトのキーに設定します。以下のモデルは[利用可能なモデル一覧](/ja/docs/api-models/)に存在している必要があります。

```bash
curl --fail-with-body --connect-timeout 10 --max-time 120 \
  https://1zheai.com/v1/chat/completions \
  -H "Authorization: Bearer $ONEZHE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.6-sol",
    "messages": [{"role": "user", "content": "请用一句中文解释 DNS 的作用。"}]
  }'
```

`--fail-with-body` は HTTP エラー時に非ゼロの終了コードを返し、エラーボディを保持します。curl 7.76 以降が必要です。古いバージョンでは、まず `-i` でステータスコードを確認できます。

## よく使うフィールド

| フィールド | 型 | 使い方 |
| --- | --- | --- |
| `model` | string | 必須。このサイトのモデル ID をコピーし、他プラットフォームのプロバイダ接頭辞を追加しないこと |
| `messages` | array | 必須。今回の質問と保持する必要のある履歴メッセージを順番に送信する |
| `messages[].role` | string | 通常の対話には `user` / `assistant` を使用。システム指示の役割のサポートはモデルによって異なる |
| `messages[].content` | string またはコンテンツブロックの配列 | テキストのみならまず文字列を使用。画像入力には対応するコンテンツブロックのサポートが必要 |
| `stream` | boolean | `true` に設定すると SSE を読み、レスポンス全体を 1 つの JSON として扱わなくなる |
| `temperature` | number | 任意。一部の推論モデルは変更に対応していない。まず省略し、項目ごとに検証する |
| `tools` / `tool_choice` | array / string または object | 任意。モデルと上流の両方のサポートが必要。ツールの実際の実行は自分のプログラムで行う |

出力上限パラメーターはモデルによって異なります。Claude の `max_tokens`、Responses の `max_output_tokens`、Chat Completions のパラメーターを機械的に相互変換しないでください。選択したモデルの要件を参照し、400 が返されたらまずエラーボディを確認してください。

## レスポンスの読み取り方

通常のテキスト結果は `choices[0].message.content` にあります。終了理由は `choices[0].finish_reason` にあります。ツール呼び出しが返された場合、テキストが空の場合があり、`message.tool_calls` を読む必要があります。レスポンスの `id`、`model`、`usage` は今回の呼び出しの照合に使えます。

以下は注目すべき構造のみを示しており、省略されたフィールドと数値は実際のリクエスト結果を表すものではありません：

```json
{
  "id": "example-completion",
  "object": "chat.completion",
  "model": "gpt-5.6-sol",
  "choices": [{
    "index": 0,
    "message": {"role": "assistant", "content": "DNS 将域名解析为网络地址。"},
    "finish_reason": "stop"
  }]
}
```

## マルチターン対話

同じキーを繰り返し使用しても、インターフェースが前回のラウンドを自動的に記憶することはありません。保持する必要のある履歴を一緒に送信してください：

```json
{
  "model": "gpt-5.6-sol",
  "messages": [
    {"role": "user", "content": "我正在学习 DNS。"},
    {"role": "assistant", "content": "我们可以从域名解析开始。"},
    {"role": "user", "content": "它和 HTTP 有什么区别？"}
  ]
}
```

履歴が長いほどリクエストは大きくなります。アプリケーションはコンテキスト制限に応じて切り詰めまたは要約し、ツール呼び出しと結果のペアを完全に保持してください。

## ストリーミングと次のステップ

`"stream": true` を追加すると、テキストの増分は `choices[].delta.content` から得られます。テキストがないイベントや `choices` が空のイベントもあるため、読み取り時に判断が必要です。詳細は[ストリーミング出力](/ja/docs/streaming/)を参照してください。

[Python / Node.js の完全な例](/ja/docs/code-examples/)を直接実行するか、[Responses](/ja/docs/api-responses/)に切り替えることもできます。Claude ネイティブパラメーターは [Messages](/ja/docs/api-messages/) を参照してください。
