All Products
Search
Document Center

Alibaba Cloud Model Studio:OpenAI-compatible - Batch Chat

Last Updated:Aug 26, 2026

Untuk skenario non-real-time seperti anotasi data dan pembuatan konten, API Batch Chat menyediakan alternatif berbiaya rendah dengan konkurensi tinggi menggunakan metode panggilan sinkron yang sama. Tersedia diskon 50% untuk waktu terbatas.

API ini hanya mendukung pengiriman permintaan tunggal. Untuk mengirimkan beberapa permintaan sekaligus, kemas dalam satu file. Lihat OpenAI-compatible - Batch (file input).

Cara kerja

  1. Kirim permintaan: Klien mengirim permintaan dan membangun koneksi.

  2. Mengantri dan menunggu: Permintaan masuk ke antrian sementara klien mempertahankan koneksi.

  3. Kembalikan hasil: Server mengembalikan hasil lengkap melalui koneksi yang telah dibangun setelah pemrosesan selesai.

    Koneksi akan terputus dengan error timeout jika waktu tunggu maksimum terlampaui.

Ketersediaan

China (Beijing)

  • Model generasi teks: qwen3.7-max, qwen3.7-plus, qwen3.6-plus, qwen3.7-flash, qwen3.7-flash-2026-07-15, qwen3.6-flash, qwen3.5-plus, qwen3.5-flash, qwen3-max, qwen-plus, qwen-flash, deepseek-v3.2
  • Model pemahaman gambar dan video: qwen3.7-plus, qwen3.6-plus, qwen3.7-flash, qwen3.7-flash-2026-07-15, qwen3.6-flash, qwen3.5-plus, qwen3.5-flash, qwen3.5-omni-plus, qwen3-vl-plus, qwen3-vl-flash

Penting

  • Dalam skenario pemrosesan batch, jumlah maksimum token konteks per permintaan adalah 256 K untuk qwen3.7-max, qwen3.7-plus, qwen3.6-plus, qwen3.7-flash, qwen3.7-flash-2026-07-15, qwen3.6-flash, qwen3.5-plus, qwen3.5-flash, dan qwen3.5-omni-plus.
  • Beberapa model mendukung mode thinking. Mengaktifkan mode ini menghasilkan tokens thinking dan meningkatkan biaya.
  • Seri model qwen3.7, qwen3.6, dan qwen3.5 memiliki mode thinking aktif secara default. Jika Anda menggunakan model hybrid thinking, Anda harus secara eksplisit mengatur parameter enable_thinking. Atur parameter ini ke true untuk mengaktifkan mode atau false untuk menonaktifkannya.
  • Dalam badan permintaan JSONL, enable_thinking merupakan parameter tingkat atas dari body dan harus ditempatkan pada level yang sama dengan model. Jangan letakkan di dalam extra_body.

Penggunaan

Prasyarat

  • Aktifkan Alibaba Cloud Model Studio dan dapatkan API key.

    Konfigurasikan API key sebagai variabel lingkungan untuk mengurangi risiko kebocoran.

  • Untuk menggunakan OpenAI SDK, instal:

pip3 install -U openai

Langkah 1: Konfigurasikan titik akhir API

Beralih dari inferensi real-time ke batch dengan mengubah titik akhir API (base_url) sesuai metode pemanggilan Anda:

SDK: Atur base_url ke https://batch.dashscope.aliyuncs.com/compatible-mode/v1

HTTP: POST https://batch.dashscope.aliyuncs.com/compatible-mode/v1/chat/completions

Langkah 2: Lakukan pemanggilan

Contoh berikut menunjukkan cara memanggil API Batch Chat. Timeout default adalah 3600 detik (1 jam); tidak diperlukan konfigurasi tambahan dalam kebanyakan kasus.

Kisaran timeout kustom: 60–3600 detik.

Python

Contoh permintaan
import os
from openai import OpenAI

