Skip to main content

OpenAI 互換 - バッチチャット

データアノテーションやコンテンツ生成など、リアルタイム性を要しないシナリオ向けに、バッチチャット API は、同一の同期呼び出し方式を用いた低コスト・高い同時実行性を実現する代替手段を提供します。 期間限定で 50 % 割引が適用されます。

本 API では、単一リクエストの送信のみがサポートされています。複数のリクエストを一度に送信する場合は、ファイルにパッケージ化してください。詳細については、「OpenAI 互換 - バッチ(ファイル入力)」をご参照ください。

仕組み

  1. [リクエストの送信]:クライアントがリクエストを送信し、接続を確立します。
  2. [キューへの登録と待機]:クライアントが接続を維持したまま、リクエストがキューに登録されます。
  3. [結果の返却]:サーバーが処理を完了後、確立済みの接続経由で完全な結果を返却します。
    最大待機時間を超過した場合、接続はタイムアウトエラーにより切断されます。

可用性

  • 中国本土
サービスデプロイ範囲が中国本土の場合、データストレージは北京アクセスリージョンに配置され、モデル推論の計算リソースは中国本土内に限定されます。
  • バッチ処理シナリオでは、qwen3.6-plus、qwen3.5-plus、および qwen3.5-flash の各モデルについて、1 回のリクエストあたりの入力トークン数の上限は 256 K です。
  • 一部のモデルは思考モードをサポートしています。このモードを有効化すると、思考用の トークン が生成され、課金額が増加します。
  • qwen3.6-plus および qwen3.5 シリーズのモデル(例:qwen3.5-plus、qwen3.5-flash)では、思考モードがデフォルトで有効化されています。ハイブリッド思考モデルを利用する場合、enable_thinking パラメーターを明示的に設定する必要があります。このパラメーターを true に設定するとモードが有効化され、false に設定すると無効化されます。

使用方法

前提条件

pip3 install -U openai

ステップ 1:API エンドポイントの構成

呼び出し方法に応じて、API エンドポイント(base_url)を変更することで、リアルタイム推論からバッチ推論へ切り替えます。 SDK を使用する場合:base_url を https://batch.dashscope.aliyuncs.com/compatible-mode/v1 に設定します。 HTTP を使用する場合:POST https://batch.dashscope.aliyuncs.com/compatible-mode/v1/chat/completions

ステップ 2: 呼び出し

以下に、バッチチャット API の呼び出し方法の例を示します。デフォルトのタイムアウトは 3600 秒(1 時間)であり、ほとんどのケースでは追加の構成は不要です。
カスタムタイムアウトの有効範囲:60~3600 秒。
  • Python
  • Java
  • Node.js
  • Go
  • C#(HTTP)
  • PHP(HTTP)
  • curl
リクエスト例
import os
from openai import OpenAI

client = OpenAI(
   # 環境変数が未設定の場合は、api_key="sk-xxx" に置き換えます。
   # 本番環境では API キーをハードコードしないよう、漏洩リスクを低減してください。
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://batch.dashscope.aliyuncs.com/compatible-mode/v1",  # バッチチャット API エンドポイント
).with_options(timeout=1800.0) # タイムアウト:1800 秒(30 分)。最大値:3600 秒。

completion = client.chat.completions.create(
    model="qwen-plus",
    messages=[
        {"role": "system", "content": "あなたは親切なアシスタントです。"},
        {"role": "user", "content": "あなたは誰ですか?"},
    ]
)
print(completion.choices[0].message.content)
応答例
私は Alibaba Group が開発した大規模言語モデル「Qwen」です。質問への回答、物語や公式文書、メール、スクリプトなどのテキスト作成、論理的推論、コード作成などに対応できます。また、意見表明やゲームプレイも可能です。ご質問やお手伝いが必要な場合は、いつでもお知らせください!

制限事項

  • 待機時間:同期待機の最大時間は 3600 秒(1 時間)です。カスタムタイムアウトは 60~3600 秒の範囲で設定できます。
  • 同時実行数の制限:アカウントおよびモデルごとに、最大 10,000 件の保留中のリクエストが許可されます。この上限を超えたリクエストはエラーコードとともに拒否されます。保留中のリクエストが完了するまで、新たなリクエストは受け付けられません。
  • 呼び出し頻度:アカウントあたりの最大 QPS は 1000 件、または 10 秒あたり 10,000 件です。
    これは理論上の最大値であり、実際の可用性はシステム負荷によって異なります。リトライロジックを実装してください。

課金

  • 単位価格:成功したリクエストに対して、入力/出力トークン数に基づいて課金されます。定価はリアルタイム呼び出しの価格と一致します。期間限定で、公式ウェブサイトにて 50 % 割引が適用されます。 詳細については、「モデル一覧」をご参照ください。
  • 課金範囲:成功したリクエストのみが課金対象となります。失敗したリクエスト(システムエラーまたはタイムアウト)は課金されません。
  • バッチ推論は独立した課金項目です。これはAI 汎用節約プランをサポートしますが、サブスクリプション(その他の節約プラン)や新規ユーザー向け無料クォータなどの割引は適用されません。また、コンテキストキャッシュなどの機能もサポートされません。
  • qwen3.5-plus や qwen3.5-flash などの一部のモデルでは、思考モードがデフォルトで有効化されています。このモードでは追加の思考トークンが生成され、出力トークン価格で課金されるため、コストが増加します。コストをコントロールするには、タスクの複雑さに応じて enable_thinking パラメーターを設定してください。詳細については、「Deep thinking」をご参照ください。

エラーコード

モデル呼び出しが失敗し、エラーメッセージが返された場合、解決方法については「エラーメッセージ」をご参照ください。

よくある質問

  1. バッチチャットとリアルタイム API のリクエスト時間には違いがありますか? はい。リクエストはスケジューリングのためにキューに登録されるため、エンドツーエンドの所要時間は通常、リアルタイム API より長くなります。最大待機時間は 1 時間です。タイムアウトを超過した場合、接続はエラーで切断されます。
  2. バッチチャットとバッチファイルのどちらを選択すればよいですか? 多数の独立した会話リクエストを高い同時実行性で同期呼び出しする場合は、バッチチャットを選択してください。一方、多数のリクエストを含む単一の大きなファイルを非同期取得で処理する場合は、バッチファイルを選択してください。
  3. バッチチャットはすべてのリクエストが完了することを保証しますか? いいえ。完了は共有リソースの割り当て状況に依存します。リソースが混雑している場合、リクエストはキューに登録されます。最大待機時間内に実行されない場合、接続がタイムアウトし、リクエストは課金されません。その後、再試行してください。

参照