Model pemahaman visual menjawab pertanyaan mengenai gambar dan video yang Anda berikan. Model ini mendukung input gambar tunggal atau ganda untuk tugas seperti pembuatan keterangan gambar (image captioning), menjawab pertanyaan visual (visual question answering), dan pelokalan objek.
Wilayah yang didukung: Singapura, AS (Virginia), Tiongkok (Beijing), Tiongkok (Hong Kong), dan Jerman (Frankfurt). Gunakan Kunci API dan Titik akhir spesifik untuk setiap wilayah.
Coba secara online: Buka Konsol Alibaba Cloud Model Studio, pilih wilayah di pojok kanan atas, lalu navigasikan ke halaman Vision.
Mulai
Prasyarat
Untuk memanggil model dengan SDK, instal SDK. Gunakan DashScope Python SDK versi 1.24.6 atau lebih baru, atau DashScope Java SDK versi 2.21.10 atau lebih baru.
Contoh berikut menunjukkan cara memanggil model untuk mendeskripsikan konten gambar. Untuk informasi selengkapnya, lihat Cara meneruskan file lokal dan Batasan gambar.
Kompatibel dengan OpenAI
Python
from openai import OpenAI
import os
client = OpenAI(
# Setiap wilayah memerlukan Kunci API unik. Untuk mendapatkan Kunci API, kunjungi: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
api_key=os.getenv("DASHSCOPE_API_KEY"),
# Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
)
completion = client.chat.completions.create(
model="qwen3.5-plus", # Menggunakan model qwen3.5-plus. Lihat https://www.alibabacloud.com/help/model-studio/getting-started/models untuk model lainnya.
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 di 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({
// Setiap wilayah memerlukan Kunci API unik. Untuk mendapatkan Kunci API, kunjungi: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
// Jika Anda belum menyetel variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: apiKey: "sk-xxx"
apiKey: process.env.DASHSCOPE_API_KEY,
// Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
});
async function main() {
const response = await openai.chat.completions.create({
model: "qwen3.5-plus", // Menggunakan model qwen3.5-plus. Lihat https://www.alibabacloud.com/help/model-studio/getting-started/models untuk model lainnya.
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 di 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 =======
# Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
# Setiap wilayah memerlukan Kunci API unik. Untuk mendapatkan Kunci API, kunjungi: https://www.alibabacloud.com/help/zh/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.5-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 di 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.5-plus",
"id": "chatcmpl-0fd66f46-b09e-9164-a84f-3ebbbedbac15"
}DashScope
Python
import os
import dashscope
# Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
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(
# Setiap wilayah memerlukan Kunci API unik. Untuk mendapatkan Kunci API, kunjungi: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
# Jika Anda belum menyetel variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key="sk-xxx"
api_key=os.getenv('DASHSCOPE_API_KEY'),
model='qwen3.5-plus', # Menggunakan model qwen3.5-plus. Lihat https://www.alibabacloud.com/help/model-studio/getting-started/models untuk model lainnya.
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 anjing tersebut. 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 {
// Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
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()
// Setiap wilayah memerlukan Kunci API unik. Untuk mendapatkan Kunci API, kunjungi: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
// Jika Anda belum menyetel variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3.5-plus") // Contoh ini menggunakan model qwen3.5-plus. Anda dapat menggantinya dengan model lain. Untuk daftar model yang tersedia, lihat: https://www.alibabacloud.com/help/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 =======
# Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
# Setiap wilayah memerlukan Kunci API unik. Untuk mendapatkan Kunci API, kunjungi: https://www.alibabacloud.com/help/zh/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.5-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 di 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
Qwen3.5 yang Direkomendasikan: Generasi terbaru model pemahaman visual. Unggul dalam tugas seperti penalaran multimodal, pemahaman gambar 2D/3D, penguraian dokumen kompleks, pemrograman visual, pemahaman video, dan pembuatan agen multimodal. Tersedia di wilayah Tiongkok daratan dan Singapura.
qwen3.5-plus: Model paling canggih dalam seri Qwen3.5, direkomendasikan untuk tugas yang memerlukan akurasi dan performa tertinggi.qwen3.5-flash: Pilihan yang lebih cepat dan hemat biaya yang menyeimbangkan performa dan biaya, ideal untuk skenario yang sensitif terhadap latensi.qwen3.5-397b-a17b,qwen3.5-122b-a10b,qwen3.5-27b, danqwen3.5-35b-a3b: Model open-source dalam seri Qwen3.5.
Seri Qwen3-VL juga cocok untuk tugas yang memerlukan pengenalan dan pelokalan objek presisi tinggi (termasuk 3D), pemanggilan alat oleh agen, penguraian dokumen dan halaman web, pemecahan masalah kompleks, dan pemahaman video panjang.
qwen3-vl-plus: Model paling kuat dalam seri Qwen3-VL.qwen3-vl-flash: Pilihan yang lebih cepat dan hemat biaya yang menyeimbangkan performa dan biaya, ideal untuk skenario yang sensitif terhadap latensi.
Seri Qwen2.5-VL cocok untuk tugas umum seperti pembuatan keterangan gambar sederhana dan mengekstrak ringkasan dari video pendek.
qwen-vl-max(dalam seri Qwen2.5-VL): Model dengan performa terbaik dalam seri Qwen2.5-VL.qwen-vl-plus(dalam seri Qwen2.5-VL): Model yang lebih cepat yang memberikan keseimbangan baik antara performa dan biaya.
Untuk nama model, konteks, harga, dan versi snapshot, lihat Daftar model. Untuk batasan konkurensi, lihat Pembatasan laju.
Kemampuan
Menjawab pertanyaan visual (VQA)
Deskripsikan dan klasifikasikan konten gambar, 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 kuat, mengurangi kerusakan UV pada mata Anda, serta membantu melindungi penglihatan sekaligus meningkatkan kenyamanan di bawah sinar matahari terang. |
Penulisan kreatif
Hasilkan deskripsi teks yang hidup dari konten gambar atau video untuk skenario kreatif seperti penulisan cerita, copywriting, dan pengembangan naskah video pendek.
Berdasarkan gambar ini, buatkan postingan media sosial yang menarik untuk saya. | Tentu saja. Gambar ini memiliki suasana Festival Pertengahan Musim Gugur yang kaya, dengan perpaduan cerdas antara elemen klasik dan modern. Berdasarkan elemen utama dalam gambar, saya telah menyiapkan beberapa ide postingan media sosial dalam gaya berbeda untuk Anda pilih. Gaya puitis dan estetis Malam ini, bulan bersinar terang untuk semua orang, saat rindu musim gugur menghampirimu. Penerbangan Chang'e dan ramuan Kelinci Giok—romansa zaman dahulu kembali berkobar malam ini. Semoga cahaya bulan ini menerangi jalan pulangmu dan membawa harapan terdalamku. Selamat Festival Pertengahan Musim Gugur! Gaya hangat dan tulus Bulan purnama untuk reuni penuh pada malam Pertengahan Musim Gugur yang lembut ini. Menonton kembang api, memandang bulan, menikmati kue bulan, dan mendoakanmu. Semoga semua harapan dan impian kita menjadi kenyataan. Selamat Festival Pertengahan Musim Gugur dan semoga keluarga Anda berkumpul dengan penuh sukacita! |
OCR dan ekstraksi informasi
Kenali teks dan rumus dalam gambar, atau ekstrak informasi dari dokumen seperti kwitansi, sertifikat, dan formulir. Model-model ini mendukung output teks terformat. Baik model Qwen3.5 maupun Qwen3-VL telah memperluas dukungan bahasa mereka hingga 33 bahasa. Untuk daftar bahasa yang didukung, lihat Perbandingan fitur model.
Ekstrak bidang berikut dari gambar: ['Kode Faktur', 'Nomor Faktur', 'Tujuan', 'Biaya Bahan Bakar', 'Tarif', 'Tanggal Perjalanan', 'Waktu Keberangkatan', 'Nomor Kereta', 'Nomor Kursi']. Output hasilnya 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" } |
Pemecahan masalah multidisiplin
Selesaikan masalah dari berbagai mata pelajaran yang ditemukan dalam gambar, termasuk matematika, fisika, dan kimia. Mendukung aplikasi pendidikan dari TK hingga SMA hingga pembelajaran dewasa.
Selesaikan soal matematika dalam gambar ini langkah demi langkah. |
|
Pemrograman visual
Hasilkan kode dari gambar atau video untuk mengonversi mockup desain, tangkapan layar situs web, dan masukan visual lainnya menjadi kode HTML, CSS, dan JS.
Buat halaman web menggunakan HTML dan CSS berdasarkan sketsa saya. Tema warna utama harus hitam. |
Pratinjau halaman web |
Pelokalan objek
Mendukung pelokalan 2D dan 3D untuk menentukan orientasi objek, perubahan perspektif, dan hubungan oklusi. Pelokalan 3D merupakan kemampuan baru model Qwen3-VL.
Model Qwen2.5-VL memberikan pelokalan objek yang andal dalam rentang resolusi 480x480 hingga 2560x2560 piksel. Di luar rentang ini, akurasi deteksi dapat menurun, dengan sesekali terjadi deviasi Kotak pembatas.
Untuk menggambar hasil pelokalan pada gambar asli, lihat FAQ.
Posisi 2D
| Visualisasi hasil posisi 2D
|
Penguraian dokumen
Uraikan dokumen berbasis gambar, seperti pindaian atau PDF berbasis gambar, ke dalam format QwenVL HTML atau QwenVL Markdown. Format ini secara akurat mengenali teks dan mengambil informasi posisi untuk elemen seperti gambar dan tabel. Model Qwen3-VL menambahkan kemampuan untuk mengurai dokumen ke dalam format Markdown.
Prompt yang direkomendasikan:qwenvl html(untuk mengurai ke format HTML) atauqwenvl markdown(untuk mengurai ke format Markdown).
qwenvl markdown. |
Visualisasi hasil |
Pemahaman video
Analisis konten video untuk melokalisasi event spesifik dan mengambil timestamp-nya, atau menghasilkan ringkasan periode waktu utama.
Jelaskan rangkaian aksi yang dilakukan oleh orang dalam video tersebut. Output hasilnya dalam format JSON dengan bidang start_time, end_time, dan event. Gunakan format HH:mm:ss untuk timestamp. | { "events": [ { "start_time": "00:00:00", "end_time": "00:00:05", "event": "Orang tersebut berjalan ke 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 mengarahkannya ke label pada kotak untuk memindainya." }, { "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 berpikir
Model seri
qwen3.5,qwen3-vl-plus, danqwen3-vl-flashadalah model berpikir hibrida yang dapat merespons baik setelah melakukan penalaran maupun langsung. Gunakan parameterenable_thinkinguntuk mengontrol apakah akan mengaktifkan mode berpikir:true: Aktifkan mode berpikir. Nilai default untuk seriqwen3.5adalahtrue.false: Nonaktifkan mode berpikir. Nilai default untuk seriqwen3-vl-plusdanqwen3-vl-flashadalahfalse.
Model dengan akhiran
thinking, sepertiqwen3-vl-235b-a22b-thinking, adalah model penalaran khusus. Model ini selalu melakukan penalaran sebelum merespons, dan fitur ini tidak dapat dinonaktifkan.
Konfigurasi model: Dalam skenario percakapan umum yang tidak melibatkan pemanggilan alat, jangan atur
System Messageuntuk performa optimal. Sebaliknya, sampaikan instruksi seperti pengaturan peran model dan persyaratan format output melaluiUser Message.Gunakan keluaran streaming: Saat mode berpikir diaktifkan, keluaran streaming dan non-streaming didukung. Untuk menghindari timeout akibat respons yang panjang, gunakan keluaran streaming.
Batasi panjang proses berpikir: Model deep thinking terkadang menghasilkan penalaran yang bertele-tele. Anda dapat menggunakan parameter
thinking_budgetuntuk membatasi panjang penalaran. Jika jumlah token yang dihasilkan selama penalaran melebihithinking_budget, proses penalaran dipotong dan model segera mulai menghasilkan respons akhir. Nilai defaultthinking_budgetadalah panjang maksimum rantai-pikiran model. Lihat Daftar model.
Kompatibel dengan OpenAI
Parameter enable_thinking bukanlah parameter standar OpenAI. Jika Anda menggunakan OpenAI Python SDK, teruskan melalui extra_body.
import os
from openai import OpenAI
client = OpenAI(
# Setiap wilayah memerlukan Kunci API unik. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
api_key=os.getenv("DASHSCOPE_API_KEY"),
# Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
)
reasoning_content = "" # Menyimpan proses penalaran lengkap.
answer_content = "" # Menyimpan respons lengkap.
is_answering = False # Melacak apakah model sedang menghasilkan jawaban akhir.
enable_thinking = True
# Buat permintaan penyelesaian chat.
completion = client.chat.completions.create(
model="qwen3.5-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,
# `mode berpikir` dapat diaktifkan/nonaktifkan untuk `qwen3.5`/`qwen3-vl-plus`/`qwen3-vl-flash`. Wajib untuk model dengan akhiran 'thinking' dan tidak berlaku untuk model Qwen-VL lainnya.
# Parameter `thinking_budget` menetapkan jumlah maksimum token untuk proses penalaran.
extra_body={
'enable_thinking': enable_thinking,
"thinking_budget": 81920},
# Hapus komentar pada kode berikut untuk mengembalikan penggunaan token pada chunk terakhir.
# stream_options={
# "include_usage": True
# }
)
if enable_thinking:
print("\n" + "=" * 20 + "Proses Berpikir" + "=" * 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 penalaran.
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 mencetak respons.
if delta.content != "" and is_answering is False:
print("\n" + "=" * 20 + "Respons Lengkap" + "=" * 20 + "\n")
is_answering = True
# Cetak konten respons.
if delta.content is not None:
print(delta.content, end='', flush=True)
answer_content += delta.content
# print("=" * 20 + "Proses Berpikir 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({
// Setiap wilayah memerlukan Kunci API unik. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
// Jika Anda belum menyetel variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: apiKey: "sk-xxx"
apiKey: process.env.DASHSCOPE_API_KEY,
// Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
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: "Bagaimana cara menyelesaikan masalah ini?" },
]
}]
async function main() {
try {
const stream = await openai.chat.completions.create({
model: 'qwen3.5-plus',
messages: messages,
stream: true,
// Catatan: Di Node.js SDK, teruskan parameter non-standar seperti enable_thinking di level teratas, bukan di extra_body.
enable_thinking: enableThinking,
thinking_budget: 81920
});
if (enableThinking){console.log('\n' + '='.repeat(20) + 'Proses Berpikir' + '='.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 konten penalaran.
if (delta.reasoning_content) {
process.stdout.write(delta.reasoning_content);
reasoningContent += delta.reasoning_content;
}
// Proses konten respons.
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 =======
# Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
# Setiap wilayah memerlukan Kunci API unik. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/zh/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.5-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,
"stream_options":{"include_usage":true},
"enable_thinking": true,
"thinking_budget": 81920
}'DashScope
import os
import dashscope
from dashscope import MultiModalConversation
# Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
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": "Bagaimana cara menyelesaikan masalah ini?"}
]
}
]
response = MultiModalConversation.call(
# Jika Anda belum menyetel variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key="sk-xxx",
# Setiap wilayah memerlukan Kunci API unik. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
api_key=os.getenv('DASHSCOPE_API_KEY'),
model="qwen3.5-plus",
messages=messages,
stream=True,
# `mode berpikir` dapat diaktifkan/nonaktifkan untuk `qwen3.5`/`qwen3-vl-plus`/`qwen3-vl-flash`. Wajib untuk model dengan akhiran 'thinking' dan tidak berlaku untuk model Qwen-VL lainnya.
enable_thinking=enable_thinking,
# Parameter `thinking_budget` menetapkan jumlah maksimum token untuk proses penalaran.
thinking_budget=81920,
)
# Menyimpan proses penalaran lengkap.
reasoning_content = ""
# Menyimpan respons lengkap.
answer_content = ""
# Melacak apakah model sedang menghasilkan jawaban akhir.
is_answering = False
if enable_thinking:
print("=" * 20 + "Proses Berpikir" + "=" * 20)
for chunk in response:
# Abaikan chunk kosong.
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:
# Dalam proses penalaran.
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
# 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 penalaran lengkap dan respons lengkap, hapus komentar dan jalankan kode berikut.
# print("=" * 20 + "Proses Berpikir Lengkap" + "=" * 20 + "\n")
# print(f"{reasoning_content}")
# print("=" * 20 + "Respons Lengkap" + "=" * 20 + "\n")
# print(f"{answer_content}")// Versi DashScope SDK >= 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 {
// Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
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; // Default ke string kosong jika konten penalaran null.
List<Map<String, Object>> content = message.getOutput().getChoices().get(0).getMessage().getContent();
if (!reasoning.isEmpty()) {
reasoningContent.append(reasoning);
if (isFirstPrint) {
System.out.println("====================Proses Berpikir====================");
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 menyetel variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: .apiKey("sk-xxx")
// Setiap wilayah memerlukan Kunci API unik. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3.5-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", "Bagaimana cara menyelesaikan 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 =======
# Setiap wilayah memerlukan Kunci API unik. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
# Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
# === 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.5-plus",
"input":{
"messages":[
{
"role": "user",
"content": [
{"image": "https://img.alicdn.com/imgextra/i1/O1CN01gDEY8M1W114Hi3XcN_!!6000000002727-0-tps-1024-406.jpg"},
{"text": "Bagaimana cara menyelesaikan masalah ini?"}
]
}
]
},
"parameters":{
"enable_thinking": true,
"incremental_output": true,
"thinking_budget": 81920
}
}'Input gambar ganda
Model pemahaman visual memungkinkan Anda mengirimkan beberapa gambar dalam satu permintaan untuk tugas seperti perbandingan produk dan pemrosesan dokumen multi-halaman. Untuk melakukannya, sertakan beberapa objek gambar dalam array pesan pengguna konten.
Jumlah gambar dibatasi oleh batas token total model untuk teks dan gambar. Jumlah token gabungan untuk semua gambar dan teks harus kurang dari input maksimum model.
Kompatibel dengan OpenAI
Python
import os
from openai import OpenAI
client = OpenAI(
# Setiap wilayah memerlukan Kunci API unik. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
api_key=os.getenv("DASHSCOPE_API_KEY"),
# Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen3.5-plus", # Menggunakan model qwen3.5-plus. Lihat https://www.alibabacloud.com/help/model-studio/getting-started/models untuk model lainnya.
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 seorang wanita dan seekor Labrador retriever yang berinteraksi di pantai. Wanita tersebut mengenakan kemeja kotak-kotak dan duduk di atas pasir, sambil bersalaman dengan anjing tersebut. Latar belakang menampilkan ombak laut dan langit, menciptakan suasana yang hangat dan menyenangkan.
Gambar 2 menunjukkan seekor harimau yang berjalan melalui hutan. Bulunya berwarna oranye dengan garis-garis hitam. Sekelilingnya dipenuhi pepohonan dan vegetasi yang lebat, serta tanah ditutupi daun-daun yang gugur. Adegan ini membangkitkan rasa liar.Node.js
import OpenAI from "openai";
const openai = new OpenAI(
{
// Setiap wilayah memerlukan Kunci API unik. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
// Jika Anda belum menyetel variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: apiKey: "sk-xxx"
apiKey: process.env.DASHSCOPE_API_KEY,
// Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
}
);
async function main() {
const response = await openai.chat.completions.create({
model: "qwen3.5-plus", // Menggunakan model qwen3.5-plus. Lihat https://www.alibabacloud.com/help/model-studio/getting-started/models untuk model lainnya.
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 memberi tepuk tangan.
Pada gambar kedua, seekor harimau berjalan melalui hutan. Bulunya berwarna oranye dengan garis-garis hitam, dan latar belakangnya terdiri dari pepohonan hijau dan vegetasi.curl
# ======= Penting =======
# Setiap wilayah memerlukan Kunci API unik. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
# Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
# === 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.5-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 seorang wanita dan seekor Labrador retriever yang berinteraksi di pantai. Wanita tersebut mengenakan kemeja kotak-kotak dan duduk di atas pasir, sambil bersalaman dengan anjing tersebut. Latar belakang menampilkan laut dan langit senja, menciptakan suasana yang sangat hangat dan harmonis.\n\nGambar 2 menunjukkan seekor harimau yang berjalan melalui hutan. Bulunya berwarna oranye dengan garis-garis hitam saat berjalan maju. Sekelilingnya dipenuhi pepohonan dan vegetasi yang lebat, dengan daun-daun yang gugur di tanah. Adegan ini menyampaikan rasa liar 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.5-plus",
"id": "chatcmpl-0fd66f46-b09e-9164-a84f-3ebbbedbac15"
}DashScope
Python
import os
import dashscope
# Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
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(
# Setiap wilayah memerlukan Kunci API unik. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
# Jika Anda belum menyetel variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key="sk-xxx"
api_key=os.getenv('DASHSCOPE_API_KEY'),
model='qwen3.5-plus', # Menggunakan model qwen3.5-plus. Lihat https://www.alibabacloud.com/help/zh/model-studio/getting-started/models untuk model lainnya.
messages=messages
)
print(response.output.choices[0].message.content[0]["text"])Tanggapan
Gambar-gambar ini menunjukkan hewan dalam adegan alami. Gambar 1 menunjukkan seseorang dan seekor anjing yang berinteraksi di pantai. Gambar 2 menunjukkan 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 {
// Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
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()
// Setiap wilayah memerlukan Kunci API unik. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3.5-plus") // Menggunakan model qwen3.5-plus. Lihat https://www.alibabacloud.com/help/model-studio/getting-started/models untuk model lainnya.
.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 hewan dalam adegan alami.
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 dengannya.
2. Gambar kedua: Seekor harimau berjalan melalui hutan. Bulunya berwarna oranye dengan garis-garis hitam, dan latar belakangnya mencakup pepohonan dan daun-daun.curl
# ======= Penting =======
# Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
# Setiap wilayah memerlukan Kunci API unik. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/zh/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.5-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 digambarkan dalam gambar-gambar ini?"}
]
}
]
}
}'Tanggapan
{
"output": {
"choices": [
{
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": [
{
"text": "Gambar-gambar ini menunjukkan hewan dalam adegan alami. Gambar 1 menunjukkan seseorang dan seekor anjing yang berinteraksi di pantai. Gambar 2 menunjukkan 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
Model pemahaman visual menganalisis konten video dari file video atau daftar gambar (frame video). Contoh berikut menunjukkan cara menganalisis video online atau daftar gambar yang ditentukan oleh URL. Untuk batasan video atau jumlah gambar dalam daftar gambar, lihat bagian Batasan video.
Untuk performa optimal, gunakan versi terbaru atau Snapshot terbaru model untuk menganalisis file video.
File video
Model pemahaman visual melakukan analisis konten dengan mengekstraksi urutan frame video. Anda dapat mengontrol kebijakan ekstraksi frame dengan dua parameter berikut:
fps: Mengontrol frekuensi ekstraksi frame, mengekstraksi satu frame setiap
detik. Nilai yang valid adalah [0.1, 10]. Nilai default adalah 2.0. Untuk adegan gerakan cepat, atur nilai fps lebih tinggi untuk menangkap lebih banyak detail.
Untuk video statis atau panjang, pertimbangkan untuk mengatur nilai fps lebih rendah untuk meningkatkan efisiensi pemrosesan.
max_frames: Membatasi jumlah maksimum frame yang diekstraksi dari video. Jika jumlah total frame yang dihitung berdasarkan nilai fps melebihi batas ini, sistem akan mengambil sampel frame secara merata agar tetap dalam batas max_frames. Parameter ini hanya tersedia dengan DashScope SDK.
Kompatibel dengan OpenAI
Saat Anda memberikan file video langsung ke model pemahaman visual menggunakan OpenAI SDK atau permintaan HTTP, atur parameter"type"dalam pesan pengguna ke"video_url".
Python
import os
from openai import OpenAI
client = OpenAI(
# Setiap wilayah memerlukan Kunci API unik. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
# Jika Anda belum menyetel variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
# Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen3.5-plus",
messages=[
{
"role": "user",
"content": [
# Saat Anda memberikan file video langsung, atur tipe 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(
{
// Setiap wilayah memerlukan Kunci API unik. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
// Jika Anda belum menyetel variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: apiKey: "sk-xxx"
apiKey: process.env.DASHSCOPE_API_KEY,
// Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
}
);
async function main() {
const response = await openai.chat.completions.create({
model: "qwen3.5-plus",
messages: [
{
role: "user",
content: [
// Saat Anda memberikan file video langsung, atur tipe 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 =======
# Setiap wilayah memerlukan Kunci API unik. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
# Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
# === 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.5-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
# Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = [
{"role": "user",
"content": [
# Parameter fps mengontrol laju frame. Satu frame diekstraksi setiap 1/fps detik. Untuk informasi selengkapnya, lihat: https://www.alibabacloud.com/help/zh/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(
# Setiap wilayah memerlukan Kunci API unik. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
# Jika Anda belum menyetel variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key ="sk-xxx"
api_key=os.getenv('DASHSCOPE_API_KEY'),
model='qwen3.5-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 {
// Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
public static void simpleMultiModalConversationCall()
throws ApiException, NoApiKeyException, UploadFileException {
MultiModalConversation conv = new MultiModalConversation();
// Parameter fps mengontrol laju frame. Satu frame diekstraksi setiap 1/fps detik. Untuk informasi selengkapnya, lihat: https://www.alibabacloud.com/help/zh/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 Tiongkok (Beijing), Anda harus menggunakan Kunci API dari wilayah tersebut. Dapatkan Kunci API di: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
// Jika Anda belum menyetel variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3.5-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
# ======= Catatan penting =======
# Konfigurasi bervariasi berdasarkan wilayah. Ubah konfigurasi sesuai wilayah Anda yang sebenarnya.
# Kunci API berbeda berdasarkan wilayah. Dapatkan Kunci API: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
# === Hapus komentar ini sebelum 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.5-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 disediakan sebagai daftar gambar (frame video yang telah diekstraksi sebelumnya), gunakan parameter fps untuk memberi tahu model tentang interval waktu antar frame. Ini membantu model lebih akurat memahami urutan kejadian, durasi, dan perubahan dinamis. Model mendukung penggunaan parameter fps untuk menentukan laju ekstraksi frame video asli, artinya satu frame diekstraksi setiap
Kompatibel dengan OpenAI
Saat Anda memberikan video sebagai daftar gambar menggunakan OpenAI SDK atau permintaan HTTP, atur parameter"type"dalam pesan pengguna ke"video".
Python
import os
from openai import OpenAI
client = OpenAI(
# Setiap wilayah memerlukan Kunci API unik. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
# Jika Anda belum menyetel variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
# Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen3.5-plus", # Menggunakan model qwen3.5-plus. Lihat https://www.alibabacloud.com/help/zh/model-studio/models untuk model lainnya.
messages=[{"role": "user","content": [
# Saat Anda memberikan daftar gambar, parameter 'type' dalam pesan pengguna adalah '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 Anda telah menentukan "type": "module" di package.json.
import OpenAI from "openai";
const openai = new OpenAI({
// Setiap wilayah memerlukan Kunci API unik. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
// Jika Anda belum menyetel variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: apiKey: "sk-xxx",
apiKey: process.env.DASHSCOPE_API_KEY,
// Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
});
async function main() {
const response = await openai.chat.completions.create({
model: "qwen3.5-plus", // Menggunakan model qwen3.5-plus. Lihat https://www.alibabacloud.com/help/zh/model-studio/models untuk model lainnya.
messages: [{
role: "user",
content: [
{
// Saat Anda memberikan daftar gambar, parameter 'type' dalam pesan pengguna adalah '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 =======
# Setiap wilayah memerlukan Kunci API unik. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
# Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
# === 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.5-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
# Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = [{"role": "user",
"content": [
# Saat Anda memberikan daftar gambar, parameter fps berlaku untuk model seri Qwen3.5, Qwen3-VL, dan Qwen2.5-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(
# Setiap wilayah memerlukan Kunci API unik. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
# Jika Anda belum menyetel variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
model='qwen3.5-plus', # Menggunakan model qwen3.5-plus. Lihat https://www.alibabacloud.com/help/model-studio/getting-started/models untuk model lainnya.
messages=messages
)
print(response.output.choices[0].message.content[0]["text"])Java
// Diperlukan versi DashScope SDK 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 {
// Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
private static final String MODEL_NAME = "qwen3.5-plus"; // Menggunakan model qwen3.5-plus. Lihat https://www.alibabacloud.com/help/model-studio/getting-started/models untuk model lainnya.
public static void videoImageListSample() throws ApiException, NoApiKeyException, UploadFileException {
MultiModalConversation conv = new MultiModalConversation();
// Saat Anda memberikan daftar gambar, parameter fps berlaku untuk model seri Qwen3.5, Qwen3-VL, dan Qwen2.5-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()
// Setiap wilayah memerlukan Kunci API unik. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
// Jika Anda belum menyetel 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();
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}curl
# ======= Penting =======
# Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
# Setiap wilayah memerlukan Kunci API unik. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/zh/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.5-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."
}
]
}
]
}
}'Teruskan file lokal (encoding Base64 atau jalur file)
Model pemahaman visual menawarkan dua metode untuk mengunggah file lokal: unggahan encoding Base64 dan unggahan jalur file langsung. Anda dapat memilih metode berdasarkan ukuran file dan jenis SDK. Untuk rekomendasi spesifik, lihat Cara memilih metode unggah file. Kedua metode harus memenuhi persyaratan dalam Batasan gambar.
Unggahan Encoding Base64
Konversi file ke string encoding Base64 dan teruskan ke model. Metode ini kompatibel dengan SDK OpenAI dan DashScope, serta permintaan HTTP.
Unggahan Jalur File
Teruskan jalur file lokal langsung ke model. Metode ini hanya didukung oleh DashScope Python dan Java SDK. Metode ini tidak kompatibel dengan permintaan DashScope HTTP atau OpenAI-compatible.
Gunakan tabel berikut untuk menentukan jalur file berdasarkan bahasa pemrograman dan sistem operasi Anda.
Gambar
Jalur file
Python
import os
import dashscope
# Titik akhir bervariasi berdasarkan Wilayah. Ubah Titik akhir sesuai Wilayah Anda.
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(
# Diperlukan Kunci API 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, gunakan Kunci API Model Studio Anda untuk mengganti baris berikut dengan: api_key="sk-xxx"
api_key=os.getenv('DASHSCOPE_API_KEY'),
model='qwen3.5-plus', # Contoh ini menggunakan model qwen3.5-plus. Anda dapat menggantinya sesuai kebutuhan. Untuk daftar model yang tersedia, lihat: https://www.alibabacloud.com/help/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 {
// Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
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()
// Diperlukan Kunci API 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, Anda dapat meneruskan Kunci API Model Studio Anda secara langsung dengan mengganti baris berikut dengan: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3.5-plus") // Contoh ini menggunakan model qwen3.5-plus. Anda dapat menggantinya sesuai kebutuhan. Untuk daftar model yang tersedia, 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);
}
}Encoding Base64
Kompatibel dengan OpenAI
Python
from openai import OpenAI
import os
import base64
# Fungsi ini mengonversi file lokal ke string encoding Base64.
def encode_image(image_path):
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode("utf-8")
# Ganti xxx/eagle.png dengan jalur mutlak gambar lokal Anda.
base64_image = encode_image("xxx/eagle.png")
client = OpenAI(
# Kunci API bervariasi berdasarkan wilayah. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Jika Anda belum mengonfigurasi variabel lingkungan, Anda dapat meneruskan Kunci API Model Studio Anda secara langsung dengan mengganti
# baris berikut dengan: api_key="sk-xxx"
api_key=os.getenv('DASHSCOPE_API_KEY'),
# Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen3.5-plus", # Contoh ini menggunakan model qwen3.5-plus. Anda dapat menggantinya sesuai kebutuhan. Untuk daftar model yang tersedia, lihat: https://www.alibabacloud.com/help/en/model-studio/getting-started/models
messages=[
{
"role": "user",
"content": [
{
"type": "image_url",
# Catatan: Saat meneruskan data encoding Base64, pastikan format URI data (misalnya, data:image/png;base64)
# sesuai dengan format gambar aktual.
# 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(
{
// Diperlukan Kunci API untuk setiap wilayah. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
// Jika Anda belum mengonfigurasi variabel lingkungan, Anda dapat meneruskan Kunci API Model Studio Anda secara langsung dengan mengganti baris berikut dengan: apiKey: "sk-xxx"
apiKey: process.env.DASHSCOPE_API_KEY,
// Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
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.5-plus", // Contoh ini menggunakan model qwen3.5-plus. Anda dapat menggantinya sesuai kebutuhan. Untuk daftar model yang tersedia, lihat: https://www.alibabacloud.com/help/model-studio/getting-started/models
messages: [
{"role": "user",
"content": [{"type": "image_url",
// Catatan: Saat meneruskan data encoding Base64, pastikan format URI data (misalnya, data:image/png;base64) sesuai dengan format gambar aktual.
// 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 contoh mengonversi file ke string encoding Base64, lihat kode contoh.
Untuk tujuan tampilan, string encoding Base64
"data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."dalam kode dipotong. Anda harus meneruskan string encoding lengkap dalam permintaan Anda.
# ======= Penting =======
# Diperlukan Kunci API untuk setiap Wilayah. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Titik akhir bervariasi berdasarkan Wilayah. Ubah Titik akhir sesuai Wilayah Anda.
# === 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.5-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
# Titik akhir bervariasi berdasarkan Wilayah. Ubah Titik akhir sesuai Wilayah Anda.
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# Fungsi ini mengonversi file lokal ke string encoding 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": [
# Catatan: Saat meneruskan data encoding Base64, pastikan format URI data (misalnya, data:image/png;base64)
# sesuai dengan format gambar aktual.
# 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(
# Diperlukan Kunci API 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, Anda dapat meneruskan Kunci API Anda secara langsung dengan mengganti baris berikut dengan: api_key="sk-xxx"
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="qwen3.5-plus", # Contoh ini menggunakan model qwen3.5-plus. Anda dapat menggantinya sesuai kebutuhan. Untuk daftar model yang tersedia, lihat: https://www.alibabacloud.com/help/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 {
// Titik akhir bervariasi berdasarkan wilayah. Ubah Titik akhir sesuai wilayah Anda.
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()
// Diperlukan Kunci API untuk setiap wilayah. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/en/model-studio/get-api-key
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3.5-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 mengonversi file ke string encoding Base64, lihat kode contoh.
Untuk tujuan tampilan, string encoding Base64
"data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."dalam kode dipotong. Dalam praktiknya, Anda harus meneruskan string encoding lengkap.
# ======= Penting =======
# Titik akhir bervariasi berdasarkan Wilayah. Ubah Titik akhir sesuai Wilayah Anda.
# Diperlukan Kunci API 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.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "qwen3.5-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 lokal test.mp4.
Jalur file
Python
import os
import dashscope
# Titik akhir bervariasi berdasarkan Wilayah. Ubah titik akhir sesuai dengan Wilayah Anda.
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# Ganti xxx/test.mp4 dengan jalur mutlak file video lokal Anda.
local_path = "xxx/test.mp4"
video_path = f"file://{local_path}"
messages = [
{'role':'user',
# Parameter fps menentukan jumlah frame yang diekstraksi per detik.
'content': [{'video': video_path,"fps":2},
{'text': 'Apa yang digambarkan dalam video ini?'}]}]
response = MultiModalConversation.call(
# Diperlukan Kunci API untuk setiap Wilayah. Dapatkan Kunci API Anda di: 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.5-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 {
// Titik akhir bervariasi berdasarkan wilayah. Ubah titik akhir sesuai dengan wilayah Anda.
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 menentukan jumlah frame yang diekstraksi per detik.
put("fps", 2);
}},
new HashMap<String, Object>(){{put("text", "Apa yang digambarkan dalam video ini?");}})).build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// Diperlukan Kunci API untuk setiap wilayah. Dapatkan Kunci API Anda di: 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.5-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 file video lokal Anda.
callWithLocalFile("xxx/test.mp4");
} catch (ApiException | NoApiKeyException | UploadFileException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}Enkode Base64
Kompatibel dengan OpenAI
Python
from openai import OpenAI
import os
import base64
# Fungsi enkode: 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 xxx/test.mp4 dengan jalur mutlak file video lokal Anda.
base64_video = encode_video("xxx/test.mp4")
client = OpenAI(
# Diperlukan Kunci API untuk setiap Wilayah. Dapatkan Kunci API Anda di: 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'),
# Titik akhir bervariasi berdasarkan Wilayah. Ubah titik akhir sesuai dengan Wilayah Anda.
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen3.5-plus",
messages=[
{
"role": "user",
"content": [
{
# Gunakan "video_url" sebagai tipe untuk data video terenkripsi Base64.
"type": "video_url",
"video_url": {"url": f"data:video/mp4;base64,{base64_video}"},
"fps":2
},
{"type": "text", "text": "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(
{
// Diperlukan Kunci API untuk setiap Wilayah. Dapatkan Kunci API Anda di: 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,
// Titik akhir bervariasi berdasarkan Wilayah. Ubah titik akhir sesuai dengan Wilayah Anda.
baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
}
);
const encodeVideo = (videoPath) => {
const videoFile = readFileSync(videoPath);
return videoFile.toString('base64');
};
// Ganti xxx/test.mp4 dengan jalur mutlak file video lokal Anda.
const base64Video = encodeVideo("xxx/test.mp4")
async function main() {
const completion = await openai.chat.completions.create({
model: "qwen3.5-plus",
messages: [
{"role": "user",
"content": [{
// Gunakan "video_url" sebagai tipe untuk data video terenkripsi Base64.
"type": "video_url",
"video_url": {"url": `data:video/mp4;base64,${base64Video}`},
"fps":2},
{"type": "text", "text": "Apa yang digambarkan dalam video ini?"}]}]
});
console.log(completion.choices[0].message.content);
}
main();
curl
Untuk informasi lebih lanjut, lihat Kode contoh.
String terenkripsi Base64
"data:video/mp4;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."dalam kode ini dipotong untuk ditampilkan. Anda harus menggunakan string lengkap dalam permintaan aktual Anda.
# ======= Pemberitahuan Penting =======
# Kunci API bervariasi berdasarkan wilayah. Untuk mendapatkan Kunci API Anda, lihat https://www.alibabacloud.com/help/zh/model-studio/get-api-key
# Konfigurasi bervariasi berdasarkan wilayah. Ubah konfigurasi sesuai dengan wilayah Anda yang sebenarnya.
# === 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.5-plus",
"messages": [
{
"role": "user",
"content": [
{"type": "video_url", "video_url": {"url": "data:video/mp4;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."},"fps":2},
{"type": "text", "text": "Apa adegan yang digambarkan dalam gambar tersebut?"}
]
}]
}'DashScope
Python
import base64
import os
import dashscope
# Titik akhir bervariasi berdasarkan Wilayah. Ubah titik akhir sesuai dengan Wilayah Anda.
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# 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 file video lokal Anda.
base64_video = encode_video("xxxx/test.mp4")
messages = [{'role':'user',
# Parameter fps menentukan jumlah frame yang diekstraksi per detik.
'content': [{'video': f"data:video/mp4;base64,{base64_video}","fps":2},
{'text': 'Apa yang digambarkan dalam video ini?'}]}]
response = dashscope.MultiModalConversation.call(
# Diperlukan Kunci API untuk setiap Wilayah. Dapatkan Kunci API Anda di: 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.5-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 {
// Titik akhir bervariasi berdasarkan wilayah. Ubah titik akhir sesuai dengan wilayah Anda.
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); // Terenkripsi 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 menentukan jumlah frame yang diekstraksi per detik.
put("fps", 2);
}},
new HashMap<String, Object>(){{put("text", "Apa yang digambarkan dalam video ini?");}})).build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// Diperlukan Kunci API untuk setiap wilayah. Dapatkan Kunci API Anda di: 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.5-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 file video lokal Anda.
callWithLocalFile("xxx/test.mp4");
} catch (ApiException | NoApiKeyException | UploadFileException | IOException e) {
System.out.println(e.getMessage());
}
System.exit(0);
}
}curl
Kode contoh menunjukkan cara mengonversi file menjadi string terenkripsi Base64.
String terenkripsi Base64
"f"data:video/mp4;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."dalam kode ini dipotong untuk ditampilkan. Anda harus menggunakan string lengkap dalam permintaan aktual Anda.
# ======= Penting =======
# Diperlukan Kunci API untuk setiap Wilayah. Dapatkan Kunci API Anda di: https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Titik akhir bervariasi berdasarkan Wilayah. Ubah titik akhir sesuai dengan Wilayah Anda.
# === Hapus komentar ini sebelum menjalankan kode ===
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.5-plus",
"input":{
"messages":[
{
"role": "user",
"content": [
{"video": "data:video/mp4;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."},
{"text": "Apa yang digambarkan dalam video ini?"}
]
}
]
}
}'Daftar gambar
Contoh ini menggunakan file lokal berikut: football1.jpg, football2.jpg, football3.jpg, dan football4.jpg.
Jalur file
Python
import os
import dashscope
# Endpoint bervariasi berdasarkan Region. Ubah endpoint sesuai Region Anda.
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',
# Parameter fps tersedia untuk model seri Qwen3.5, Qwen3-VL, dan Qwen2.5-VL ketika Anda memberikan daftar gambar.
'content': [{'video': [image_path1,image_path2,image_path3,image_path4],"fps":2},
{'text': 'Describe the process shown in this video.'}]}]
response = MultiModalConversation.call(
# Diperlukan Kunci API untuk setiap Region. 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.5-plus', # Contoh ini menggunakan model qwen3.5-plus. Anda dapat menggantinya sesuai kebutuhan. Untuk daftar model yang tersedia, lihat: https://www.alibabacloud.com/help/en/model-studio/getting-started/models
messages=messages)
print(response.output.choices[0].message.content[0]["text"])Java
// Diperlukan DashScope SDK versi 2.21.10 atau lebih baru.
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 {
// Endpoint bervariasi berdasarkan Region. Ubah endpoint sesuai Region Anda.
Constants.baseHttpApiUrl="https://dashscope-intl.aliyuncs.com/api/v1";
}
private static final String MODEL_NAME = "qwen3.5-plus"; // Contoh ini menggunakan model qwen3.5-plus. Anda dapat menggantinya sesuai kebutuhan. Untuk daftar model yang tersedia, 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));
// Parameter fps tersedia untuk model seri Qwen3.5, Qwen3-VL, dan Qwen2.5-VL ketika Anda memberikan daftar gambar.
params.put("fps", 2);
MultiModalMessage userMessage = MultiModalMessage.builder()
.role(Role.USER.getValue())
.content(Arrays.asList(params,
Collections.singletonMap("text", "Describe the process shown in this video.")))
.build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// Diperlukan Kunci API untuk setiap Region. 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);
}
}Encoding Base64
Kompatibel dengan OpenAI
Python
import os
from openai import OpenAI
import base64
# Mengonversi file lokal menjadi string yang di-encode 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(
# Diperlukan Kunci API untuk setiap Region. 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"),
# Endpoint bervariasi berdasarkan Region. Ubah endpoint sesuai Region Anda.
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen3.5-plus", # Contoh ini menggunakan model qwen3.5-plus. Anda dapat menggantinya sesuai kebutuhan. Untuk daftar model yang tersedia, 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": "Describe the process shown in this video."},
]}]
)
print(completion.choices[0].message.content)Node.js
import OpenAI from "openai";
import { readFileSync } from 'fs';
const openai = new OpenAI(
{
// Diperlukan Kunci API untuk setiap Region. 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,
// Endpoint bervariasi berdasarkan Region. Ubah endpoint sesuai Region Anda.
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.5-plus", // Contoh ini menggunakan model qwen3.5-plus. Anda dapat menggantinya sesuai kebutuhan. Untuk daftar model yang tersedia, 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": "Describe the scene shown in this video."}]}]
});
console.log(completion.choices[0].message.content);
}
main();curl
Untuk contoh konversi file menjadi string yang di-encode Base64, lihat Kode contoh.
String yang di-encode Base64
"data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."dipotong untuk tampilan. Anda harus meneruskan string lengkap dalam permintaan Anda.
# ======= Penting =======
# Endpoint bervariasi berdasarkan Region. Ubah endpoint sesuai Region Anda.
# Diperlukan Kunci API untuk setiap Region. 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.5-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": "Describe the process shown in this video."}]}]
}'DashScope
Python
import base64
import os
import dashscope
# Endpoint bervariasi berdasarkan Region. Ubah endpoint sesuai Region Anda.
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
# Mengonversi file lokal menjadi string yang di-encode 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': 'Describe the process shown in this video.'}]}]
response = dashscope.MultiModalConversation.call(
# Diperlukan Kunci API untuk setiap Region. 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.5-plus', # Contoh ini menggunakan model qwen3.5-plus. Anda dapat menggantinya sesuai kebutuhan. Untuk daftar model yang tersedia, 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 {
// Endpoint bervariasi berdasarkan region. Ubah endpoint sesuai region Anda.
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); // Di-encode 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));
// Parameter fps tersedia untuk model seri Qwen3.5, Qwen3-VL, dan Qwen2.5-VL ketika Anda memberikan daftar gambar.
params.put("fps", 2);
MultiModalMessage userMessage = MultiModalMessage.builder()
.role(Role.USER.getValue())
.content(Arrays.asList(params,
Collections.singletonMap("text", "Describe the specific process shown in this video.")))
.build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// Diperlukan Kunci API untuk setiap region. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/en/model-studio/get-api-key
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3.5-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 placeholder seperti "xxx/football1.jpg" dengan jalur mutlak ke file 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 contoh konversi file menjadi string yang di-encode Base64, lihat Kode contoh.
String yang di-encode Base64
"data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAA..."dipotong untuk tampilan. Anda harus meneruskan string lengkap dalam permintaan Anda.
# ======= Penting =======
# Endpoint bervariasi berdasarkan Region. Ubah endpoint sesuai Region Anda.
# Diperlukan Kunci API untuk setiap Region. 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.5-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": "Describe the process shown in this video."
}
]
}
]
}
}'Proses gambar beresolusi tinggi
API model pemahaman visual membatasi jumlah token visual per gambar yang dikodekan. Secara default, gambar beresolusi tinggi dikompresi, yang dapat menyebabkan kehilangan detail dan mengurangi akurasi pemahaman. Aktifkan vl_high_resolution_images atau sesuaikan max_pixels untuk meningkatkan jumlah token visual. Hal ini mempertahankan lebih banyak detail gambar dan meningkatkan pemahaman.
Saat
vl_high_resolution_images=true, API menggunakan kebijakan resolusi tetap dan mengabaikan pengaturanmax_pixels. Gunakan opsi ini untuk tugas yang memerlukan pengenalan teks halus, objek kecil, atau detail kaya dalam gambar.Saat
vl_high_resolution_images=false, parametermax_pixelsmenentukan batas piksel akhir.Untuk aplikasi yang memerlukan kecepatan pemrosesan tinggi atau sensitif terhadap biaya, gunakan nilai default untuk
max_pixelsatau atur ke nilai yang lebih kecil.Untuk mempertahankan sebagian detail dan dapat menerima kecepatan pemrosesan yang lebih rendah, tingkatkan nilai
max_pixels.
Kompatibel dengan OpenAI
Parameter vl_high_resolution_images bukan merupakan parameter standar OpenAI. Metode untuk meneruskannya bervariasi tergantung SDK:
Python SDK: Teruskan parameter dalam dictionary
extra_body.Node.js SDK: Teruskan parameter secara langsung sebagai parameter tingkat atas.
Python
import os
import time
from openai import OpenAI
client = OpenAI(
# Diperlukan Kunci API untuk setiap Region. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
api_key=os.getenv("DASHSCOPE_API_KEY"),
# Sesuaikan titik akhir untuk Region Anda.
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen3.5-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: Menetapkan jumlah piksel maksimum untuk gambar input. Diabaikan saat vl_high_resolution_images=True. Nilai maksimum bergantung pada model.
# "max_pixels": 16384 * 32 * 32
},
{"type": "text", "text": "What holiday does this image depict?"},
],
}
],
extra_body={"vl_high_resolution_images":True}
)
print(f"Model output: {completion.choices[0].message.content}")
print(f"Total input tokens: {completion.usage.prompt_tokens}")Node.js
import OpenAI from "openai";
const openai = new OpenAI(
{
// Jika tidak menggunakan variabel lingkungan, atur Kunci API Model Studio Anda di sini: apiKey: "sk-xxx"
// Diperlukan Kunci API untuk setiap Region. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
apiKey: process.env.DASHSCOPE_API_KEY,
// Sesuaikan titik akhir untuk Region Anda.
baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
}
);
const response = await openai.chat.completions.create({
model: "qwen3.5-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: Menetapkan jumlah piksel maksimum untuk gambar input. Diabaikan saat vl_high_resolution_images=True. Nilai maksimum bergantung pada model.
// "max_pixels": 2560 * 32 * 32
},
{type: "text", text: "What holiday does this image depict?" },
]}],
vl_high_resolution_images:true
})
console.log("Model output:",response.choices[0].message.content);
console.log("Total input tokens:",response.usage.prompt_tokens);
curl
# ======= Penting =======
# Diperlukan Kunci API untuk setiap Region. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
# Sesuaikan titik akhir untuk Region Anda.
# === 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.5-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": "What holiday does this image depict?"
}
]
}
],
"vl_high_resolution_images":true
}'DashScope
Python
import os
import time
import dashscope
# Sesuaikan titik akhir untuk Region Anda.
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: Menetapkan jumlah piksel maksimum untuk gambar input. Diabaikan saat vl_high_resolution_images=True. Nilai maksimum bergantung pada model.
# "max_pixels": 16384 * 32 * 32
},
{"text": "What holiday does this image depict?"}
]
}
]
response = dashscope.MultiModalConversation.call(
# Jika tidak menggunakan variabel lingkungan, atur Kunci API Model Studio Anda di sini: api_key="sk-xxx"
# Diperlukan Kunci API untuk setiap Region. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
api_key=os.getenv('DASHSCOPE_API_KEY'),
model='qwen3.5-plus',
messages=messages,
vl_high_resolution_images=True
)
print("Model output:",response.output.choices[0].message.content[0]["text"])
print("Total input tokens:",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 {
// Sesuaikan titik akhir untuk Region Anda.
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: Menetapkan jumlah piksel maksimum untuk gambar input. Diabaikan saat vl_high_resolution_images=True. Nilai maksimum bergantung pada model.
// map.put("max_pixels", 2621440);
MultiModalMessage userMessage = MultiModalMessage.builder().role(Role.USER.getValue())
.content(Arrays.asList(
map,
Collections.singletonMap("text", "What holiday does this image depict?"))).build();
MultiModalConversationParam param = MultiModalConversationParam.builder()
// Jika tidak menggunakan variabel lingkungan, atur Kunci API Model Studio Anda di sini: .apiKey("sk-xxx")
// Diperlukan Kunci API untuk setiap Region. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen3.5-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 =======
# Diperlukan Kunci API untuk setiap Region. Untuk mendapatkan Kunci API, lihat: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
# Sesuaikan titik akhir untuk Region Anda.
# === 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.5-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": "What holiday does this image depict?"}
]
}
]
},
"parameters": {
"vl_high_resolution_images": true
}
}'Penggunaan Lainnya
Batasan
Batasan file input
Batasan gambar
Resolusi:
Dimensi minimum: Lebar dan tinggi gambar harus keduanya lebih besar dari
10piksel.Rasio aspek: Rasio sisi panjang terhadap sisi pendek gambar tidak boleh melebihi
200:1.Batasan piksel:
Kami menyarankan agar resolusi gambar tetap dalam batas
8K (7680x4320). Gambar yang melebihi resolusi ini dapat menyebabkan timeout panggilan API karena ukuran file yang besar atau transmisi jaringan yang lama.Penskalaan otomatis: Model menyesuaikan ukuran gambar menggunakan parameter
max_pixelsdanmin_pixels. Memberikan 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 JPEG, JPG, dan PNG yang didukung.
Ukuran:
Saat dikirimkan sebagai URL publik: Satu gambar tidak boleh melebihi
20 MBuntuk seri Qwen3.5, dan10 MBuntuk model lainnya.Saat dikirimkan sebagai path file lokal (hanya untuk DashScope SDK): Satu gambar tidak boleh melebihi
10 MB.Saat dikirimkan sebagai string Base64-encoded: String yang dienkripsi tidak boleh melebihi
10 MB.
Untuk mengompresi file, lihat Cara mengompresi gambar atau video sesuai ukuran yang diperlukan.
Jumlah: Jumlah maksimum gambar yang diizinkan bergantung pada metode input.
Saat dikirimkan sebagai URL publik atau path file lokal: Maksimal 256 gambar.
Saat dikirimkan sebagai string Base64-encoded: Maksimal 250 gambar.
Jumlah token gabungan untuk semua gambar dan teks harus kurang dari batas input maksimum model.
Batasan video
Jika gambar dikirimkan sebagai daftar, jumlah gambar tunduk pada batasan berikut:
Seri
qwen3.5: Minimum 4 gambar dan maksimum 8000 gambar.Seri
qwen3-vl-plus, seriqwen3-vl-flash,qwen3-vl-235b-a22b-thinking, danqwen3-vl-235b-a22b-instruct: Minimum 4 gambar dan maksimum 2000 gambar.Model open-source
Qwen3-VLlainnya,Qwen2.5-VL(termasuk versi komersial dan open-source), serta seri modelQVQ: Minimum 4 gambar dan maksimum 512 gambar.Model lainnya: Minimum 4 gambar dan maksimum 80 gambar.
Saat Anda mengirimkan video sebagai satu file:
Ukuran:
Saat dikirimkan sebagai URL publik:
Seri
qwen3.5, seriQwen3-VL, danqwen-vl-max(termasukqwen-vl-max-latest,qwen-vl-max-2025-04-08, dan semua versi berikutnya): 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 diteruskan sebagai string terenkripsi Base64, panjang string tersebut harus kurang dari 10 MB.
Saat dikirimkan sebagai path file lokal (hanya untuk DashScope SDK): File video itu sendiri tidak boleh melebihi 100 MB.
Untuk mengompresi file, lihat Cara mengompresi gambar atau video sesuai ukuran yang diperlukan.
Durasi:
Seri
qwen3.5: 2 detik hingga 2 jam.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-VLlainnya danqwen-vl-max(termasukqwen-vl-max-latest,qwen-vl-max-2025-04-08, dan semua versi berikutnya): 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: Format yang didukung meliputi MP4, AVI, MKV, MOV, FLV, dan WMV.
Dimensi: Tidak ada batasan spesifik. Model secara otomatis menyesuaikan dimensi video menggunakan parameter
max_pixelsdanmin_pixels. Menggunakan dimensi video yang lebih besar tidak meningkatkan pemahaman.Batasan jumlah video: Anda dapat mengirimkan hingga 64 video.
Pemahaman audio: Model tidak memproses audio dari file video.
Metode input file
URL publik: Berikan URL yang dapat diakses publik menggunakan protokol HTTP atau HTTPS. Untuk stabilitas dan performa optimal, Anda dapat mengunggah file ke OSS guna memperoleh URL publik.
PentingUntuk memastikan model dapat mengunduh file dengan sukses, header respons 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, model tidak dapat mengunduh file tersebut.
Enkoding Base64: Konversi file menjadi string Base64-encoded, lalu kirimkan string tersebut.
Masukkan path file lokal (hanya untuk DashScope SDK): Tentukan path ke file lokal.
Untuk rekomendasi mengenai metode input file, lihat Cara memilih metode unggah file?
Penggunaan Produksi
Prapemrosesan gambar/video: Model pemahaman visual memiliki batasan ukuran untuk file input. Untuk metode kompresi, lihat Metode kompresi gambar atau video.
Pemrosesan file teks: Model pemahaman visual hanya mendukung format gambar dan tidak dapat memproses file teks secara langsung. Anda dapat menggunakan alternatif berikut:
Konversi file teks ke format gambar. Kami menyarankan menggunakan library pemrosesan gambar, seperti
Python'spdf2imageuntuk mengonversi file tersebut per halaman menjadi beberapa gambar berkualitas tinggi, lalu gunakan metode input multiple image untuk meneruskan gambar hasil konversi ke model.Qwen-Long mendukung pemrosesan file teks dan penguraian kontennya.
Toleransi kesalahan dan stabilitas
Penanganan timeout: Untuk panggilan non-streaming, jika model tidak selesai menghasilkan output dalam waktu 180 detik, biasanya terjadi error timeout. Untuk meningkatkan pengalaman pengguna, badan respons mencakup konten apa pun yang telah dihasilkan sebelum timeout. Jika header respons berisi
x-dashscope-partialresponse:true, ini menunjukkan bahwa timeout telah terjadi. Anda dapat menggunakan fitur partial mode (tersedia pada beberapa model) untuk menambahkan konten yang telah dihasilkan ke array messages dan mengirim ulang permintaan. Hal ini memungkinkan model melanjutkan pembuatan konten dari titik terakhir. Lihat Lanjutkan penulisan berdasarkan output yang belum lengkap.Mekanisme retry: Terapkan mekanisme retry panggilan API yang wajar, seperti exponential backoff, untuk menangani potensi fluktuasi jaringan atau ketidaktersediaan layanan temporary.
Penagihan dan Pembatasan laju
Penagihan: Total biaya didasarkan pada jumlah total token input dan output. Untuk harga input dan output, lihat Daftar model.
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 berpikir (thinking mode), proses penalaran model juga dihitung sebagai token output. Jika proses penalaran tidak ditampilkan dalam mode berpikir, harga mode non-berpikir berlaku.
Menghitung token gambar dan video: Gunakan kode berikut untuk memperkirakan konsumsi token untuk gambar atau video. Perkiraan ini hanya untuk referensi. Biaya aktual didasarkan pada respons API.
Lihat tagihan: Anda dapat melihat tagihan atau mengisi ulang akun di halaman Biaya dan Pengeluaran di Konsol Alibaba Cloud.
Pembatasan laju: Untuk batas laju model pemahaman visual, lihat Batas laju.
Kuota gratis(hanya Singapura): Model pemahaman visual menyediakan kuota gratis sebesar 1 juta token, berlaku selama 90 hari sejak tanggal Anda mengaktifkan Model Studio atau permintaan model Anda disetujui.
Referensi API
Untuk parameter input dan output model pemahaman visual, lihat Qwen.
FAQ
Metode unggah file
Bagaimana cara memampatkan gambar atau video agar sesuai ukuran yang diperlukan?
Setelah model menghasilkan hasil lokalisasi objek, bagaimana cara menggambar bingkai deteksi pada gambar asli?
Kode error
Jika pemanggilan model gagal dan mengembalikan pesan error, lihat Pesan error untuk resolusi.