client = OpenAI(
   # Jika variabel lingkungan tidak disetel, ganti dengan api_key="sk-xxx".
   # Hindari hard-coding API key di lingkungan produksi untuk mengurangi risiko kebocoran.
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://batch.dashscope.aliyuncs.com/compatible-mode/v1",  # Titik akhir API Batch Chat
).with_options(timeout=1800.0) # Timeout: 1800s (30 menit). Maks: 3600s.

completion = client.chat.completions.create(
    model="qwen-plus",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Who are you?"},
    ]
)
print(completion.choices[0].message.content)
Contoh respons
I am Qwen, a large-scale language model from Alibaba Group. I can answer questions, create text such as stories, official documents, emails, and scripts, perform logical reasoning, write code, and more. I can also express opinions and play games. If you have any questions or need help, feel free to let me know!

Java

Contoh permintaan
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()
                // Jika variabel lingkungan tidak disetel, ganti dengan .apiKey("sk-xxx").
                // Hindari hard-coding API key di lingkungan produksi untuk mengurangi risiko kebocoran.
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .baseUrl("https://batch.dashscope.aliyuncs.com/compatible-mode/v1")  // Titik akhir API Batch Chat
                .timeout(Duration.ofSeconds(1800)) // Timeout: 1800s (30 menit). Maks: 3600s.
                .build();

        ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
                .addUserMessage("Who are you?")
                .model("qwen-plus")
                .build();

        try {
            ChatCompletion chatCompletion = client.chat().completions().create(params);
            System.out.println(chatCompletion);
        } catch (Exception e) {
            System.err.println("Error occurred: " + e.getMessage());
            e.printStackTrace();
        }
    }
}
Contoh respons
ChatCompletion{id=chatcmpl-a12c115e-15fc-94f9-a984-81bd65f0527b, choices=[Choice{finishReason=stop, index=0, logprobs=, message=ChatCompletionMessage{
content=I am Qwen, a large-scale language model from Alibaba Group. I can help you answer questions, create text, and provide information query services. It's nice to meet you!, 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

Contoh permintaan
import OpenAI from "openai";

const openai = new OpenAI(
    {
        // Jika variabel lingkungan tidak disetel, ganti dengan apiKey: "sk-xxx".
        // Hindari hard-coding API key di lingkungan produksi untuk mengurangi risiko kebocoran.
        apiKey: process.env.DASHSCOPE_API_KEY,
        baseURL: "https://batch.dashscope.aliyuncs.com/compatible-mode/v1", // Titik akhir API Batch Chat
        // Timeout dalam milidetik: 1800s = 1.800.000ms. Maks: 3.600.000ms.
        timeout: 1800 * 1000,
    }
);

async function main() {
    const completion = await openai.chat.completions.create({
        model: "qwen-plus",  // Ganti dengan nama model Anda sesuai kebutuhan
        messages: [
            { role: "system", content: "You are a helpful assistant." },
            { role: "user", content: "Who are you?" }
        ],
    });
    console.log(JSON.stringify(completion))
}

main();
Contoh respons
{
    "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": "I am Qwen, a large-scale language model developed by Alibaba Cloud. I can answer questions and create text, such as stories, official documents, emails, and scripts. I can also perform logical reasoning, write code, express opinions, and play games. I support multiple languages, including Chinese, English, German, French, and Spanish. If you have any questions or need help, feel free to let me know!"
            }
        }
    ],
    "object": "chat.completion"
}

Go

Contoh permintaan
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")),
    // Titik akhir API Batch Chat
    option.WithBaseURL("https://batch.dashscope.aliyuncs.com/compatible-mode/v1"),
    )
    // Timeout: 1800s (30 menit). Maks: 3600s.
    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("Who are you?"),
    },
    Model: "qwen-plus",
    },
    )

    if err != nil {
    panic(err.Error())
    }

    println(chatCompletion.Choices[0].Message.Content)
}
Contoh respons
I am Qwen, a large-scale language model developed by Alibaba Cloud. I can generate various types of text, such as articles, stories, and poems, and can adapt and expand them for different scenarios and needs. In addition, I can answer various questions and provide help and solutions. I am happy to be of service!

