# Doubao Seed 2.1 Turbo — /chat/completions

ByteDance Doubao Seed 2.1 Turbo による OpenAI 互換のチャット補完 API です。Seed 2.1 ファミリーの低価格版で、単価は Pro の約半分です。デフォルトで思考がオンで、推論の過程は message.reasoning_content に返り、推論トークンは usage.completion_tokens の中で出力価格で課金されます。reasoning_effort: "minimal" を送るとたいていは思考を省きますが、Pro ほど確実ではありません（計測では 12 回中 8 回。thinking パラメータは効きません）。max_tokens は出力を制限せず、課金は usage に従います。繰り返される長いプレフィックスは自動でキャッシュに当たることがあり、その部分はキャッシュ価格で精算されます。ツール呼び出し、JSON 出力、ストリーミング、画像入力（base64 または公開リンク）に対応し、長い回答には stream=true をおすすめします。model に doubao-seed-2-1-turbo を指定してください。提供は /v1/chat/completions のみです。

**エンドポイント:** `POST https://nezhagate.com/v1/chat/completions`

## 認証
```
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```

## リクエストボディ
| パラメータ | 種別 | 必須 | 説明 |
| --- | --- | --- | --- |
| `model` | string | はい | モデル ID。ここでは doubao-seed-2-1-turbo です。 |
| `messages` | array | はい | メッセージの配列。各要素は role（system/user/assistant）と content を持ちます。content は文字列のほか、画像を理解させる場合は {type:text} と {type:image_url} を並べた配列にできます（マルチモーダル / ビジョン）。 |
| `stream` | boolean | いいえ | SSE でストリーミング出力します。既定は false です。 |
| `temperature` | number | いいえ | サンプリング温度。0〜2 の範囲で指定します。 |
| `max_tokens` | integer | いいえ | 指定はできますが、出力の長さは制限されません（計測では 60 や 100 を指定しても数百〜数千トークンが出力されました）。課金は usage に従います。短い回答が必要な場合は、プロンプトで簡潔さを求めてください。 |
| `web_search` | boolean | いいえ | true にするとウェブ検索を有効にします。モデルが答える前に、ゲートウェイがリアルタイムの検索結果でプロンプトを補強し、出典も添えます。tools に {"type":"web_search"} を入れても同じように動きます。 |
| `reasoning_effort` | string | いいえ | 推論強度。"minimal" を送るとたいていは思考を省きますが、Pro ほど確実ではありません（計測では 12 回中 8 回）。省略時はまず考えてから答えます。thinking パラメータはこのモデルでは効きません。 |

## リクエスト例
```bash
curl https://nezhagate.com/v1/chat/completions -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d '{"model": "doubao-seed-2-1-turbo", "messages": [{"role": "user", "content": "Hello"}], "stream": false}'
```

## レスポンス
```json
{
  "id": "chatcmpl_xxx",
  "object": "chat.completion",
  "model": "doubao-seed-2-1-turbo",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "reasoning_content": "The user is greeting me, so a short friendly reply fits...",
        "content": "Hello! How can I help you today?"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 9,
    "completion_tokens": 42,
    "total_tokens": 51,
    "completion_tokens_details": {"reasoning_tokens": 31}
  }
}
```

## 画像入力（ビジョン）
メッセージの content 配列に画像を入れると、モデルがそれを解析します（画像についての質問、文字の読み取り / OCR など）。image_url には公開画像のリンクか、インラインの base64 データ URL（data:image/png;base64,...）を指定できます。マルチモーダル対応モデル（gpt-5.5、gemini シリーズなど）で利用できます。

```bash
curl https://nezhagate.com/v1/chat/completions -H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" -d '{"model": "doubao-seed-2-1-turbo", "messages": [{"role": "user", "content": [{"type": "text", "text": "What is in this image?"}, {"type": "image_url", "image_url": {"url": "https://example.com/photo.jpg"}}]}]}'
```