Qwen-VL menjawab pertanyaan berdasarkan gambar atau video yang Anda berikan. Model ini mendukung input gambar tunggal maupun ganda, serta cocok untuk berbagai tugas seperti pembuatan keterangan gambar (image captioning), menjawab pertanyaan berbasis visual (visual question answering), dan deteksi objek.
Wilayah yang didukung: Singapura, Virginia, dan Beijing. Gunakan Kunci API untuk setiap wilayah yang sesuai.
Coba secara online: Vision (Singapura), Vision (Virginia), atau Vision (Beijing)
Mulai
Prasyarat
Jika Anda menggunakan SDK untuk melakukan panggilan, instal SDK. SDK Python DashScope harus versi 1.24.6 atau lebih baru, dan SDK Java DashScope harus versi 2.21.10 atau lebih baru.
Contoh berikut menunjukkan cara memanggil model untuk menggambarkan konten gambar. Untuk informasi lebih lanjut tentang file lokal dan batasan gambar, lihat Cara meneruskan file lokal dan Batasan gambar.
Kompatibel dengan OpenAI
Python
from openai import OpenAI
import os
client = OpenAI(
# Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key=os.getenv("DASHSCOPE_API_KEY"),
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/compatible-mode/v1
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan https://dashscope.aliyuncs.com/compatible-mode/v1
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
)
completion = client.chat.completions.create(
model="qwen3-vl-plus", # Contoh ini menggunakan qwen3-vl-plus. Anda dapat mengganti nama model sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/en/model-studio/getting-started/models
messages=[
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"
},
},
{"type": "text", "text": "Apa yang digambarkan dalam gambar ini?"},
],
},
],
)
print(completion.choices[0].message.content)Tanggapan
Ini adalah foto yang diambil di pantai. Dalam foto tersebut, seseorang dan seekor anjing duduk di atas pasir, dengan laut dan langit sebagai latar belakang. Orang dan anjing tersebut tampak sedang berinteraksi, dengan kaki depan anjing bertumpu pada tangan orang tersebut. Sinar matahari datang dari sisi kanan bingkai, menambah suasana hangat pada adegan ini.Node.js
import OpenAI from "openai";
const openai = new OpenAI({
// Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Studio Model Anda: apiKey: "sk-xxx"
apiKey: process.env.DASHSCOPE_API_KEY,
// Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/compatible-mode/v1
// Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan https://dashscope.aliyuncs.com/compatible-mode/v1
baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
});
async function main() {
const response = await openai.chat.completions.create({
model: "qwen3-vl-plus", // Contoh ini menggunakan qwen3-vl-plus. Anda dapat mengganti nama model sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/en/model-studio/getting-started/models
messages: [
{
role: "user",
content: [{
type: "image_url",
image_url: {
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"
}
},
{
type: "text",
text: "Apa yang digambarkan dalam gambar ini?"
}
]
}
]
});
console.log(response.choices[0].message.content);
}
main()Tanggapan
Ini adalah foto yang diambil di pantai. Dalam foto tersebut, seseorang dan seekor anjing duduk di atas pasir, dengan laut dan langit sebagai latar belakang. Orang dan anjing tersebut tampak sedang berinteraksi, dengan kaki depan anjing bertumpu pada tangan orang tersebut. Sinar matahari datang dari sisi kanan bingkai, menambah suasana hangat pada adegan ini.curl
# ======= Penting =======
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/compatible-mode/v1/chat/completions
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
# Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# === Hapus komentar ini sebelum eksekusi ===
curl --location 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "qwen3-vl-plus",
"messages": [
{"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"}},
{"type": "text", "text": "Apa yang digambarkan dalam gambar ini?"}
]
}]
}'Tanggapan
{
"choices": [
{
"message": {
"content": "Ini adalah foto yang diambil di pantai. Dalam foto tersebut, seseorang dan seekor anjing duduk di atas pasir, dengan laut dan langit sebagai latar belakang. Orang dan anjing tersebut tampak sedang berinteraksi, dengan kaki depan anjing bertumpu pada tangan orang tersebut. Sinar matahari datang dari sisi kanan bingkai, menambah suasana hangat pada adegan ini.",
"role": "assistant"
},
"finish_reason": "stop",
"index": 0,
"logprobs": null
}
],
"object": "chat.completion",
"usage": {
"prompt_tokens": 1270,
"completion_tokens": 54,
"total_tokens": 1324
},
"created": 1725948561,
"system_fingerprint": null,
"model": "qwen3-vl-plus",
"id": "chatcmpl-0fd66f46-b09e-9164-a84f-3ebbbedbac15"
}DashScope
Python
import os
import dashscope
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/api/v1
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = [
{
"role": "user",
"content": [
{"image": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"},
{"text": "Apa yang digambarkan dalam gambar ini?"}]
}]
response = dashscope.MultiModalConversation.call(
# Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Studio Model Anda: api_key="sk-xxx"
api_key=os.getenv('DASHSCOPE_API_KEY'),
model='qwen3-vl-plus', # Contoh ini menggunakan qwen3-vl-plus. Anda dapat mengganti nama model sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/en/model-studio/getting-started/models
messages=messages
)
print(response.output.choices[0].message.content[0]["text"])Tanggapan
Ini adalah foto yang diambil di pantai. Dalam foto tersebut, terdapat seorang wanita dan seekor anjing. Wanita tersebut duduk di atas pasir sambil tersenyum dan berinteraksi dengan anjingnya. Anjing tersebut mengenakan kalung dan tampak sedang bersalaman dengan wanita tersebut. Latar belakangnya adalah laut dan langit, serta sinar matahari yang menyinari mereka menciptakan suasana hangat.Java
import java.util.Arrays;
import java.util.Collections;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
public class Main {
// Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/api/v1
// Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
static {
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void simpleMultiModalConversationCall()
throws ApiException, NoApiKeyException, UploadFileException {
MultiModalConversation conv = new MultiModalConversation();
MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
.content(Arrays.asList(
Collections.singletonMap("image", "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"),
Collections.singletonMap("text", "Apa yang digambarkan dalam gambar ini?"))).build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Studio Model Anda: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3-vl-plus") // Contoh ini menggunakan qwen3-vl-plus. Anda dapat mengganti nama model sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/en/model-studio/getting-started/models
.messages(Arrays.asList(userMessage))
.build();
MultiModalConversationResult result = conv.call(param);
System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));
}
public static void main(String[] args) {
try {
simpleMultiModalConversationCall();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}Tanggapan
Ini adalah foto yang diambil di pantai. Dalam foto tersebut, terdapat seseorang yang mengenakan kemeja kotak-kotak dan seekor anjing yang mengenakan kalung. Orang dan anjing tersebut duduk saling berhadapan, tampak sedang berinteraksi. Latar belakangnya adalah laut dan langit, serta sinar matahari yang menyinari mereka menciptakan suasana hangat.curl
# ======= Penting =======
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
# Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# === Hapus komentar ini sebelum eksekusi ===
curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen3-vl-plus",
"input":{
"messages":[
{
"role": "user",
"content": [
{"image": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"},
{"text": "Apa yang digambarkan dalam gambar ini?"}
]
}
]
}
}'Tanggapan
{
"output": {
"choices": [
{
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": [
{
"text": "Ini adalah foto yang diambil di pantai. Dalam foto tersebut, terdapat seseorang yang mengenakan kemeja kotak-kotak dan seekor anjing yang mengenakan kalung. Mereka duduk di atas pasir, dengan laut dan langit sebagai latar belakang. Sinar matahari datang dari sisi kanan bingkai, menambah suasana hangat pada adegan ini."
}
]
}
}
]
},
"usage": {
"output_tokens": 55,
"input_tokens": 1271,
"image_tokens": 1247
},
"request_id": "ccf845a3-dc33-9cda-b581-20fe7dc23f70"
}Pemilihan model
Untuk tugas seperti pengenalan dan pelokalisasian objek berpresisi tinggi (termasuk pelokalisasian 3D), pemanggilan alat oleh agen, penguraian dokumen dan halaman web, penyelesaian masalah kompleks, serta pemahaman video panjang, Qwen3-VL adalah pilihan utama. Perbandingan model dalam seri ini adalah sebagai berikut:
qwen3-vl-plus: Model paling kuat.qwen3-vl-flash: Model ini lebih cepat dan hemat biaya. Ini merupakan opsi bernilai tinggi yang menyeimbangkan performa dan biaya, cocok untuk skenario yang sensitif terhadap kecepatan respons.
Untuk tugas sederhana seperti pembuatan keterangan gambar dan ekstraksi ringkasan video pendek, Anda dapat memilih Qwen2.5-VL. Perbandingan model dalam seri ini adalah sebagai berikut:
qwen-vl-max: Model dengan performa terbaik dalam seri Qwen2.5-VL.qwen-vl-plus(bagian dari Qwen2.5-VL): Model ini lebih cepat dan memberikan keseimbangan yang baik antara performa dan biaya.
Untuk nama model, konteks, harga, dan versi snapshot, lihat Daftar model. Untuk batasan permintaan konkuren, lihat Pembatasan laju.
Ikhtisar performa
Menjawab pertanyaan berbasis visual
Jelaskan konten gambar atau klasifikasikan dan beri label, seperti mengidentifikasi orang, tempat, hewan, dan tumbuhan.
Jika matahari menyilaukan, barang apa dari gambar ini yang harus saya gunakan? | Saat matahari menyilaukan, Anda harus menggunakan kacamata hitam merah muda dari gambar tersebut. Kacamata hitam dapat secara efektif menghalangi cahaya terang, mengurangi kerusakan UV pada mata Anda, serta membantu melindungi penglihatan dan meningkatkan kenyamanan visual dalam sinar matahari yang terang. |
Penulisan kreatif
Hasilkan deskripsi teks yang hidup berdasarkan konten gambar atau video. Ini cocok untuk skenario kreatif seperti penulisan cerita, copywriting, dan naskah video pendek.
Tolong bantu saya menulis postingan media sosial yang menarik berdasarkan konten gambar tersebut. | Tentu, gambar ini penuh dengan suasana Festival Pertengahan Musim Gugur yang kaya, dengan kombinasi cerdas antara unsur klasik dan modern. Berdasarkan elemen utama dalam gambar, saya telah menyiapkan beberapa postingan media sosial dalam gaya berbeda untuk Anda pilih. Gaya puitis dan indah Malam ini bulan bersinar terang dan semua orang menatapnya, bertanya-tanya ke mana pikiran musim gugur akan jatuh. Chang'e terbang ke bulan, dan Kelinci Giok menumbuk obat—romansa para leluhur menyala malam ini. Semoga bulan yang terang ini menerangi jalan pulang Anda dan membawa kerinduan terdalam saya. Selamat Hari Raya Pertengahan Musim Gugur! Gaya hangat dan penuh berkah Bulan purnama, dan keluarga berkumpul. Malam Pertengahan Musim Gugur adalah yang paling lembut. Saksikan kembang api mekar, kagumi bulan purnama di langit, ambil sepotong kue bulan, dan berharap untuk kedamaian dan kesehatan. Semoga semua yang Anda dan saya harapkan dalam hati menjadi kenyataan. Selamat Hari Raya Pertengahan Musim Gugur dan semoga keluarga Anda bahagia! |
OCR dan ekstraksi informasi
Kenali teks dan rumus dalam gambar atau ekstrak informasi dari kwitansi, sertifikat, dan formulir, dengan dukungan output teks terformat. Model Qwen3-VL telah memperluas dukungan bahasanya hingga 33 bahasa. Untuk daftar bahasa yang didukung, lihat Perbandingan fitur model.
Ekstrak hal berikut dari gambar: ['Kode Faktur', 'Nomor Faktur', 'Tujuan', 'Biaya Bahan Bakar', 'Tarif', 'Tanggal Perjalanan', 'Waktu Keberangkatan', 'Nomor Kereta', 'Nomor Kursi']. Harap keluarkan dalam format JSON. | { "Kode Faktur": "221021325353", "Nomor Faktur": "10283819", "Tujuan": "Zona Pengembangan", "Biaya Bahan Bakar": "2.0", "Tarif": "8.00<Full>", "Tanggal Perjalanan": "2013-06-29", "Waktu Keberangkatan": "Serial", "Nomor Kereta": "040", "Nomor Kursi": "371" } |
Penyelesaian masalah multidisiplin
Selesaikan masalah dalam gambar, seperti masalah matematika, fisika, dan kimia. Fitur ini cocok untuk pendidikan dasar, menengah, perguruan tinggi, dan dewasa.
Harap selesaikan soal matematika dalam gambar tersebut langkah demi langkah. |
|
Pengkodean visual
Hasilkan kode dari gambar atau video. Ini dapat digunakan untuk membuat kode HTML, CSS, dan JS dari sketsa desain, tangkapan layar situs web, dan lainnya.
Rancang halaman web menggunakan HTML dan CSS berdasarkan sketsa saya, dengan warna hitam sebagai warna utama. |
Pratinjau halaman web |
Pelokalisasian objek
Model mendukung pelokalisasian 2D dan 3D, yang dapat digunakan untuk menentukan orientasi objek, perubahan perspektif, dan hubungan oklusi. Pelokalisasian 3D adalah fitur baru dari model Qwen3-VL.
Untuk model Qwen2.5-VL, deteksi objek kuat dalam rentang resolusi 480 × 480 hingga 2560 × 2560. Di luar rentang ini, akurasi deteksi dapat menurun, dengan sesekali terjadi deviasi Kotak pembatas.
Untuk informasi lebih lanjut tentang cara menggambar hasil pelokalisasian pada gambar asli, lihat FAQ.
Pelokalisasian 2D
| Visualisasi hasil pelokalisasian 2D
|
Penguraian dokumen
Uraikan dokumen berbasis gambar, seperti pindaian atau PDF gambar, ke dalam format HTML QwenVL atau Markdown QwenVL. Format ini tidak hanya mengenali teks secara akurat tetapi juga mendapatkan informasi posisi elemen seperti gambar dan tabel. Model Qwen3-VL menambahkan kemampuan untuk menguraikan dokumen ke dalam format Markdown.
Prompt yang direkomendasikan adalah:qwenvl html(untuk menguraikan ke format HTML) atauqwenvl markdown(untuk menguraikan ke format Markdown).
qwenvl markdown. |
Visualisasi hasil |
Pemahaman video
Analisis konten video, seperti melokalisasi event spesifik dan mendapatkan timestamp, atau menghasilkan ringkasan periode waktu kunci.
Harap jelaskan rangkaian tindakan orang dalam video tersebut. Keluarkan dalam format JSON dengan start_time, end_time, dan event. Harap gunakan HH:mm:ss untuk timestamp. | { "events": [ { "start_time": "00:00:00", "end_time": "00:00:05", "event": "Orang tersebut berjalan menuju meja sambil memegang kotak kardus dan meletakkannya di atas meja." }, { "start_time": "00:00:05", "end_time": "00:00:15", "event": "Orang tersebut mengambil pemindai dan memindai label pada kotak kardus tersebut." }, { "start_time": "00:00:15", "end_time": "00:00:21", "event": "Orang tersebut meletakkan kembali pemindai ke tempatnya lalu mengambil pena untuk menulis informasi di buku catatan."}] } |
Kemampuan inti
Aktifkan atau nonaktifkan mode pemikiran
Model seri
qwen3-vl-plusdanqwen3-vl-flashadalah model pemikiran hibrida. Model ini dapat merespons setelah berpikir atau merespons langsung. Gunakan parameterenable_thinkinguntuk mengontrol apakah mode pemikiran diaktifkan:true: Mode pemikiran diaktifkan.false(default): Menonaktifkan mode pemikiran.
Model dengan akhiran
thinking, sepertiqwen3-vl-235b-a22b-thinking, adalah model pemikiran saja. Model ini selalu berpikir sebelum merespons, dan Anda tidak dapat menonaktifkan fitur ini.
Konfigurasi model: Dalam skenario percakapan umum yang tidak melibatkan pemanggilan alat oleh agen, kami merekomendasikan agar Anda tidak mengatur
System Messageuntuk mempertahankan performa optimal. Anda dapat meneruskan instruksi seperti pengaturan peran model dan persyaratan format output melaluiUser Message.Utamakan keluaran streaming: Saat mode pemikiran diaktifkan, keluaran streaming dan non-streaming didukung. Untuk menghindari timeout karena konten respons yang panjang, kami merekomendasikan agar Anda mengutamakan penggunaan keluaran streaming.
Batasi panjang pemikiran: Model pemikiran mendalam terkadang menghasilkan proses penalaran yang panjang. Anda dapat menggunakan parameter
thinking_budgetuntuk membatasi panjang proses pemikiran. Jika jumlah token yang dihasilkan selama proses pemikiran model melebihithinking_budget, konten penalaran dipotong, dan model segera mulai menghasilkan respons akhir. Nilai defaultthinking_budgetadalah panjang maksimum rantai-pikiran model, yang tercantum di Model.
Kompatibel dengan OpenAI
Parameter enable_thinking bukanlah parameter standar OpenAI. Jika Anda menggunakan SDK OpenAI untuk Python, Anda dapat meneruskannya melalui extra_body.
import os
from openai import OpenAI
client = OpenAI(
# Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key=os.getenv("DASHSCOPE_API_KEY"),
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/compatible-mode/v1
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan https://dashscope.aliyuncs.com/compatible-mode/v1
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
)
reasoning_content = "" # Definisikan proses pemikiran lengkap
answer_content = "" # Definisikan respons lengkap
is_answering = False # Tentukan apakah akan mengakhiri proses pemikiran dan mulai merespons
enable_thinking = True
# Buat permintaan penyelesaian chat
completion = client.chat.completions.create(
model="qwen3-vl-plus",
messages=[
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://img.alicdn.com/imgextra/i1/O1CN01gDEY8M1W114Hi3XcN_!!6000000002727-0-tps-1024-406.jpg"
},
},
{"type": "text", "text": "Bagaimana cara menyelesaikan masalah ini?"},
],
},
],
stream=True,
# Parameter enable_thinking mengaktifkan proses pemikiran, dan parameter thinking_budget menetapkan jumlah maksimum token untuk proses penalaran.
# Untuk qwen3-vl-plus dan qwen3-vl-flash, pemikiran dapat diaktifkan atau dinonaktifkan dengan enable_thinking. Untuk model dengan akhiran 'thinking', seperti qwen3-vl-235b-a22b-thinking, enable_thinking hanya dapat diatur ke true. Ini tidak berlaku untuk model Qwen-VL lainnya.
extra_body={
'enable_thinking': enable_thinking,
"thinking_budget": 81920},
# Hapus komentar pada baris berikut untuk mengembalikan penggunaan token pada chunk terakhir
# stream_options={
# "include_usage": True
# }
)
if enable_thinking:
print("\n" + "=" * 20 + "Proses Pemikiran" + "=" * 20 + "\n")
for chunk in completion:
# Jika chunk.choices kosong, cetak penggunaan
if not chunk.choices:
print("\nPenggunaan:")
print(chunk.usage)
else:
delta = chunk.choices[0].delta
# Cetak proses pemikiran
if hasattr(delta, 'reasoning_content') and delta.reasoning_content is not None:
print(delta.reasoning_content, end='', flush=True)
reasoning_content += delta.reasoning_content
else:
# Mulai merespons
if delta.content != "" and is_answering is False:
print("\n" + "=" * 20 + "Respons Lengkap" + "=" * 20 + "\n")
is_answering = True
# Cetak proses respons
print(delta.content, end='', flush=True)
answer_content += delta.content
# print("=" * 20 + "Proses Pemikiran Lengkap" + "=" * 20 + "\n")
# print(reasoning_content)
# print("=" * 20 + "Respons Lengkap" + "=" * 20 + "\n")
# print(answer_content)import OpenAI from "openai";
// Inisialisasi klien OpenAI
const openai = new OpenAI({
// Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Studio Model Anda: apiKey: "sk-xxx"
apiKey: process.env.DASHSCOPE_API_KEY,
// Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/compatible-mode/v1
// Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan https://dashscope.aliyuncs.com/compatible-mode/v1
baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
});
let reasoningContent = '';
let answerContent = '';
let isAnswering = false;
let enableThinking = true;
let messages = [
{
role: "user",
content: [
{ type: "image_url", image_url: { "url": "https://img.alicdn.com/imgextra/i1/O1CN01gDEY8M1W114Hi3XcN_!!6000000002727-0-tps-1024-406.jpg" } },
{ type: "text", text: "Selesaikan masalah ini" },
]
}]
async function main() {
try {
const stream = await openai.chat.completions.create({
model: 'qwen3-vl-plus',
messages: messages,
stream: true,
// Catatan: Pada SDK Node.js, parameter non-standar seperti enableThinking diteruskan sebagai properti tingkat atas dan tidak perlu berada di extra_body.
enable_thinking: enableThinking,
thinking_budget: 81920
});
if (enableThinking){console.log('\n' + '='.repeat(20) + 'Proses Pemikiran' + '='.repeat(20) + '\n');}
for await (const chunk of stream) {
if (!chunk.choices?.length) {
console.log('\nPenggunaan:');
console.log(chunk.usage);
continue;
}
const delta = chunk.choices[0].delta;
// Proses proses pemikiran
if (delta.reasoning_content) {
process.stdout.write(delta.reasoning_content);
reasoningContent += delta.reasoning_content;
}
// Proses respons formal
else if (delta.content) {
if (!isAnswering) {
console.log('\n' + '='.repeat(20) + 'Respons Lengkap' + '='.repeat(20) + '\n');
isAnswering = true;
}
process.stdout.write(delta.content);
answerContent += delta.content;
}
}
} catch (error) {
console.error('Error:', error);
}
}
main();# ======= Penting =======
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/compatible-mode/v1/chat/completions
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
# Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# === Hapus komentar ini sebelum eksekusi ===
curl --location 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "qwen3-vl-plus",
"messages": [
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://img.alicdn.com/imgextra/i1/O1CN01gDEY8M1W114Hi3XcN_!!6000000002727-0-tps-1024-406.jpg"
}
},
{
"type": "text",
"text": "Tolong selesaikan masalah ini"
}
]
}
],
"stream":true,
"stream_options":{"include_usage":true},
"enable_thinking": true,
"thinking_budget": 81920
}'DashScope
import os
import dashscope
from dashscope import MultiModalConversation
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/api/v1
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = "https://dashscope-intl.aliyuncs.com/api/v1"
enable_thinking=True
messages = [
{
"role": "user",
"content": [
{"image": "https://img.alicdn.com/imgextra/i1/O1CN01gDEY8M1W114Hi3XcN_!!6000000002727-0-tps-1024-406.jpg"},
{"text": "Selesaikan masalah ini?"}
]
}
]
response = MultiModalConversation.call(
# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Studio Model Anda: api_key="sk-xxx",
# Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key=os.getenv('DASHSCOPE_API_KEY'),
model="qwen3-vl-plus",
messages=messages,
stream=True,
# Parameter enable_thinking mengaktifkan proses pemikiran.
# Untuk qwen3-vl-plus dan qwen3-vl-flash, pemikiran dapat diaktifkan atau dinonaktifkan dengan enable_thinking. Untuk model dengan akhiran 'thinking', seperti qwen3-vl-235b-a22b-thinking, enable_thinking hanya dapat diatur ke true. Ini tidak berlaku untuk model Qwen-VL lainnya.
enable_thinking=enable_thinking,
# Parameter thinking_budget menetapkan jumlah maksimum token untuk proses penalaran.
thinking_budget=81920,
)
# Definisikan proses pemikiran lengkap
reasoning_content = ""
# Definisikan respons lengkap
answer_content = ""
# Tentukan apakah akan mengakhiri proses pemikiran dan mulai merespons
is_answering = False
if enable_thinking:
print("=" * 20 + "Proses Pemikiran" + "=" * 20)
for chunk in response:
# Jika proses pemikiran dan respons keduanya kosong, abaikan
message = chunk.output.choices[0].message
reasoning_content_chunk = message.get("reasoning_content", None)
if (chunk.output.choices[0].message.content == [] and
reasoning_content_chunk == ""):
pass
else:
# Jika saat ini dalam proses pemikiran
if reasoning_content_chunk is not None and chunk.output.choices[0].message.content == []:
print(chunk.output.choices[0].message.reasoning_content, end="")
reasoning_content += chunk.output.choices[0].message.reasoning_content
# Jika saat ini merespons
elif chunk.output.choices[0].message.content != []:
if not is_answering:
print("\n" + "=" * 20 + "Respons Lengkap" + "=" * 20)
is_answering = True
print(chunk.output.choices[0].message.content[0]["text"], end="")
answer_content += chunk.output.choices[0].message.content[0]["text"]
# Untuk mencetak proses pemikiran lengkap dan respons lengkap, hapus komentar dan jalankan kode berikut
# print("=" * 20 + "Proses Pemikiran Lengkap" + "=" * 20 + "\n")
# print(f"{reasoning_content}")
# print("=" * 20 + "Respons Lengkap" + "=" * 20 + "\n")
# print(f"{answer_content}")// Versi SDK DashScope >= 2.21.10
import java.util.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import io.reactivex.Flowable;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.exception.InputRequiredException;
import java.lang.System;
import com.alibaba.dashscope.utils.Constants;
public class Main {
// Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/api/v1
// Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
static {Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";}
private static final Logger logger = LoggerFactory.getLogger(Main.class);
private static StringBuilder reasoningContent = new StringBuilder();
private static StringBuilder finalContent = new StringBuilder();
private static boolean isFirstPrint = true;
private static void handleGenerationResult(MultiModalConversationResult message) {
String re = message.getOutput().getChoices().get(0).getMessage().getReasoningContent();
String reasoning = Objects.isNull(re)?"":re; // Nilai default
List<Map<String, Object>> content = message.getOutput().getChoices().get(0).getMessage().getContent();
if (!reasoning.isEmpty()) {
reasoningContent.append(reasoning);
if (isFirstPrint) {
System.out.println("====================Proses Pemikiran====================");
isFirstPrint = false;
}
System.out.print(reasoning);
}
if (Objects.nonNull(content) && !content.isEmpty()) {
Object text = content.get(0).get("text");
finalContent.append(content.get(0).get("text"));
if (!isFirstPrint) {
System.out.println("\n====================Respons Lengkap====================");
isFirstPrint = true;
}
System.out.print(text);
}
}
public static MultiModalConversationParam buildMultiModalConversationParam(MultiModalMessage Msg) {
return MultiModalConversationParam.builder()
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Studio Model Anda: .apiKey("sk-xxx")
// Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3-vl-plus")
.messages(Arrays.asList(Msg))
.enableThinking(true)
.thinkingBudget(81920)
.incrementalOutput(true)
.build();
}
public static void streamCallWithMessage(MultiModalConversation conv, MultiModalMessage Msg)
throws NoApiKeyException, ApiException, InputRequiredException, UploadFileException {
MultiModalConversationParam param = buildMultiModalConversationParam(Msg);
Flowable<MultiModalConversationResult> result = conv.streamCall(param);
result.blockingForEach(message -> {
handleGenerationResult(message);
});
}
public static void main(String[] args) {
try {
MultiModalConversation conv = new MultiModalConversation();
MultiModalMessage userMsg = MultiModalMessage.builder()
.role(Role.USER.getValue())
.content(Arrays.asList(Collections.singletonMap("image", "https://img.alicdn.com/imgextra/i1/O1CN01gDEY8M1W114Hi3XcN_!!6000000002727-0-tps-1024-406.jpg"),
Collections.singletonMap("text", "Tolong selesaikan masalah ini")))
.build();
streamCallWithMessage(conv, userMsg);
// Cetak hasil akhir
// if (reasoningContent.length() > 0) {
// System.out.println("\n====================Respons Lengkap====================");
// System.out.println(finalContent.toString());
// }
} catch (ApiException | NoApiKeyException | UploadFileException | InputRequiredException e) {
logger.error("Terjadi pengecualian: {}", e.getMessage());
}
System.exit(0);
}
}# ======= Penting =======
# Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
# === Hapus komentar ini sebelum eksekusi ===
curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-H 'X-DashScope-SSE: enable' \
-d '{
"model": "qwen3-vl-plus",
"input":{
"messages":[
{
"role": "user",
"content": [
{"image": "https://img.alicdn.com/imgextra/i1/O1CN01gDEY8M1W114Hi3XcN_!!6000000002727-0-tps-1024-406.jpg"},
{"text": "Tolong selesaikan masalah ini"}
]
}
]
},
"parameters":{
"enable_thinking": true,
"incremental_output": true,
"thinking_budget": 81920
}
}'Input gambar ganda
Qwen-VL mendukung meneruskan beberapa gambar dalam satu permintaan, yang dapat digunakan untuk tugas seperti perbandingan produk dan pemrosesan dokumen multipage. Untuk melakukan ini, Anda dapat menyertakan beberapa objek gambar dalam array user message's content.
Jumlah gambar dibatasi oleh batas total token model untuk teks dan gambar. Jumlah total token untuk semua gambar dan teks harus kurang dari input maksimum model.
Kompatibel dengan OpenAI
Python
import os
from openai import OpenAI
client = OpenAI(
# Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key=os.getenv("DASHSCOPE_API_KEY"),
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/compatible-mode/v1
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan https://dashscope.aliyuncs.com/compatible-mode/v1
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen3-vl-plus", # Contoh ini menggunakan qwen3-vl-plus. Anda dapat mengganti nama model sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/en/model-studio/getting-started/models
messages=[
{"role": "user","content": [
{"type": "image_url","image_url": {"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"},},
{"type": "image_url","image_url": {"url": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/tiger.png"},},
{"type": "text", "text": "Apa yang digambarkan dalam gambar-gambar ini?"},
],
}
],
)
print(completion.choices[0].message.content)Tanggapan
Gambar 1 menunjukkan adegan seorang wanita dan seekor Labrador retriever berinteraksi di pantai. Wanita tersebut mengenakan kemeja kotak-kotak dan duduk di atas pasir, bersalaman dengan anjing tersebut. Latar belakangnya adalah ombak laut dan langit, serta keseluruhan gambar dipenuhi suasana hangat dan menyenangkan.
Gambar 2 menunjukkan adegan seekor harimau berjalan di hutan. Bulu harimau tersebut berwarna oranye dengan garis-garis hitam, dan ia sedang melangkah maju. Sekelilingnya adalah pepohonan dan vegetasi yang lebat, serta tanahnya ditutupi daun-daun yang gugur. Keseluruhan gambar memberikan perasaan alam liar.Node.js
import OpenAI from "openai";
const openai = new OpenAI(
{
// Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Studio Model Anda: apiKey: "sk-xxx"
apiKey: process.env.DASHSCOPE_API_KEY,
// Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/compatible-mode/v1
// Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/compatible-mode/v1
baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
}
);
async function main() {
const response = await openai.chat.completions.create({
model: "qwen3-vl-plus", // Contoh ini menggunakan qwen3-vl-plus. Anda dapat mengganti nama model sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/en/model-studio/getting-started/models
messages: [
{role: "user",content: [
{type: "image_url",image_url: {"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"}},
{type: "image_url",image_url: {"url": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/tiger.png"}},
{type: "text", text: "Apa yang digambarkan dalam gambar-gambar ini?" },
]}]
});
console.log(response.choices[0].message.content);
}
main()Tanggapan
Pada gambar pertama, seseorang dan seekor anjing berinteraksi di pantai. Orang tersebut mengenakan kemeja kotak-kotak, dan anjing tersebut mengenakan kalung. Mereka tampak sedang bersalaman atau tepuk tangan.
Pada gambar kedua, seekor harimau sedang berjalan di hutan. Bulu harimau tersebut berwarna oranye dengan garis-garis hitam, dan latar belakangnya adalah pepohonan hijau dan vegetasi.curl
# ======= Penting =======
# Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/compatible-mode/v1/chat/completions
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
# === Hapus komentar ini sebelum eksekusi ===
curl -X POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen3-vl-plus",
"messages": [
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"
}
},
{
"type": "image_url",
"image_url": {
"url": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/tiger.png"
}
},
{
"type": "text",
"text": "Apa yang digambarkan dalam gambar-gambar ini?"
}
]
}
]
}'Tanggapan
{
"choices": [
{
"message": {
"content": "Gambar 1 menunjukkan adegan seorang wanita dan seekor Labrador retriever berinteraksi di pantai. Wanita tersebut mengenakan kemeja kotak-kotak dan duduk di atas pasir, bersalaman dengan anjing tersebut. Latar belakangnya adalah pemandangan laut dan langit senja, serta keseluruhan gambar terlihat sangat hangat dan harmonis.\n\nGambar 2 menunjukkan adegan seekor harimau berjalan di hutan. Bulu harimau tersebut berwarna oranye dengan garis-garis hitam, dan ia sedang melangkah maju. Sekelilingnya adalah pepohonan dan vegetasi yang lebat, serta tanahnya ditutupi daun-daun yang gugur. Keseluruhan gambar penuh dengan kehidupan liar alami dan vitalitas.",
"role": "assistant"
},
"finish_reason": "stop",
"index": 0,
"logprobs": null
}
],
"object": "chat.completion",
"usage": {
"prompt_tokens": 2497,
"completion_tokens": 109,
"total_tokens": 2606
},
"created": 1725948561,
"system_fingerprint": null,
"model": "qwen3-vl-plus",
"id": "chatcmpl-0fd66f46-b09e-9164-a84f-3ebbbedbac15"
}DashScope
Python
import os
import dashscope
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/api/v1
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = [
{
"role": "user",
"content": [
{"image": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"},
{"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/tiger.png"},
{"text": "Apa yang digambarkan dalam gambar-gambar ini?"}
]
}
]
response = dashscope.MultiModalConversation.call(
# Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Studio Model Anda: api_key="sk-xxx"
api_key=os.getenv('DASHSCOPE_API_KEY'),
model='qwen3-vl-plus', # Contoh ini menggunakan qwen3-vl-plus. Anda dapat mengganti nama model sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/en/model-studio/getting-started/models
messages=messages
)
print(response.output.choices[0].message.content[0]["text"])Hasil kembalian
Gambar-gambar ini menunjukkan beberapa hewan dan pemandangan alam. Pada gambar pertama, seseorang dan seekor anjing berinteraksi di pantai. Gambar kedua adalah seekor harimau yang berjalan di hutan.Java
import java.util.Arrays;
import java.util.Collections;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
// Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/api/v1
// Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void simpleMultiModalConversationCall()
throws ApiException, NoApiKeyException, UploadFileException {
MultiModalConversation conv = new MultiModalConversation();
MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
.content(Arrays.asList(
Collections.singletonMap("image", "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"),
Collections.singletonMap("image", "https://dashscope.oss-cn-beijing.aliyuncs.com/images/tiger.png"),
Collections.singletonMap("text", "Apa yang digambarkan dalam gambar-gambar ini?"))).build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3-vl-plus") // Contoh ini menggunakan qwen3-vl-plus. Anda dapat mengganti nama model sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/en/model-studio/getting-started/models
.messages(Arrays.asList(userMessage))
.build();
MultiModalConversationResult result = conv.call(param);
System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text")); }
public static void main(String[] args) {
try {
simpleMultiModalConversationCall();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}Tanggapan
Gambar-gambar ini menunjukkan beberapa hewan dan pemandangan alam.
1. Gambar pertama: Seorang wanita dan seekor anjing berinteraksi di pantai. Wanita tersebut mengenakan kemeja kotak-kotak dan duduk di atas pasir, sedangkan anjing tersebut mengenakan kalung dan mengulurkan kakinya untuk bersalaman dengan wanita tersebut.
2. Gambar kedua: Seekor harimau berjalan di hutan. Bulu harimau tersebut berwarna oranye dengan garis-garis hitam, dan latar belakangnya adalah pepohonan dan daun-daun.curl
# ======= Penting =======
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
# Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# === Hapus komentar ini sebelum eksekusi ===
curl --location 'https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "qwen3-vl-plus",
"input":{
"messages":[
{
"role": "user",
"content": [
{"image": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg"},
{"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/tiger.png"},
{"text": "Apa yang ditunjukkan oleh gambar-gambar ini?"}
]
}
]
}
}'Tanggapan
{
"output": {
"choices": [
{
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": [
{
"text": "Gambar-gambar ini menunjukkan beberapa hewan dan pemandangan alam. Pada gambar pertama, seseorang dan seekor anjing berinteraksi di pantai. Gambar kedua adalah seekor harimau yang berjalan di hutan."
}
]
}
}
]
},
"usage": {
"output_tokens": 81,
"input_tokens": 1277,
"image_tokens": 2497
},
"request_id": "ccf845a3-dc33-9cda-b581-20fe7dc23f70"
}Pemahaman video
Qwen-VL mendukung pemahaman konten video. Anda dapat menyediakan file dalam bentuk daftar gambar (frame video) atau file video. Berikut adalah contoh kode untuk memahami video online atau daftar gambar yang ditentukan oleh URL. Untuk informasi lebih lanjut tentang batasan video atau jumlah gambar yang dapat diteruskan dalam daftar gambar, lihat bagian Batasan video.
Gunakan versi snapshot terbaru atau terkini dari model untuk performa yang lebih baik dalam memahami file video.
File video
Qwen-VL menganalisis konten dengan mengekstraksi rangkaian frame dari video. Frekuensi ekstraksi frame menentukan tingkat detail dalam analisis model. SDK berbeda memiliki frekuensi ekstraksi frame yang berbeda. Anda dapat mengontrol frekuensi ekstraksi frame menggunakan parameter fps. Parameter ini menentukan bahwa satu frame diekstraksi setiap [0.1, 10] dan nilai default-nya adalah 2.0. Kami merekomendasikan agar Anda mengatur fps yang lebih tinggi untuk adegan gerakan cepat dan fps yang lebih rendah untuk video statis atau panjang.
Qwen-VL menganalisis konten dengan mengekstraksi rangkaian frame dari video. Gunakan parameter berikut untuk mengontrol kebijakan ekstraksi frame:
fps: Mengontrol frekuensi. Satu frame setiap
detik. Rentang nilainya adalah [0.1, 10] dan nilai default-nya adalah 2.0. Adegan gerakan cepat: Nilai lebih tinggi untuk detail lebih banyak.
Video statis atau panjang: Nilai lebih rendah untuk efisiensi.
max_frames: Batas atas frame yang diekstraksi. Ketika jumlah yang dihitung berdasarkan fps melebihi max_frames, sistem secara otomatis dan merata mengambil sampel frame agar tetap dalam batas. Parameter ini hanya aktif untuk SDK DashScope.
Kompatibel dengan OpenAI
Saat Anda langsung memasukkan file video ke Qwen-VL menggunakan SDK OpenAI atau metode HTTP, Anda harus mengatur parameter"type"dalam pesan pengguna ke"video_url".
Python
import os
from openai import OpenAI
client = OpenAI(
# Kunci API berbeda untuk setiap wilayah. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan Kunci API Studio Model Anda: api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah AS (Virginia), ubah base_url menjadi https://dashscope-us.aliyuncs.com/compatible-mode/v1
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/compatible-mode/v1
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen3-vl-plus",
messages=[
{
"role": "user",
"content": [
# Saat meneruskan file video langsung, atur nilai type ke video_url
{
"type": "video_url",
"video_url": {
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241115/cqqkru/1.mp4"
},
"fps": 2
},
{
"type": "text",
"text": "Apa isi video ini?"
}
]
}
]
)
print(completion.choices[0].message.content)Node.js
import OpenAI from "openai";
const openai = new OpenAI(
{
// Kunci API berbeda untuk setiap wilayah. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
// Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan Kunci API Studio Model Anda: apiKey: "sk-xxx"
apiKey: process.env.DASHSCOPE_API_KEY,
// Berikut adalah baseURL untuk wilayah Singapura. Jika Anda menggunakan model di wilayah AS (Virginia), ubah baseURL menjadi https://dashscope-us.aliyuncs.com/compatible-mode/v1
// Jika Anda menggunakan model di wilayah China (Beijing), ganti baseURL dengan: https://dashscope.aliyuncs.com/compatible-mode/v1
baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
}
);
async function main() {
const response = await openai.chat.completions.create({
model: "qwen3-vl-plus",
messages: [
{
role: "user",
content: [
// Saat meneruskan file video langsung, atur nilai type ke video_url
{
type: "video_url",
video_url: {
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241115/cqqkru/1.mp4"
},
"fps": 2
},
{
type: "text",
text: "Apa isi video ini?"
}
]
}
]
});
console.log(response.choices[0].message.content);
}
main();curl
# ======= Penting =======
# Kunci API berbeda untuk setiap wilayah. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah AS (Virginia), ubah base_url menjadi https://dashscope-us.aliyuncs.com/compatible-mode/v1/chat/completions
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
# === Hapus komentar ini sebelum eksekusi ===
curl -X POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen3-vl-plus",
"messages": [
{
"role": "user",
"content": [
{
"type": "video_url",
"video_url": {
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241115/cqqkru/1.mp4"
},
"fps":2
},
{
"type": "text",
"text": "Apa isi video ini?"
}
]
}
]
}'DashScope
Python
import dashscope
import os
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah AS (Virginia), ubah base_url menjadi https://dashscope-us.aliyuncs.com/api/v1
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = [
{"role": "user",
"content": [
# Parameter fps mengontrol frekuensi ekstraksi frame video, artinya satu frame diekstraksi setiap 1/fps detik. Untuk penggunaan lengkap, lihat https://www.alibabacloud.com/help/en/model-studio/use-qwen-by-calling-api?#2ed5ee7377fum
{"video": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241115/cqqkru/1.mp4","fps":2},
{"text": "Apa isi video ini?"}
]
}
]
response = dashscope.MultiModalConversation.call(
# Kunci API berbeda untuk setiap wilayah. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan Kunci API Studio Model Anda: api_key ="sk-xxx"
api_key=os.getenv('DASHSCOPE_API_KEY'),
model='qwen3-vl-plus',
messages=messages
)
print(response.output.choices[0].message.content[0]["text"])Java
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
// Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah AS (Virginia), ubah base_url menjadi https://dashscope-us.aliyuncs.com/api/v1
// Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void simpleMultiModalConversationCall()
throws ApiException, NoApiKeyException, UploadFileException {
MultiModalConversation conv = new MultiModalConversation();
// Parameter fps mengontrol frekuensi ekstraksi frame video, artinya satu frame diekstraksi setiap 1/fps detik. Untuk penggunaan lengkap, lihat https://www.alibabacloud.com/help/en/model-studio/use-qwen-by-calling-api?#2ed5ee7377fum
Map<String, Object> params = new HashMap<>();
params.put("video", "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241115/cqqkru/1.mp4");
params.put("fps", 2);
MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
.content(Arrays.asList(
params,
Collections.singletonMap("text", "Apa isi video ini?"))).build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// Jika Anda menggunakan model di wilayah China (Beijing), Anda harus menggunakan Kunci API dari wilayah China (Beijing). Dapatkan Kunci API di: https://www.alibabacloud.com/help/en/model-studio/get-api-key
// Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan Kunci API Studio Model Anda: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3-vl-plus")
.messages(Arrays.asList(userMessage))
.build();
MultiModalConversationResult result = conv.call(param);
System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));
}
public static void main(String[] args) {
try {
simpleMultiModalConversationCall();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}curl
# ======= Penting =======
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah AS (Virginia), ubah base_url menjadi https://dashscope-us.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
# Kunci API berbeda untuk setiap wilayah. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# === Hapus komentar ini sebelum eksekusi ===
curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen3-vl-plus",
"input":{
"messages":[
{"role": "user","content": [{"video": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241115/cqqkru/1.mp4","fps":2},
{"text": "Apa isi video ini?"}]}]}
}'Daftar gambar
Saat video diteruskan sebagai daftar gambar (frame video yang telah diekstraksi sebelumnya), Anda dapat menggunakan parameter fps untuk memberi tahu model tentang interval waktu antar frame video. Hal ini membantu model lebih memahami urutan, durasi, dan perubahan dinamis peristiwa. Model mendukung menentukan laju frame asli video menggunakan parameter fps, yang menunjukkan bahwa frame video diekstraksi dari video asli setiap
Kompatibel dengan OpenAI
Saat Anda memasukkan video sebagai daftar gambar ke model Qwen-VL menggunakan SDK OpenAI atau permintaan HTTP, Anda harus mengatur parameter"type"dalam pesan pengguna ke"video".
Python
import os
from openai import OpenAI
client = OpenAI(
# Kunci API berbeda untuk setiap wilayah. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Studio Model Anda: api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah AS (Virginia), ganti base_url dengan https://dashscope-us.aliyuncs.com/compatible-mode/v1.
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan https://dashscope.aliyuncs.com/compatible-mode/v1.
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen3-vl-plus", # Contoh ini menggunakan qwen3-vl-plus. Ganti nama model sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/en/model-studio/models
messages=[{"role": "user","content": [
# Saat Anda memasukkan daftar gambar, atur parameter "type" dalam pesan pengguna ke "video".
{"type": "video","video": [
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/xzsgiz/football1.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/tdescd/football2.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/zefdja/football3.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/aedbqh/football4.jpg"],
"fps":2},
{"type": "text","text": "Jelaskan proses yang ditunjukkan dalam video ini"},
]}]
)
print(completion.choices[0].message.content)Node.js
// Pastikan bahwa Anda telah menentukan "type": "module" di file package.json.
import OpenAI from "openai";
const openai = new OpenAI({
// Kunci API berbeda untuk setiap wilayah. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Studio Model Anda: apiKey: "sk-xxx"
apiKey: process.env.DASHSCOPE_API_KEY,
// Berikut adalah baseURL untuk wilayah Singapura. Jika Anda menggunakan model di wilayah AS (Virginia), ganti baseURL dengan https://dashscope-us.aliyuncs.com/compatible-mode/v1.
// Jika Anda menggunakan model di wilayah China (Beijing), ganti baseURL dengan https://dashscope.aliyuncs.com/compatible-mode/v1.
baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
});
async function main() {
const response = await openai.chat.completions.create({
model: "qwen3-vl-plus", // Contoh ini menggunakan qwen3-vl-plus. Ganti nama model sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/en/model-studio/models
messages: [{
role: "user",
content: [
{
// Saat Anda memasukkan daftar gambar, atur parameter "type" dalam pesan pengguna ke "video".
type: "video",
video: [
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/xzsgiz/football1.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/tdescd/football2.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/zefdja/football3.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/aedbqh/football4.jpg"],
"fps": 2
},
{
type: "text",
text: "Jelaskan proses yang ditunjukkan dalam video ini"
}
]
}]
});
console.log(response.choices[0].message.content);
}
main();curl
# ======= Penting =======
# Kunci API berbeda untuk setiap wilayah. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah AS (Virginia), ganti base_url dengan https://dashscope-us.aliyuncs.com/compatible-mode/v1/chat/completions.
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions.
# === Hapus komentar ini sebelum Anda menjalankan perintah ===
curl -X POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen3-vl-plus",
"messages": [{"role": "user","content": [{"type": "video","video": [
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/xzsgiz/football1.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/tdescd/football2.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/zefdja/football3.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/aedbqh/football4.jpg"],
"fps":2},
{"type": "text","text": "Jelaskan proses yang ditunjukkan dalam video ini"}]}]
}'DashScope
Python
import os
import dashscope
# Berikut adalah base_http_api_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah AS (Virginia), ganti URL dengan https://dashscope-us.aliyuncs.com/api/v1.
# Jika Anda menggunakan model di wilayah China (Beijing), ganti URL dengan https://dashscope.aliyuncs.com/api/v1.
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = [{"role": "user",
"content": [
# Saat Anda memasukkan daftar gambar, parameter fps berlaku untuk model seri Qwen2.5-VL dan Qwen3-VL.
{"video":["https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/xzsgiz/football1.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/tdescd/football2.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/zefdja/football3.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/aedbqh/football4.jpg"],
"fps":2},
{"text": "Jelaskan proses yang ditunjukkan dalam video ini"}]}]
response = dashscope.MultiModalConversation.call(
# Kunci API berbeda untuk setiap wilayah. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Studio Model Anda: api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
model='qwen3-vl-plus', # Contoh ini menggunakan qwen3-vl-plus. Ganti nama model sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/en/model-studio/getting-started/models
messages=messages
)
print(response.output.choices[0].message.content[0]["text"])Java
// Versi SDK DashScope harus 2.21.10 atau lebih baru.
import java.util.Arrays;
import java.util.Collections;
import java.util.Map;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
// Berikut adalah baseHttpApiUrl untuk wilayah Singapura. Jika Anda menggunakan model di wilayah AS (Virginia), ganti URL dengan https://dashscope-us.aliyuncs.com/api/v1.
// Jika Anda menggunakan model di wilayah China (Beijing), ganti URL dengan https://dashscope.aliyuncs.com/api/v1.
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
private static final String MODEL_NAME = "qwen3-vl-plus"; // Contoh ini menggunakan qwen3-vl-plus. Ganti nama model sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/en/model-studio/getting-started/models
public static void videoImageListSample() throws ApiException, NoApiKeyException, UploadFileException {
MultiModalConversation conv = new MultiModalConversation();
// Saat Anda memasukkan daftar gambar, parameter fps berlaku untuk model seri Qwen2.5-VL dan Qwen3-VL.
Map<String, Object> params = new HashMap<>();
params.put("video", Arrays.asList("https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/xzsgiz/football1.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/tdescd/football2.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/zefdja/football3.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/aedbqh/football4.jpg"));
params.put("fps", 2);
MultiModalMessage userMessage = MultiModalMessage.builder()
.role(Role.USER.getValue())
.content(Arrays.asList(
params,
Collections.singletonMap("text", "Jelaskan proses yang ditunjukkan dalam video ini")))
.build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// Kunci API berbeda untuk setiap wilayah. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Studio Model Anda: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model(MODEL_NAME)
.messages(Arrays.asList(userMessage)).build();
MultiModalConversationResult result = conv.call(param);
System.out.print(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));
}
public static void main(String[] args) {
try {
videoImageListSample();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}curl
# ======= Penting =======
# Berikut adalah URL untuk wilayah Singapura. Jika Anda menggunakan model di wilayah AS (Virginia), ganti URL dengan https://dashscope-us.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation.
# Jika Anda menggunakan model di wilayah China (Beijing), ganti URL dengan https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation.
# Kunci API berbeda untuk setiap wilayah. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# === Hapus komentar ini sebelum Anda menjalankan perintah ===
curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen3-vl-plus",
"input": {
"messages": [
{
"role": "user",
"content": [
{
"video": [
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/xzsgiz/football1.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/tdescd/football2.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/zefdja/football3.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/aedbqh/football4.jpg"
],
"fps":2
},
{
"text": "Jelaskan proses yang ditunjukkan dalam video ini"
}
]
}
]
}
}'Kirim file lokal (encoding Base64 atau jalur file)
Qwen-VL menyediakan dua cara untuk mengunggah file lokal: encoding Base64 dan pengunggahan langsung melalui jalur file. Pilih metode unggah berdasarkan ukuran file dan jenis SDK. Untuk rekomendasi spesifik, lihat Cara memilih metode unggah file. Kedua metode harus memenuhi persyaratan file yang dijelaskan dalam Batasan gambar.
Unggah dengan encoding Base64
Ubah file menjadi string terenkripsi Base64, lalu kirimkan ke model. Metode ini didukung oleh SDK OpenAI dan DashScope, serta permintaan HTTP.
Unggah melalui jalur file
Kirimkan jalur file lokal langsung ke model. Metode ini hanya didukung oleh SDK Python dan Java DashScope, tidak didukung oleh metode HTTP DashScope maupun metode kompatibel OpenAI.
Lihat tabel berikut untuk menentukan jalur file berdasarkan bahasa pemrograman dan sistem operasi Anda.
Gambar
Teruskan melalui jalur file
Python
import os
import dashscope
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/api/v1
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# Ganti xxx/eagle.png dengan jalur mutlak gambar lokal Anda.
local_path = "xxx/eagle.png"
image_path = f"file://{local_path}"
messages = [
{'role':'user',
'content': [{'image': image_path},
{'text': 'Apa yang digambarkan dalam gambar ini?'}]}]
response = dashscope.MultiModalConversation.call(
# Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key="sk-xxx"
api_key=os.getenv('DASHSCOPE_API_KEY'),
model='qwen3-vl-plus', # Contoh ini menggunakan qwen3-vl-plus. Anda dapat mengganti nama model sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/en/model-studio/getting-started/models
messages=messages)
print(response.output.choices[0].message.content[0]["text"])Java
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
// Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/api/v1
// Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void callWithLocalFile(String localPath)
throws ApiException, NoApiKeyException, UploadFileException {
String filePath = "file://"+localPath;
MultiModalConversation conv = new MultiModalConversation();
MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
.content(Arrays.asList(new HashMap<String, Object>(){{put("image", filePath);}},
new HashMap<String, Object>(){{put("text", "Apa yang digambarkan dalam gambar ini?");}})).build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3-vl-plus") // Contoh ini menggunakan qwen3-vl-plus. Anda dapat mengganti nama model sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/en/model-studio/getting-started/models
.messages(Arrays.asList(userMessage))
.build();
MultiModalConversationResult result = conv.call(param);
System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));}
public static void main(String[] args) {
try {
// Ganti xxx/eagle.png dengan jalur mutlak gambar lokal Anda
callWithLocalFile("xxx/eagle.png");
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}Kirim dalam encoding Base64
Kompatibel OpenAI
Python
from openai import OpenAI
import os
import base64
# Fungsi enkripsi: Mengonversi file lokal menjadi string terenkripsi Base64
def encode_image(image_path):
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode("utf-8")
# Ganti xxxx/eagle.png dengan jalur mutlak gambar lokal Anda
base64_image = encode_image("xxx/eagle.png")
client = OpenAI(
# Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key="sk-xxx"
api_key=os.getenv('DASHSCOPE_API_KEY'),
# Base_url berikut untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/compatible-mode/v1
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan https://dashscope.aliyuncs.com/compatible-mode/v1
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen3-vl-plus", # Contoh ini menggunakan qwen3-vl-plus. Anda dapat mengganti nama model sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/en/model-studio/getting-started/models
messages=[
{
"role": "user",
"content": [
{
"type": "image_url",
# Kirim data gambar Base64. Perhatikan bahwa format gambar (yaitu image/{format}) harus sesuai dengan Content Type dalam daftar gambar yang didukung. "f" adalah metode pemformatan string.
# Gambar PNG: f"data:image/png;base64,{base64_image}"
# Gambar JPEG: f"data:image/jpeg;base64,{base64_image}"
# Gambar WEBP: f"data:image/webp;base64,{base64_image}"
"image_url": {"url": f"data:image/png;base64,{base64_image}"},
},
{"type": "text", "text": "Apa yang digambarkan dalam gambar ini?"},
],
}
],
)
print(completion.choices[0].message.content)Node.js
import OpenAI from "openai";
import { readFileSync } from 'fs';
const openai = new OpenAI(
{
// Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: apiKey: "sk-xxx"
apiKey: process.env.DASHSCOPE_API_KEY,
// Base_url berikut untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/compatible-mode/v1
// Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan https://dashscope.aliyuncs.com/compatible-mode/v1
baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
}
);
const encodeImage = (imagePath) => {
const imageFile = readFileSync(imagePath);
return imageFile.toString('base64');
};
// Ganti xxx/eagle.png dengan jalur mutlak gambar lokal Anda
const base64Image = encodeImage("xxx/eagle.png")
async function main() {
const completion = await openai.chat.completions.create({
model: "qwen3-vl-plus", // Contoh ini menggunakan qwen3-vl-plus. Anda dapat mengganti nama model sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/en/model-studio/getting-started/models
messages: [
{"role": "user",
"content": [{"type": "image_url",
// Perhatikan bahwa saat mengirim Base64, format gambar (yaitu image/{format}) harus sesuai dengan Content Type dalam daftar gambar yang didukung.
// Gambar PNG: data:image/png;base64,${base64Image}
// Gambar JPEG: data:image/jpeg;base64,${base64Image}
// Gambar WEBP: data:image/webp;base64,${base64Image}
"image_url": {"url": `data:image/png;base64,${base64Image}`},},
{"type": "text", "text": "Apa yang digambarkan dalam gambar ini?"}]}]
});
console.log(completion.choices[0].message.content);
}
main();curl
Untuk informasi lebih lanjut tentang metode mengonversi file menjadi string terenkripsi Base64, lihat Kode contoh.
Untuk keperluan tampilan, string terenkripsi Base64
"data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."dalam kode dipotong. Anda harus mengirimkan string terenkripsi lengkap.
# ======= Penting =======
# Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/compatible-mode/v1/chat/completions
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
# === Hapus komentar ini sebelum eksekusi ===
curl --location 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "qwen3-vl-plus",
"messages": [
{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": "data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA"}},
{"type": "text", "text": "Apa yang digambarkan dalam gambar ini?"}
]
}]
}'DashScope
Python
import base64
import os
import dashscope
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/api/v1
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# Fungsi enkripsi: Mengonversi file lokal menjadi string terenkripsi Base64
def encode_image(image_path):
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode("utf-8")
# Ganti xxxx/eagle.png dengan jalur mutlak gambar lokal Anda
base64_image = encode_image("xxxx/eagle.png")
messages = [
{
"role": "user",
"content": [
# Perhatikan bahwa saat mengirim Base64, format gambar (yaitu image/{format}) harus sesuai dengan Content Type dalam daftar gambar yang didukung. "f" adalah metode pemformatan string.
# Gambar PNG: f"data:image/png;base64,{base64_image}"
# Gambar JPEG: f"data:image/jpeg;base64,{base64_image}"
# Gambar WEBP: f"data:image/webp;base64,{base64_image}"
{"image": f"data:image/png;base64,{base64_image}"},
{"text": "Apa yang digambarkan dalam gambar ini?"},
],
},
]
response = dashscope.MultiModalConversation.call(
# Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key="sk-xxx"
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="qwen3-vl-plus", # Contoh ini menggunakan qwen3-vl-plus. Anda dapat mengganti nama model sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/en/model-studio/getting-started/models
messages=messages,
)
print(response.output.choices[0].message.content[0]["text"])Java
import java.io.IOException;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Base64;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import com.alibaba.dashscope.aigc.multimodalconversation.*;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
// Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/api/v1
// Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
private static String encodeImageToBase64(String imagePath) throws IOException {
Path path = Paths.get(imagePath);
byte[] imageBytes = Files.readAllBytes(path);
return Base64.getEncoder().encodeToString(imageBytes);
}
public static void callWithLocalFile(String localPath) throws ApiException, NoApiKeyException, UploadFileException, IOException {
String base64Image = encodeImageToBase64(localPath); // encoding Base64
MultiModalConversation conv = new MultiModalConversation();
MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
.content(Arrays.asList(
new HashMap<String, Object>() {{ put("image", "data:image/png;base64," + base64Image); }},
new HashMap<String, Object>() {{ put("text", "Apa yang digambarkan dalam gambar ini?"); }}
)).build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3-vl-plus")
.messages(Arrays.asList(userMessage))
.build();
MultiModalConversationResult result = conv.call(param);
System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));
}
public static void main(String[] args) {
try {
// Ganti xxx/eagle.png dengan jalur mutlak gambar lokal Anda
callWithLocalFile("xxx/eagle.png");
} catch (ApiException | NoApiKeyException | UploadFileException | IOException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}curl
Untuk contoh cara mengonversi file menjadi string terenkripsi Base64, lihat Kode contoh.
Untuk keperluan tampilan, string terenkripsi Base64
"data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."dalam kode dipotong. Anda harus mengirimkan string terenkripsi lengkap.
# ======= Catatan Penting =======
# Base_url berikut untuk wilayah Singapura. Untuk menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
# Untuk menggunakan model di wilayah Beijing, ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
# Kunci API bersifat spesifik per wilayah. Untuk mendapatkan kunci API, kunjungi: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# === Hapus komentar ini sebelum eksekusi ===
curl -X POST https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen3-vl-plus",
"input":{
"messages":[
{
"role": "user",
"content": [
{"image": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."},
{"text": "Apa yang digambarkan dalam gambar ini?"}
]
}
]
}
}'File video
Contoh ini menggunakan file test.mp4 yang disimpan secara lokal.
Menggunakan jalur file
Python
import os
import dashscope
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/api/v1
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# Ganti xxxx/test.mp4 dengan jalur mutlak video lokal Anda
local_path = "xxx/test.mp4"
video_path = f"file://{local_path}"
messages = [
{'role':'user',
# Parameter fps mengontrol jumlah frame yang diekstraksi dari video, artinya satu frame diekstraksi setiap 1/fps detik.
'content': [{'video': video_path,"fps":2},
{'text': 'Adegan apa yang digambarkan dalam video ini?'}]}]
response = MultiModalConversation.call(
# Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key="sk-xxx"
api_key=os.getenv('DASHSCOPE_API_KEY'),
model='qwen3-vl-plus',
messages=messages)
print(response.output.choices[0].message.content[0]["text"])Java
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
// Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/api/v1
// Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void callWithLocalFile(String localPath)
throws ApiException, NoApiKeyException, UploadFileException {
String filePath = "file://"+localPath;
MultiModalConversation conv = new MultiModalConversation();
MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
.content(Arrays.asList(new HashMap<String, Object>()
{{
put("video", filePath);// Parameter fps mengontrol jumlah frame yang diekstraksi dari video, artinya satu frame diekstraksi setiap 1/fps detik.
put("fps", 2);
}},
new HashMap<String, Object>(){{put("text", "Adegan apa yang digambarkan dalam video ini?");}})).build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3-vl-plus")
.messages(Arrays.asList(userMessage))
.build();
MultiModalConversationResult result = conv.call(param);
System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));}
public static void main(String[] args) {
try {
// Ganti xxxx/test.mp4 dengan jalur mutlak video lokal Anda
callWithLocalFile("xxx/test.mp4");
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}Kirim dengan encoding Base64
Kompatibel OpenAI
Python
from openai import OpenAI
import os
import base64
# Fungsi enkripsi: Mengonversi file lokal menjadi string terenkripsi Base64
def encode_video(video_path):
with open(video_path, "rb") as video_file:
return base64.b64encode(video_file.read()).decode("utf-8")
# Ganti xxxx/test.mp4 dengan jalur mutlak video lokal Anda
base64_video = encode_video("xxx/test.mp4")
client = OpenAI(
# Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key="sk-xxx"
api_key=os.getenv('DASHSCOPE_API_KEY'),
# Base_url berikut untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/compatible-mode/v1
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan https://dashscope.aliyuncs.com/compatible-mode/v1
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen3-vl-plus",
messages=[
{
"role": "user",
"content": [
{
# Saat mengirim file video langsung, atur nilai type menjadi video_url
"type": "video_url",
"video_url": {"url": f"data:video/mp4;base64,{base64_video}"},
"fps":2
},
{"type": "text", "text": "Adegan apa yang digambarkan dalam video ini?"},
],
}
],
)
print(completion.choices[0].message.content)Node.js
import OpenAI from "openai";
import { readFileSync } from 'fs';
const openai = new OpenAI(
{
// Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: apiKey: "sk-xxx"
apiKey: process.env.DASHSCOPE_API_KEY,
// Base_url berikut untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/compatible-mode/v1
// Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan https://dashscope.aliyuncs.com/compatible-mode/v1
baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
}
);
const encodeVideo = (videoPath) => {
const videoFile = readFileSync(videoPath);
return videoFile.toString('base64');
};
// Ganti xxxx/test.mp4 dengan jalur mutlak video lokal Anda
const base64Video = encodeVideo("xxx/test.mp4")
async function main() {
const completion = await openai.chat.completions.create({
model: "qwen3-vl-plus",
messages: [
{"role": "user",
"content": [{
// Saat mengirim file video langsung, atur nilai type menjadi video_url
"type": "video_url",
"video_url": {"url": `data:video/mp4;base64,${base64Video}`},
"fps":2},
{"type": "text", "text": "Adegan apa yang digambarkan dalam video ini?"}]}]
});
console.log(completion.choices[0].message.content);
}
main();
curl
Untuk informasi lebih lanjut tentang metode mengonversi file menjadi string terenkripsi Base64, lihat Kode contoh.
Untuk keperluan tampilan, string terenkripsi Base64
"data:video/mp4;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."dalam kode dipotong. Dalam penggunaan aktual, Anda harus mengirimkan string terenkripsi lengkap.
# ======= Penting =======
# Kunci API bersifat spesifik per wilayah. Untuk mendapatkan kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Base_url berikut untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/compatible-mode/v1/chat/completions
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
# === Hapus komentar ini sebelum eksekusi ===
curl --location 'https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "qwen3-vl-plus",
"messages": [
{
"role": "user",
"content": [
{"type": "video_url", "video_url": {"url": "data:video/mp4;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."},"fps":2},
{"type": "text", "text": "Apa yang digambarkan dalam video ini?"}
]
}]
}'DashScope
Python
import base64
import os
import dashscope
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/api/v1
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# Fungsi enkripsi: Mengonversi file lokal menjadi string terenkripsi Base64
def encode_video(video_path):
with open(video_path, "rb") as video_file:
return base64.b64encode(video_file.read()).decode("utf-8")
# Ganti xxxx/test.mp4 dengan jalur mutlak video lokal Anda
base64_video = encode_video("xxxx/test.mp4")
messages = [{'role':'user',
# Parameter fps mengontrol jumlah frame yang diekstraksi dari video, artinya satu frame diekstraksi setiap 1/fps detik.
'content': [{'video': f"data:video/mp4;base64,{base64_video}","fps":2},
{'text': 'Adegan apa yang digambarkan dalam video ini?'}]}]
response = MultiModalConversation.call(
# Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key="sk-xxx"
api_key=os.getenv('DASHSCOPE_API_KEY'),
model='qwen3-vl-plus',
messages=messages)
print(response.output.choices[0].message.content[0]["text"])Java
import java.io.IOException;
import java.util.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import com.alibaba.dashscope.aigc.multimodalconversation.*;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
// Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah AS (Virginia), ubah base_url menjadi https://dashscope-us.aliyuncs.com/api/v1
// Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
private static String encodeVideoToBase64(String videoPath) throws IOException {
Path path = Paths.get(videoPath);
byte[] videoBytes = Files.readAllBytes(path);
return Base64.getEncoder().encodeToString(videoBytes);
}
public static void callWithLocalFile(String localPath)
throws ApiException, NoApiKeyException, UploadFileException, IOException {
String base64Video = encodeVideoToBase64(localPath); // encoding Base64
MultiModalConversation conv = new MultiModalConversation();
MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
.content(Arrays.asList(new HashMap<String, Object>()
{{
put("video", "data:video/mp4;base64," + base64Video);// Parameter fps mengontrol jumlah frame yang diekstraksi dari video, artinya satu frame diekstraksi setiap 1/fps detik.
put("fps", 2);
}},
new HashMap<String, Object>(){{put("text", "Adegan apa yang digambarkan dalam video ini?");}})).build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3-vl-plus")
.messages(Arrays.asList(userMessage))
.build();
MultiModalConversationResult result = conv.call(param);
System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));
}
public static void main(String[] args) {
try {
// Ganti xxx/test.mp4 dengan jalur mutlak video lokal Anda
callWithLocalFile("xxx/test.mp4");
} catch (ApiException | NoApiKeyException | UploadFileException | IOException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}curl
Untuk informasi lebih lanjut tentang metode mengonversi file menjadi string terenkripsi Base64, lihat Kode contoh.
Untuk keperluan tampilan, string terenkripsi Base64
"data:video/mp4;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."dalam kode dipotong. Anda harus mengirimkan string terenkripsi lengkap.
# ======= Penting =======
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
# Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# === Hapus komentar ini sebelum eksekusi ===
curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen3-vl-plus",
"input":{
"messages":[
{
"role": "user",
"content": [
{"video": "data:video/mp4;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."},
{"text": "Adegan apa yang digambarkan dalam video ini? "}
]
}
]
}
}'Daftar gambar
Contoh ini menggunakan file yang disimpan secara lokal: football1.jpg, football2.jpg, football3.jpg, dan football4.jpg.
Mengirim jalur file
Python
import os
import dashscope
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/api/v1
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
local_path1 = "football1.jpg"
local_path2 = "football2.jpg"
local_path3 = "football3.jpg"
local_path4 = "football4.jpg"
image_path1 = f"file://{local_path1}"
image_path2 = f"file://{local_path2}"
image_path3 = f"file://{local_path3}"
image_path4 = f"file://{local_path4}"
messages = [{'role':'user',
# Saat mengirim daftar gambar, parameter fps berlaku untuk model seri Qwen2.5-VL dan Qwen3-VL.
'content': [{'video': [image_path1,image_path2,image_path3,image_path4],"fps":2},
{'text': 'Adegan apa yang digambarkan dalam video ini?'}]}]
response = MultiModalConversation.call(
# Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key="sk-xxx"
api_key=os.getenv('DASHSCOPE_API_KEY'),
model='qwen3-vl-plus', # Contoh ini menggunakan qwen3-vl-plus. Anda dapat mengganti nama model sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/en/model-studio/getting-started/models
messages=messages)
print(response.output.choices[0].message.content[0]["text"])Java
// Versi SDK DashScope harus 2.21.10 atau lebih baru.
import java.util.Arrays;
import java.util.Map;
import java.util.Collections;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
// Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah AS (Virginia), ubah base_url menjadi https://dashscope-us.aliyuncs.com/api/v1
// Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
private static final String MODEL_NAME = "qwen3-vl-plus"; // Contoh ini menggunakan qwen3-vl-plus. Anda dapat mengganti nama model sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/en/model-studio/getting-started/models
public static void videoImageListSample(String localPath1, String localPath2, String localPath3, String localPath4)
throws ApiException, NoApiKeyException, UploadFileException {
MultiModalConversation conv = new MultiModalConversation();
String filePath1 = "file://" + localPath1;
String filePath2 = "file://" + localPath2;
String filePath3 = "file://" + localPath3;
String filePath4 = "file://" + localPath4;
Map<String, Object> params = new HashMap<>();
params.put("video", Arrays.asList(filePath1,filePath2,filePath3,filePath4));
// Saat mengirim daftar gambar, parameter fps berlaku untuk model seri Qwen2.5-VL dan Qwen3-VL.
params.put("fps", 2);
MultiModalMessage userMessage = MultiModalMessage.builder()
.role(Role.USER.getValue())
.content(Arrays.asList(params,
Collections.singletonMap("text", "Jelaskan proses spesifik dari video ini")))
.build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model(MODEL_NAME)
.messages(Arrays.asList(userMessage)).build();
MultiModalConversationResult result = conv.call(param);
System.out.print(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));
}
public static void main(String[] args) {
try {
videoImageListSample(
"xxx/football1.jpg",
"xxx/football2.jpg",
"xxx/football3.jpg",
"xxx/football4.jpg");
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}Input terenkripsi Base64
Kompatibel OpenAI
Python
import os
from openai import OpenAI
import base64
# Fungsi enkripsi: Mengonversi file lokal menjadi string terenkripsi Base64
def encode_image(image_path):
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode("utf-8")
base64_image1 = encode_image("football1.jpg")
base64_image2 = encode_image("football2.jpg")
base64_image3 = encode_image("football3.jpg")
base64_image4 = encode_image("football4.jpg")
client = OpenAI(
# Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/compatible-mode/v1
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/compatible-mode/v1
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen3-vl-plus", # Contoh ini menggunakan qwen3-vl-plus. Anda dapat mengganti nama model sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/en/model-studio/getting-started/models
messages=[
{"role": "user","content": [
{"type": "video","video": [
f"data:image/jpeg;base64,{base64_image1}",
f"data:image/jpeg;base64,{base64_image2}",
f"data:image/jpeg;base64,{base64_image3}",
f"data:image/jpeg;base64,{base64_image4}",]},
{"type": "text","text": "Jelaskan proses spesifik dari video ini"},
]}]
)
print(completion.choices[0].message.content)Node.js
import OpenAI from "openai";
import { readFileSync } from 'fs';
const openai = new OpenAI(
{
// Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: apiKey: "sk-xxx"
apiKey: process.env.DASHSCOPE_API_KEY,
// Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/compatible-mode/v1
// Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/compatible-mode/v1
baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
}
);
const encodeImage = (imagePath) => {
const imageFile = readFileSync(imagePath);
return imageFile.toString('base64');
};
const base64Image1 = encodeImage("football1.jpg")
const base64Image2 = encodeImage("football2.jpg")
const base64Image3 = encodeImage("football3.jpg")
const base64Image4 = encodeImage("football4.jpg")
async function main() {
const completion = await openai.chat.completions.create({
model: "qwen3-vl-plus", // Contoh ini menggunakan qwen3-vl-plus. Anda dapat mengganti nama model sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/en/model-studio/getting-started/models
messages: [
{"role": "user",
"content": [{"type": "video",
"video": [
`data:image/jpeg;base64,${base64Image1}`,
`data:image/jpeg;base64,${base64Image2}`,
`data:image/jpeg;base64,${base64Image3}`,
`data:image/jpeg;base64,${base64Image4}`]},
{"type": "text", "text": "Adegan apa yang digambarkan dalam video ini?"}]}]
});
console.log(completion.choices[0].message.content);
}
main();curl
Untuk informasi lebih lanjut tentang metode mengonversi file menjadi string terenkripsi Base64, lihat Kode contoh.
Untuk keperluan tampilan, string terenkripsi Base64
"data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."dalam kode dipotong. Anda harus mengirimkan string terenkripsi lengkap.
# ======= Penting =======
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/compatible-mode/v1/chat/completions
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
# Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# === Hapus komentar ini sebelum eksekusi ===
curl -X POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen3-vl-plus",
"messages": [{"role": "user",
"content": [{"type": "video",
"video": [
"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA...",
"data:image/jpeg;base64,nEpp6jpnP57MoWSyOWwrkXMJhHRCWYeFYb...",
"data:image/jpeg;base64,JHWQnJPc40GwQ7zERAtRMK6iIhnWw4080s...",
"data:image/jpeg;base64,adB6QOU5HP7dAYBBOg/Fb7KIptlbyEOu58..."
]},
{"type": "text",
"text": "Jelaskan proses spesifik dari video ini"}]}]
}'DashScope
Python
import base64
import os
import dashscope
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah AS (Virginia), ubah base_url menjadi https://dashscope-us.aliyuncs.com/api/v1
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# Fungsi enkripsi: Mengonversi file lokal menjadi string terenkripsi Base64
def encode_image(image_path):
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode("utf-8")
base64_image1 = encode_image("football1.jpg")
base64_image2 = encode_image("football2.jpg")
base64_image3 = encode_image("football3.jpg")
base64_image4 = encode_image("football4.jpg")
messages = [{'role':'user',
'content': [
{'video':
[f"data:image/jpeg;base64,{base64_image1}",
f"data:image/jpeg;base64,{base64_image2}",
f"data:image/jpeg;base64,{base64_image3}",
f"data:image/jpeg;base64,{base64_image4}"
]
},
{'text': 'Tolong jelaskan proses spesifik dari video ini?'}]}]
response = MultiModalConversation.call(
# Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key=os.getenv("DASHSCOPE_API_KEY"),
model='qwen3-vl-plus', # Contoh ini menggunakan qwen3-vl-plus. Anda dapat mengganti nama model sesuai kebutuhan. Untuk daftar model, lihat https://www.alibabacloud.com/help/en/model-studio/getting-started/models
messages=messages)
print(response.output.choices[0].message.content[0]["text"])Java
import java.io.IOException;
import java.util.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import com.alibaba.dashscope.aigc.multimodalconversation.*;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
// Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/api/v1
// Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
private static String encodeImageToBase64(String imagePath) throws IOException {
Path path = Paths.get(imagePath);
byte[] imageBytes = Files.readAllBytes(path);
return Base64.getEncoder().encodeToString(imageBytes);
}
public static void videoImageListSample(String localPath1,String localPath2,String localPath3,String localPath4)
throws ApiException, NoApiKeyException, UploadFileException, IOException {
String base64Image1 = encodeImageToBase64(localPath1); // encoding Base64
String base64Image2 = encodeImageToBase64(localPath2);
String base64Image3 = encodeImageToBase64(localPath3);
String base64Image4 = encodeImageToBase64(localPath4);
MultiModalConversation conv = new MultiModalConversation();
Map<String, Object> params = new HashMap<>();
params.put("video", Arrays.asList(
"data:image/jpeg;base64," + base64Image1,
"data:image/jpeg;base64," + base64Image2,
"data:image/jpeg;base64," + base64Image3,
"data:image/jpeg;base64," + base64Image4));
// Saat mengirim daftar gambar, parameter fps berlaku untuk model seri Qwen2.5-VL dan Qwen3-VL.
params.put("fps", 2);
MultiModalMessage userMessage = MultiModalMessage.builder()
.role(Role.USER.getValue())
.content(Arrays.asList(params,
Collections.singletonMap("text", "Jelaskan proses spesifik dari video ini")))
.build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3-vl-plus")
.messages(Arrays.asList(userMessage))
.build();
MultiModalConversationResult result = conv.call(param);
System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));
}
public static void main(String[] args) {
try {
// Ganti xxx/football1.png dan lainnya dengan jalur mutlak gambar lokal Anda
videoImageListSample(
"xxx/football1.jpg",
"xxx/football2.jpg",
"xxx/football3.jpg",
"xxx/football4.jpg"
);
} catch (ApiException | NoApiKeyException | UploadFileException | IOException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}curl
Untuk metode mengonversi file menjadi string terenkripsi Base64, lihat Kode contoh.
Untuk keperluan tampilan, string terenkripsi Base64
"data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."dalam kode dipotong. Anda harus mengirimkan string terenkripsi lengkap.
# ======= Penting =======
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
# Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# === Hapus komentar ini sebelum eksekusi ===
curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen3-vl-plus",
"input": {
"messages": [
{
"role": "user",
"content": [
{
"video": [
"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA...",
"data:image/jpeg;base64,nEpp6jpnP57MoWSyOWwrkXMJhHRCWYeFYb...",
"data:image/jpeg;base64,JHWQnJPc40GwQ7zERAtRMK6iIhnWw4080s...",
"data:image/jpeg;base64,adB6QOU5HP7dAYBBOg/Fb7KIptlbyEOu58..."
],
"fps":2
},
{
"text": "Jelaskan proses spesifik dari video ini"
}
]
}
]
}
}'Proses gambar resolusi tinggi
API Qwen-VL memiliki batasan jumlah token visual untuk satu gambar setelah encoding. Dengan konfigurasi default, gambar resolusi tinggi dikompresi, yang dapat menyebabkan hilangnya detail dan memengaruhi akurasi pemahaman. Aktifkan vl_high_resolution_images atau sesuaikan max_pixels untuk meningkatkan jumlah token visual, sehingga mempertahankan lebih banyak detail gambar dan meningkatkan pemahaman.
Saat
vl_high_resolution_images=true, API menggunakan kebijakan resolusi tetap dan mengabaikan pengaturanmax_pixels. Ini berguna untuk mengenali teks halus, objek kecil, atau detail kaya dalam gambar.Saat
vl_high_resolution_images=false, batas piksel akhir ditentukan oleh nilai parametermax_pixels.Untuk kecepatan pemrosesan tinggi atau skenario sensitif biaya, Anda dapat menggunakan nilai default
max_pixelsatau mengaturnya ke nilai yang lebih kecil.Untuk fokus pada detail ketika kecepatan pemrosesan yang lebih rendah dapat diterima: Tingkatkan nilai
max_pixelssecara moderat.
Kompatibel OpenAI
vl_high_resolution_images bukan parameter standar OpenAI. Metode pengirimannya bervariasi antar SDK untuk bahasa berbeda:
Python SDK: Kirimkan parameter dalam kamus
extra_body.Node.js SDK: Kirimkan parameter langsung sebagai parameter tingkat atas.
Python
import os
import time
from openai import OpenAI
client = OpenAI(
# Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key=os.getenv("DASHSCOPE_API_KEY"),
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/compatible-mode/v1
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/compatible-mode/v1
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen3-vl-plus",
messages=[
{"role": "user","content": [
{"type": "image_url","image_url": {"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250212/earbrt/vcg_VCG211286867973_RF.jpg"},
# max_pixels merepresentasikan ambang batas piksel maksimum untuk gambar input. Tidak valid saat vl_high_resolution_images=True, tetapi dapat dikustomisasi saat vl_high_resolution_images=False. Nilai maksimum bervariasi tergantung model.
# "max_pixels": 16384 * 32 * 32
},
{"type": "text", "text": "Suasana festival apa yang ditunjukkan gambar ini?"},
],
}
],
extra_body={"vl_high_resolution_images":True}
)
print(f"Output model: {completion.choices[0].message.content}")
print(f"Total token input: {completion.usage.prompt_tokens}")Node.js
import OpenAI from "openai";
const openai = new OpenAI(
{
// Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: apiKey: "sk-xxx"
apiKey: process.env.DASHSCOPE_API_KEY,
// Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/compatible-mode/v1
// Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/compatible-mode/v1
baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
}
);
const response = await openai.chat.completions.create({
model: "qwen3-vl-plus",
messages: [
{role: "user",content: [
{type: "image_url",
image_url: {"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250212/earbrt/vcg_VCG211286867973_RF.jpg"},
// max_pixels merepresentasikan ambang batas piksel maksimum untuk gambar input. Tidak efektif saat vl_high_resolution_images=True, tetapi dapat dikustomisasi saat vl_high_resolution_images=False. Nilai maksimum bervariasi tergantung model.
// "max_pixels": 2560 * 32 * 32
},
{type: "text", text: "Suasana festival apa yang ditunjukkan gambar ini?" },
]}],
vl_high_resolution_images:true
})
console.log("Output model:",response.choices[0].message.content);
console.log("Total token input",response.usage.prompt_tokens);
curl
# ======= Catatan Penting =======
# Kunci API bersifat spesifik per wilayah. Untuk mendapatkan kunci API: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Base_url berikut untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/compatible-mode/v1/chat/completions
# Jika Anda menggunakan model di wilayah Beijing, ganti base_url dengan: https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
# === Hapus komentar ini sebelum eksekusi ===
curl -X POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen3-vl-plus",
"messages": [
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250212/earbrt/vcg_VCG211286867973_RF.jpg"
}
},
{
"type": "text",
"text": "Suasana liburan apa yang digambarkan gambar ini?"
}
]
}
],
"vl_high_resolution_images":true
}'DashScope
Python
import os
import time
import dashscope
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/api/v1
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = [
{
"role": "user",
"content": [
{"image": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250212/earbrt/vcg_VCG211286867973_RF.jpg",
# max_pixels merepresentasikan ambang batas piksel maksimum untuk gambar input. Tidak valid saat vl_high_resolution_images=True, tetapi dapat dikustomisasi saat vl_high_resolution_images=False. Nilai maksimum bervariasi tergantung model.
# "max_pixels": 16384 * 32 * 32
},
{"text": "Suasana festival apa yang ditunjukkan gambar ini?"}
]
}
]
response = dashscope.MultiModalConversation.call(
# Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key="sk-xxx"
# Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key=os.getenv('DASHSCOPE_API_KEY'),
model='qwen3-vl-plus',
messages=messages,
vl_high_resolution_images=True
)
print("Output model",response.output.choices[0].message.content[0]["text"])
print("Total token input:",response.usage.input_tokens)Java
import java.util.Arrays;
import java.util.Collections;
import java.util.Map;
import java.util.HashMap;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversation;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationParam;
import com.alibaba.dashscope.aigc.multimodalconversation.MultiModalConversationResult;
import com.alibaba.dashscope.common.MultiModalMessage;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.UploadFileException;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
// Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah AS (Virginia), ubah base_url menjadi https://dashscope-us.aliyuncs.com/api/v1
// Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void simpleMultiModalConversationCall()
throws ApiException, NoApiKeyException, UploadFileException {
MultiModalConversation conv = new MultiModalConversation();
Map<String, Object> map = new HashMap<>();
map.put("image", "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250212/earbrt/vcg_VCG211286867973_RF.jpg");
// max_pixels merepresentasikan ambang batas piksel maksimum untuk gambar input. Tidak valid saat vl_high_resolution_images=True, tetapi dapat dikustomisasi saat vl_high_resolution_images=False. Nilai maksimum bervariasi tergantung model.
// map.put("max_pixels", 2621440);
MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
.content(Arrays.asList(
map,
Collections.singletonMap("text", "Suasana festival apa yang ditunjukkan gambar ini?"))).build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3-vl-plus")
.message(userMessage)
.vlHighResolutionImages(true)
.build();
MultiModalConversationResult result = conv.call(param);
System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent().get(0).get("text"));
System.out.println(result.getUsage().getInputTokens());
}
public static void main(String[] args) {
try {
simpleMultiModalConversationCall();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}curl
# ======= Penting =======
# Kunci API untuk wilayah berbeda berbeda. Untuk mendapatkan kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
# Jika Anda menggunakan model di wilayah China (Beijing), ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation
# === Hapus komentar ini sebelum eksekusi ===
curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen3-vl-plus",
"input":{
"messages":[
{
"role": "user",
"content": [
{"image": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250212/earbrt/vcg_VCG211286867973_RF.jpg"},
{"text": "Suasana festival apa yang ditunjukkan gambar ini?"}
]
}
]
},
"parameters": {
"vl_high_resolution_images": true
}
}'Penggunaan lainnya
Batasan
Batasan file input
Batasan gambar
Resolusi gambar:
Ukuran minimum: Lebar dan tinggi gambar harus masing-masing lebih besar dari
10piksel.Rasio aspek: Rasio sisi panjang terhadap sisi pendek gambar tidak boleh melebihi
200:1.Batasan piksel:
Pertahankan resolusi gambar dalam batas
8K (7680x4320). Gambar yang melebihi resolusi ini dapat menyebabkan timeout pada panggilan API karena ukuran file yang besar dan waktu transmisi jaringan yang lama.Scaling otomatis: Model dapat menyesuaikan ukuran gambar menggunakan parameter
max_pixelsdanmin_pixels. Oleh karena itu, menyediakan gambar dengan resolusi sangat tinggi tidak meningkatkan akurasi pengenalan, tetapi justru meningkatkan risiko kegagalan panggilan. Skalakan gambar ke ukuran yang wajar di sisi client terlebih dahulu.
Format gambar yang didukung
Untuk resolusi di bawah 4K
(3840x2160), format gambar yang didukung adalah sebagai berikut:Format gambar
Ekstensi umum
Jenis MIME
BMP
.bmp
image/bmp
JPEG
.jpe, .jpeg, .jpg
image/jpeg
PNG
.png
image/png
TIFF
.tif, .tiff
image/tiff
WEBP
.webp
image/webp
HEIC
.heic
image/heic
Untuk resolusi antara
4K (3840x2160)dan8K (7680x4320), hanya format JPEG, JPG, dan PNG yang didukung.
Ukuran gambar:
Jika dikirimkan sebagai URL publik atau path lokal: Ukuran satu gambar tidak boleh melebihi
10 MB.Jika dikirimkan sebagai string yang di-encode Base64: String yang di-encode tersebut tidak boleh melebihi
10 MB.
Untuk informasi lebih lanjut tentang cara memampatkan ukuran file, lihat Cara memampatkan gambar atau video ke ukuran yang diperlukan.
Jumlah gambar yang didukung: Saat Anda mengirimkan beberapa gambar, jumlah gambar dibatasi oleh input maksimum model. Total jumlah token untuk semua gambar dan teks harus kurang dari input maksimum model.
Sebagai contoh, jika Anda menggunakan model
qwen3-vl-plusdalam mode thinking, input maksimumnya adalah258048token. Jika teks input menghabiskan100token dan setiap gambar menghabiskan2560token (untuk informasi tentang cara menghitung token gambar, lihat Billing dan rate limiting), maka Anda dapat mengirimkan maksimal(258048 - 100) / 2560 ≈ 100gambar.
Batasan video
Saat dikirimkan sebagai daftar gambar, jumlah gambar dalam daftar dibatasi sebagai berikut:
Seri
qwen3-vl-plus, seriqwen3-vl-flash,qwen3-vl-235b-a22b-thinking, danqwen3-vl-235b-a22b-instruct: Minimal 4 gambar dan maksimal 2.000 gambar.Model open source seri
Qwen3-VL,Qwen2.5-VL(termasuk versi komersial dan open source), serta seri modelQVQ: Minimal 4 gambar dan maksimal 512 gambar.Model lainnya: Minimal 4 gambar dan maksimal 80 gambar.
Saat dikirimkan sebagai file video:
Ukuran video:
Jika dikirimkan sebagai URL publik:
Seri
Qwen3-VLdanqwen-vl-max(termasukqwen-vl-max-latest,qwen-vl-max-2025-04-08, dan semua versi selanjutnya): Tidak boleh melebihi 2 GB.Seri
qwen-vl-plus, modelqwen-vl-maxlainnya, seri open sourceQwen2.5-VL, dan seri modelQVQ: Tidak boleh melebihi 1 GB.Model lainnya tidak boleh melebihi 150 MB.
Jika dikirimkan sebagai string yang di-encode Base64: String yang di-encode harus kurang dari 10 MB.
Jika dikirimkan sebagai path file lokal: File video tidak boleh melebihi 100 MB.
Untuk informasi lebih lanjut tentang cara memampatkan ukuran file, lihat Cara memampatkan gambar atau video ke ukuran yang diperlukan.
Durasi video:
Seri
qwen3-vl-plus, seriqwen3-vl-flash,qwen3-vl-235b-a22b-thinking, danqwen3-vl-235b-a22b-instruct: 2 detik hingga 1 jam.Seri open source
Qwen3-VLdanqwen-vl-max(termasukqwen-vl-max-latest,qwen-vl-max-2025-04-08, dan versi pembaruan selanjutnya): 2 detik hingga 20 menit.Seri
qwen-vl-plus, modelqwen-vl-maxlainnya, seri open sourceQwen2.5-VL, dan seri modelQVQ: 2 detik hingga 10 menit.Model lainnya: 2 detik hingga 40 detik.
Format video: MP4, AVI, MKV, MOV, FLV, WMV, dan lainnya.
Dimensi video: Tidak ada batasan khusus. Model dapat secara otomatis menyesuaikan dimensi video menggunakan parameter
max_pixelsdanmin_pixels. File video yang lebih besar tidak menghasilkan pemahaman yang lebih baik.Pemahaman audio: Model tidak mendukung pemahaman audio dari file video.
Metode input file
URL publik: Berikan alamat file yang dapat diakses publik dan mendukung protokol HTTP atau HTTPS. Untuk stabilitas dan performa optimal, unggah file ke Object Storage Service (OSS) guna memperoleh URL publik.
PentingUntuk memastikan model dapat mengunduh file dengan sukses, header permintaan dari URL publik harus mencakup Content-Length (ukuran file) dan Content-Type (jenis media, seperti image/jpeg). Jika salah satu bidang tersebut tidak tersedia atau salah, pengunduhan file akan gagal.
Kirimkan sebagai string yang di-encode Base64: Konversikan file menjadi string yang di-encode Base64, lalu kirimkan.
Kirimkan sebagai path file lokal (hanya untuk DashScope SDK): Kirimkan path file lokal.
Untuk rekomendasi mengenai metode input file, lihat Bagaimana memilih metode unggah file?
Going live
Pra-pemrosesan gambar/video: Qwen-VL memiliki batas ukuran untuk file input. Untuk informasi lebih lanjut tentang cara memampatkan file, lihat Metode kompresi gambar atau video.
Proses file teks: Qwen-VL hanya mendukung pemrosesan file dalam format gambar dan tidak dapat memproses file teks secara langsung. Gunakan alternatif berikut:
Konversikan file teks ke format gambar. Gunakan pustaka pemrosesan gambar, seperti
Python'spdf2image, untuk mengonversi file tersebut per halaman menjadi beberapa gambar berkualitas tinggi. Kemudian kirimkan gambar-gambar tersebut ke model menggunakan metode multiple image input.Qwen-Long mendukung pemrosesan file teks dan dapat mengurai konten file tersebut.
Toleransi kesalahan dan stabilitas
Penanganan timeout: Pada panggilan non-streaming, jika model tidak menyelesaikan output dalam waktu 180 detik, biasanya akan memicu error timeout. Untuk meningkatkan pengalaman pengguna, badan respons akan mengembalikan konten yang telah dihasilkan hingga saat terjadi timeout. Jika header respons berisi
x-dashscope-partialresponse:true, maka respons tersebut dipicu oleh timeout. Gunakan fitur partial mode (didukung oleh beberapa model) untuk menambahkan konten yang telah dihasilkan ke array messages dan kirim ulang permintaan. Hal ini memungkinkan model tingkat tinggi melanjutkan proses pembuatan konten. Untuk informasi lebih lanjut, lihat Lanjutkan penulisan berdasarkan output yang belum lengkap.Mekanisme retry: Rancang logika retry panggilan API yang masuk akal, seperti exponential backoff, untuk menangani fluktuasi jaringan atau ketidaktersediaan layanan sementara.
Penagihan dan Pembatasan laju
Penagihan: Total biaya didasarkan pada jumlah total token input dan output. Untuk harga input dan output, lihat Models.
Komposisi token: Token input terdiri dari token teks dan token yang dikonversi dari gambar atau video. Token output adalah teks yang dihasilkan oleh model. Dalam mode thinking, proses berpikir model juga dihitung sebagai bagian dari token output. Jika proses berpikir tidak ditampilkan sebagai output dalam mode thinking, maka harga untuk mode non-thinking yang berlaku.
Menghitung token gambar dan video: Gunakan kode berikut untuk memperkirakan konsumsi token untuk gambar atau video. Perkiraan ini hanya sebagai referensi. Penggunaan aktual didasarkan pada respons API.
Lihat tagihan: Lihat tagihan atau isi ulang akun Anda di Konsol Biaya dan Pengeluaran.
Pembatasan laju: Lihat Rate limits.
Kuota gratis (hanya Singapura): Qwen-VL menyediakan kuota gratis sebesar 1 juta token, berlaku selama 90 hari sejak Anda mengaktifkan Model Studio atau permintaan model Anda disetujui.
Referensi API
Untuk parameter input dan output Qwen-VL, lihat Qwen.
FAQ
Bagaimana cara memilih metode unggah file?
Bagaimana cara memampatkan gambar atau video agar sesuai dengan ukuran yang ditentukan?
Setelah model menghasilkan output hasil lokalisasi objek, bagaimana cara menggambar kotak pembatas pada gambar asli?
Kode error
Jika pemanggilan gagal, lihat Error messages untuk troubleshooting.