C# (HTTP)

Contoh permintaan
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
    {
        // Timeout: 1800s (30 menit). Maks: 3600s.
        Timeout = TimeSpan.FromSeconds(1800)
    };

    static async Task Main(string[] args)
    {
        // Jika variabel lingkungan tidak disetel, ganti dengan: string? apiKey = "sk-xxx";
        string? apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY");

        if (string.IsNullOrEmpty(apiKey))
        {
            Console.WriteLine("API Key is not set. Make sure the 'DASHSCOPE_API_KEY' environment variable is set.");
            return;
        }

        // Setel URL permintaan dan kontennya
        string url = "https://batch.dashscope.aliyuncs.com/compatible-mode/v1/chat/completions"; // Titik akhir API Batch Chat
        // Ganti dengan nama model Anda sesuai kebutuhan
        string jsonContent = @"{
            ""model"": ""qwen-plus"",
            ""messages"": [
                {
                    ""role"": ""system"",
                    ""content"": ""You are a helpful assistant.""
                },
                {
                    ""role"": ""user"",
                    ""content"": ""Who are you?""
                }
            ]
        }";

        // Kirim permintaan dan dapatkan respons
        string result = await SendPostRequestAsync(url, jsonContent, apiKey);

        // Cetak hasilnya
        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"))
        {
            // Setel header permintaan
            httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
            httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

            // Kirim permintaan dan dapatkan respons
            HttpResponseMessage response = await httpClient.PostAsync(url, content);

            // Proses respons
            if (response.IsSuccessStatusCode)
            {
                return await response.Content.ReadAsStringAsync();
            }
            else
            {
                return $"Request failed: {response.StatusCode}";
            }
        }
    }
}
Contoh respons
{
    "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": "I am Qwen, a large-scale language model from Alibaba Group. I can answer questions, create text such as stories, official documents, emails, and scripts, perform logical reasoning, write code, and more. I can also express opinions and play games. If you have any questions or need help, feel free to let me know!"
            }
        }
    ],
    "object": "chat.completion"
}

PHP (HTTP)

Contoh permintaan
<?php
// Setel URL untuk permintaan Batch Chat
$url = 'https://batch.dashscope.aliyuncs.com/compatible-mode/v1/chat/completions';
// Jika variabel lingkungan tidak disetel, ganti dengan: $apiKey = "sk-xxx";
$apiKey = getenv('DASHSCOPE_API_KEY');
// Setel header permintaan
$headers = [
    'Authorization: Bearer '.$apiKey,
    'Content-Type: application/json'
];
// Setel badan permintaan
$data = [
    // Ganti dengan nama model Anda sesuai kebutuhan
    "model" => "qwen-plus",
    "messages" => [
        [
            "role" => "system",
            "content" => "You are a helpful assistant."
        ],
        [
            "role" => "user",
            "content" => "Who are you?"
        ]
    ]
];
// Inisialisasi sesi cURL
$ch = curl_init();
// Setel opsi 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);
// Timeout: 1800s (30 menit). Maks: 3600s.
curl_setopt($ch, CURLOPT_TIMEOUT, 1800);
// Jalankan sesi cURL
$response = curl_exec($ch);
// Periksa kesalahan
if (curl_errno($ch)) {
    echo 'Curl error: ' . curl_error($ch);
}
// Tutup resource cURL
curl_close($ch);
// Cetak respons
echo $response;
?>
Contoh respons
{
    "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": "I am Qwen, a large-scale language model developed by Alibaba Cloud. I can answer questions and create text, such as stories, official documents, emails, and scripts. I can also perform logical reasoning, write code, and even express opinions and play games. I support multiple languages, including but not limited to Chinese, English, German, French, and Spanish. If you have any questions or need help, feel free to let me know!"
            }
        }
    ],
    "object": "chat.completion"
}

