データアノテーションやコンテンツ生成など、リアルタイム性を要しないシナリオ向けに、バッチチャット API は、同一の同期呼び出し方式を用いた低コスト・高い同時実行性を実現する代替手段を提供します。 期間限定で 50 % 割引が適用されます。
本 API では、単一リクエストの送信のみがサポートされています。複数のリクエストを一度に送信する場合は、ファイルにパッケージ化してください。詳細については、「OpenAI 互換 - バッチ(ファイル入力)」をご参照ください。
仕組み
-
[リクエストの送信]:クライアントがリクエストを送信し、接続を確立します。
-
[キューへの登録と待機]:クライアントが接続を維持したまま、リクエストがキューに登録されます。
-
[結果の返却]:サーバーが処理を完了後、確立済みの接続経由で完全な結果を返却します。
最大待機時間を超過した場合、接続はタイムアウトエラーにより切断されます。
可用性
中国本土
サービスデプロイ範囲が中国本土の場合、データストレージは北京アクセスリージョンに配置され、モデル推論の計算リソースは中国本土内に限定されます。
- テキスト生成モデル:qwen3.6-plus、qwen3.5-plus、qwen3.5-flash、qwen3-max、qwen-plus、qwen-flash、deepseek-v3.2
- 画像および動画理解モデル:qwen3.6-plus、qwen3.5-plus、qwen3.5-flash、qwen3-vl-plus、qwen3-vl-flash
重要
- バッチ処理シナリオでは、
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に設定すると無効化されます。
使用方法
前提条件
-
Alibaba Cloud Model Studio を有効化し、API キーを取得します。
API キーを環境変数として構成することで、漏洩リスクを低減できます。
-
OpenAI SDK を利用するには、インストールを行います:
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
リクエスト例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」です。質問への回答、物語や公式文書、メール、スクリプトなどのテキスト作成、論理的推論、コード作成などに対応できます。また、意見表明やゲームプレイも可能です。ご質問やお手伝いが必要な場合は、いつでもお知らせください!
Java
リクエスト例import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.chat.completions.ChatCompletion;
import com.openai.models.chat.completions.ChatCompletionCreateParams;
import java.time.Duration;
public class Main {
public static void main(String[] args) {
OpenAIClient client = OpenAIOkHttpClient.builder()
// 環境変数が未設定の場合は、.apiKey("sk-xxx") に置き換えます。
// 本番環境では API キーをハードコードしないよう、漏洩リスクを低減してください。
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.baseUrl("https://batch.dashscope.aliyuncs.com/compatible-mode/v1") // バッチチャット API エンドポイント
.timeout(Duration.ofSeconds(1800)) // タイムアウト:1800 秒(30 分)。最大値:3600 秒。
.build();
ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
.addUserMessage("あなたは誰ですか?")
.model("qwen-plus")
.build();
try {
ChatCompletion chatCompletion = client.chat().completions().create(params);
System.out.println(chatCompletion);
} catch (Exception e) {
System.err.println("エラーが発生しました:" + e.getMessage());
e.printStackTrace();
}
}
}
応答例ChatCompletion{id=chatcmpl-a12c115e-15fc-94f9-a984-81bd65f0527b, choices=[Choice{finishReason=stop, index=0, logprobs=, message=ChatCompletionMessage{
content=私は Alibaba Cloud が開発した大規模言語モデル「Qwen」です。質問への回答、テキスト作成、情報検索サービスの提供が可能です。はじめまして!, refusal=, role=assistant, annotations=, audio=, functionCall=, toolCalls=, additionalProperties={}}, additionalProperties={}}], created=1763609020, model=qwen-plus, object_=chat.completion, serviceTier=, systemFingerprint=, usage=CompletionUsage{completionTokens=33, promptTokens=10, totalTokens=43, completionTokensDetails=, promptTokensDetails=, additionalProperties={}}, additionalProperties={}}
Node.js
リクエスト例import OpenAI from "openai";
const openai = new OpenAI(
{
// 環境変数が未設定の場合は、apiKey: "sk-xxx" に置き換えます。
// 本番環境では API キーをハードコードしないよう、漏洩リスクを低減してください。
apiKey: process.env.DASHSCOPE_API_KEY,
baseURL: "https://batch.dashscope.aliyuncs.com/compatible-mode/v1", // バッチチャット API エンドポイント
// タイムアウト(ミリ秒単位):1800 秒 = 1,800,000 ミリ秒。最大値:3,600,000 ミリ秒。
timeout: 1800 * 1000,
}
);
async function main() {
const completion = await openai.chat.completions.create({
model: "qwen-plus", // 必要に応じてモデル名を置き換えます。
messages: [
{ role: "system", content: "あなたは親切なアシスタントです。" },
{ role: "user", content: "あなたは誰ですか?" }
],
});
console.log(JSON.stringify(completion))
}
main();
応答例{
"created": 1763618557,
"usage": {
"completion_tokens": 80,
"prompt_tokens": 22,
"total_tokens": 102
},
"model": "qwen-plus",
"id": "chatcmpl-af23c086-8662-91eb-b236-892032ddee92",
"choices": [
{
"finish_reason": "stop",
"index": 0,
"message": {
"role": "assistant",
"content": "私は Alibaba Cloud が開発した大規模言語モデル「Qwen」です。質問への回答や、物語、公式文書、メール、スクリプトなどのテキスト作成が可能です。また、論理的推論、コード作成、意見表明、ゲームプレイにも対応しています。中国語、英語、ドイツ語、フランス語、スペイン語など、複数の言語をサポートしています。ご質問やお手伝いが必要な場合は、いつでもお知らせください!"
}
}
],
"object": "chat.completion"
}
Go
リクエスト例package main
import (
"context"
"os"
"time"
"github.com/openai/openai-go"
"github.com/openai/openai-go/option"
)
func main() {
client := openai.NewClient(
option.WithAPIKey(os.Getenv("DASHSCOPE_API_KEY")),
// バッチチャット API エンドポイント
option.WithBaseURL("https://batch.dashscope.aliyuncs.com/compatible-mode/v1"),
)
// タイムアウト:1800 秒(30 分)。最大値:3600 秒。
ctx, cancel := context.WithTimeout(context.Background(), 3600*time.Second)
defer cancel()
chatCompletion, err := client.Chat.Completions.New(
ctx, openai.ChatCompletionNewParams{
Messages: []openai.ChatCompletionMessageParamUnion{
openai.UserMessage("あなたは誰ですか?"),
},
Model: "qwen-plus",
},
)
if err != nil {
panic(err.Error())
}
println(chatCompletion.Choices[0].Message.Content)
}
応答例私は Alibaba Cloud が開発した大規模言語モデル「Qwen」です。記事、物語、詩などさまざまな種類のテキストを生成でき、異なるシナリオやニーズに応じて適応・拡張が可能です。さらに、多様な質問への回答や、支援・解決策の提供も行えます。お役に立てて嬉しいです!
C#(HTTP)
リクエスト例using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
class Program
{
private static readonly HttpClient httpClient = new HttpClient
{
// タイムアウト:1800 秒(30 分)。最大値:3600 秒。
Timeout = TimeSpan.FromSeconds(1800)
};
static async Task Main(string[] args)
{
// 環境変数が未設定の場合は、string? apiKey = "sk-xxx"; に置き換えます。
string? apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY");
if (string.IsNullOrEmpty(apiKey))
{
Console.WriteLine("API キーが設定されていません。「DASHSCOPE_API_KEY」環境変数が設定されていることを確認してください。");
return;
}
// リクエスト URL とコンテンツを設定
string url = "https://batch.dashscope.aliyuncs.com/compatible-mode/v1/chat/completions"; // バッチチャット API エンドポイント
// 必要に応じてモデル名を置き換えます。
string jsonContent = @"{
""model"": ""qwen-plus"",
""messages"": [
{
""role"": ""system"",
""content"": ""あなたは親切なアシスタントです。""
},
{
""role"": ""user"",
""content"": ""あなたは誰ですか?""
}
]
}";
// リクエストを送信して応答を取得
string result = await SendPostRequestAsync(url, jsonContent, apiKey);
// 結果を出力
Console.WriteLine(result);
}
private static async Task<string> SendPostRequestAsync(string url, string jsonContent, string apiKey)
{
using (var content = new StringContent(jsonContent, Encoding.UTF8, "application/json"))
{
// リクエストヘッダーを設定
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
// リクエストを送信して応答を取得
HttpResponseMessage response = await httpClient.PostAsync(url, content);
// 応答を処理
if (response.IsSuccessStatusCode)
{
return await response.Content.ReadAsStringAsync();
}
else
{
return $"リクエストに失敗しました:{response.StatusCode}";
}
}
}
}
応答例{
"created": 1763620689,
"usage": {
"completion_tokens": 60,
"prompt_tokens": 22,
"total_tokens": 82
},
"model": "qwen-plus",
"id": "chatcmpl-db85828d-af47-97a3-a2f4-120b8f7d72d3",
"choices": [
{
"finish_reason": "stop",
"index": 0,
"message": {
"role": "assistant",
"content": "私は Alibaba Group が開発した大規模言語モデル「Qwen」です。質問への回答、物語、公式文書、メール、スクリプトなどのテキスト作成、論理的推論、コード作成などに対応できます。また、意見表明やゲームプレイも可能です。ご質問やお手伝いが必要な場合は、いつでもお知らせください!"
}
}
],
"object": "chat.completion"
}
PHP(HTTP)
リクエスト例<?php
// バッチチャットリクエストの URL を設定
$url = 'https://batch.dashscope.aliyuncs.com/compatible-mode/v1/chat/completions';
// 環境変数が未設定の場合は、$apiKey = "sk-xxx"; に置き換えます。
$apiKey = getenv('DASHSCOPE_API_KEY');
// リクエストヘッダーを設定
$headers = [
'Authorization: Bearer '.$apiKey,
'Content-Type: application/json'
];
// リクエストボディを設定
$data = [
// 必要に応じてモデル名を置き換えます。
"model" => "qwen-plus",
"messages" => [
[
"role" => "system",
"content" => "あなたは親切なアシスタントです。"
],
[
"role" => "user",
"content" => "あなたは誰ですか?"
]
]
];
// cURL セッションを初期化
$ch = curl_init();
// cURL オプションを設定
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
// タイムアウト:1800 秒(30 分)。最大値:3600 秒。
curl_setopt($ch, CURLOPT_TIMEOUT, 1800);
// cURL セッションを実行
$response = curl_exec($ch);
// エラーを確認
if (curl_errno($ch)) {
echo 'cURL エラー:' . curl_error($ch);
}
// cURL リソースを閉じる
curl_close($ch);
// 応答を出力
echo $response;
?>
応答例{
"created": 1763621824,
"usage": {
"completion_tokens": 81,
"prompt_tokens": 22,
"total_tokens": 103
},
"model": "qwen-plus",
"id": "chatcmpl-b25aeb86-5cfe-93ea-ab03-aa3de1381c23",
"choices": [
{
"finish_reason": "stop",
"index": 0,
"message": {
"role": "assistant",
"content": "私は Alibaba Cloud が開発した大規模言語モデル「Qwen」です。質問への回答や、物語、公式文書、メール、スクリプトなどのテキスト作成が可能です。また、論理的推論、コード作成、意見表明、ゲームプレイにも対応しています。中国語、英語、ドイツ語、フランス語、スペイン語など、複数の言語をサポートしています。ご質問やお手伝いが必要な場合は、いつでもお知らせください!"
}
}
],
"object": "chat.completion"
}
curl
リクエスト例max-time を 1800 秒に設定します。最大値:3600 秒。
curl -X POST https://batch.dashscope.aliyuncs.com/compatible-mode/v1/chat/completions \
--max-time 1800 \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-plus",
"messages": [
{
"role": "system",
"content": "あなたは親切なアシスタントです。"
},
{
"role": "user",
"content": "あなたは誰ですか?"
}
]
}'
応答例{
"created": 1763622152,
"usage": {
"completion_tokens": 79,
"prompt_tokens": 22,
"total_tokens": 101
},
"model": "qwen-plus",
"id": "chatcmpl-daa344d2-60df-9b79-81a4-28c9a10a0a0e",
"choices": [
{
"finish_reason": "stop",
"index": 0,
"message": {
"role": "assistant",
"content": "私は Alibaba Group が開発した大規模言語モデル「Qwen」です。質問への回答や、物語、公式文書、メール、スクリプトなどのテキスト作成が可能です。また、論理的推論、コード作成、意見表明、ゲームプレイにも対応しています。中国語、英語、ドイツ語、フランス語、スペイン語など、複数の言語をサポートしています。ご質問やお手伝いが必要な場合は、いつでもお知らせください!"
}
}
],
"object": "chat.completion"
}
制限事項
-
待機時間:同期待機の最大時間は 3600 秒(1 時間)です。カスタムタイムアウトは 60~3600 秒の範囲で設定できます。
-
同時実行数の制限:アカウントおよびモデルごとに、最大 10,000 件の保留中のリクエストが許可されます。この上限を超えたリクエストはエラーコードとともに拒否されます。保留中のリクエストが完了するまで、新たなリクエストは受け付けられません。
-
呼び出し頻度:アカウントあたりの最大 QPS は 1000 件、または 10 秒あたり 10,000 件です。
これは理論上の最大値であり、実際の可用性はシステム負荷によって異なります。リトライロジックを実装してください。
課金
- 単位価格:成功したリクエストに対して、入力/出力トークン数に基づいて課金されます。定価はリアルタイム呼び出しの価格と一致します。期間限定で、公式ウェブサイトにて 50 % 割引が適用されます。 詳細については、「モデル一覧」をご参照ください。
- 課金範囲:成功したリクエストのみが課金対象となります。失敗したリクエスト(システムエラーまたはタイムアウト)は課金されません。
注記
- バッチ推論は独立した課金項目です。これはAI 汎用節約プランをサポートしますが、サブスクリプション(その他の節約プラン)や新規ユーザー向け無料クォータなどの割引は適用されません。また、コンテキストキャッシュなどの機能もサポートされません。
- qwen3.5-plus や qwen3.5-flash などの一部のモデルでは、思考モードがデフォルトで有効化されています。このモードでは追加の思考トークンが生成され、出力トークン価格で課金されるため、コストが増加します。コストをコントロールするには、タスクの複雑さに応じて enable_thinking パラメーターを設定してください。詳細については、「Deep thinking」をご参照ください。
エラーコード
モデル呼び出しが失敗し、エラーメッセージが返された場合、解決方法については「エラーメッセージ」をご参照ください。
よくある質問
-
バッチチャットとリアルタイム API のリクエスト時間には違いがありますか?
はい。リクエストはスケジューリングのためにキューに登録されるため、エンドツーエンドの所要時間は通常、リアルタイム API より長くなります。最大待機時間は 1 時間です。タイムアウトを超過した場合、接続はエラーで切断されます。
-
バッチチャットとバッチファイルのどちらを選択すればよいですか?
多数の独立した会話リクエストを高い同時実行性で同期呼び出しする場合は、バッチチャットを選択してください。一方、多数のリクエストを含む単一の大きなファイルを非同期取得で処理する場合は、バッチファイルを選択してください。
-
バッチチャットはすべてのリクエストが完了することを保証しますか?
いいえ。完了は共有リソースの割り当て状況に依存します。リソースが混雑している場合、リクエストはキューに登録されます。最大待機時間内に実行されない場合、接続がタイムアウトし、リクエストは課金されません。その後、再試行してください。
参照
- リアルタイムモデル呼び出しの完全なパラメータ一覧:「OpenAI Chat」。
- 非同期結果によるファイル送信でのバッチ処理:「OpenAI 互換 - バッチ(ファイル入力)」。