curl

Contoh permintaan

Atur max-time ke 1800 detik. Maksimum: 3600 detik.

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": "You are a helpful assistant."
        },
        {
            "role": "user",
            "content": "Who are you?"
        }
    ]
}'
Contoh respons
{
    "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": "I am Qwen, a large-scale language model from Alibaba Group. I can answer questions and create text, such as stories, official documents, emails, and scripts. I can also perform logical reasoning, write code, express opinions, and play games. I support multiple languages, including but not limited to Chinese, English, German, French, and Spanish. If you have any questions or need help, feel free to let me know!"
            }
        }
    ],
    "object": "chat.completion"
}

Batasan

  • Waktu tunggu: Maksimum 3.600 detik (1 jam) untuk penantian sinkron. Anda dapat mengatur waktu tunggu kustom antara 60–3.600 detik.

  • Batas konkurensi: Maksimum 10.000 permintaan tertunda per model per akun. Permintaan yang melebihi batas ini akan ditolak dengan kode kesalahan. Permintaan baru hanya diterima setelah sebagian permintaan tertunda selesai.

  • Laju pemanggilan: Maksimum 1.000 QPS per akun, atau 10.000 panggilan per 10 detik.

    Nilai tersebut merupakan batas teoretis maksimum. Ketersediaan aktual tergantung pada beban sistem. Terapkan logika retry.

Penagihan

  • Harga satuan: Penagihan didasarkan pada token input/output dari permintaan yang berhasil. Harga daftar sama dengan harga panggilan real-time. Tersedia diskon 50% untuk waktu terbatas di situs resmi. Lihat Daftar model.
  • Ruang lingkup penagihan: Hanya permintaan yang berhasil yang dikenai biaya. Permintaan gagal (akibat error sistem atau timeout) tidak ditagih.

Catatan

  • Inferensi batch merupakan item penagihan terpisah. Fitur ini mendukung rencana penghematan AI umum, tetapi tidak mendukung diskon seperti subscription (rencana penghematan lainnya) atau kuota gratis untuk pengguna baru. Fitur ini juga tidak mendukung fitur seperti cache konteks.
  • Beberapa model, seperti qwen3.5-plus dan qwen3.5-flash, memiliki mode thinking aktif secara default. Mode ini menghasilkan token thinking tambahan yang ditagih dengan harga token output dan meningkatkan biaya. Untuk mengontrol biaya, atur parameter enable_thinking sesuai dengan kompleksitas tugas. Untuk informasi lebih lanjut, lihat Deep thinking.

Kode kesalahan

Jika pemanggilan model gagal dan mengembalikan pesan kesalahan, lihat Kode Kesalahan untuk penyelesaiannya.

FAQ

  1. Apakah ada perbedaan waktu respons antara Batch Chat dan API real-time?

    Ya. Permintaan dimasukkan ke dalam antrian untuk penjadwalan, sehingga waktu end-to-end umumnya lebih lama dibandingkan API real-time. Waktu tunggu maksimum adalah 1 jam. Koneksi akan terputus dengan error jika batas waktu tersebut terlampaui.

  2. Bagaimana cara memilih antara Batch Chat dan Batch File?

    Pilih Batch Chat untuk banyak permintaan dialog independen dengan konkurensi tinggi melalui panggilan sinkron. Pilih Batch File untuk memproses satu file besar yang berisi banyak permintaan melalui pengambilan asinkron.

  3. Apakah Batch Chat menjamin semua permintaan akan selesai?

    Tidak. Penyelesaian bergantung pada alokasi sumber daya bersama. Permintaan mungkin mengantri jika sumber daya sedang sibuk. Koneksi akan timeout jika tidak dieksekusi dalam waktu tunggu maksimum. Permintaan yang mengalami timeout tidak ditagih; silakan coba lagi nanti.

Referensi