Sebagian besar model visi meminta Anda untuk memilih. Anda bisa mengirim gambar, atau Anda bisa mengirim banyak teks, tetapi model yang unggul dalam satu hal jarang unggul dalam hal lainnya.
GLM-5.3-Flash tidak membuat Anda harus memilih. Ini menerima gambar sebagai blok konten dalam jendela konteks 1.048.576 token, dalam permintaan yang sama dengan semua yang lain. Kombinasi tersebut, input gambar asli ditambah ruang satu juta token, membuka alur kerja yang tidak dapat diaktifkan oleh salah satu kemampuan secara mandiri.
Panduan ini mencakup payload, alur kerja yang layak dibangun, dan bagian-bagian yang masih belum terbukti.
Asli, bukan berbasis adaptor
Pekerjaan visi Z.ai sebelumnya dirilis sebagai model terpisah. GLM-5V-Turbo dan GLM-4.6V adalah titik akhir yang berbeda dengan ID model yang berbeda, dan menggunakannya berarti mengarahkan lalu lintas gambar ke tempat lain selain lalu lintas teks Anda. GLM-5.3, versi yang lebih besar dari model ini, mengarahkan visi melalui adaptor daripada menanganinya secara asli.
GLM-5.3-Flash adalah model pertama dalam seri GLM-5 di mana gambar adalah input kelas satu untuk model yang sama, dalam panggilan yang sama, berbagi konteks yang sama.
Secara praktis, itu berarti satu ID model, satu baris penagihan, satu set batas laju, dan, yang terpenting, satu jendela konteks yang menampung gambar dan teks Anda sekaligus. Jika Anda mempertahankan sesuatu di jalur yang lebih lama, panduan API GLM-5V-Turbo kami dan panduan GLM-4.6V mencakup model-model tersebut.
Payload
Input gambar bekerja melalui blok konten bertipe. Alih-alih content berupa string, ia menjadi sebuah array:
from openai import OpenAI
import os
client = OpenAI(
api_key=os.environ["ZAI_API_KEY"],
base_url="https://api.z.ai/api/paas/v4/",
)
response = client.chat.completions.create(
model="glm-5.3-flash",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What is wrong with this layout on mobile?"},
{
"type": "image_url",
"image_url": {"url": "https://example.com/mobile-view.png"},
},
],
}
],
)
print(response.choices[0].message.content)
Untuk gambar lokal atau pribadi, gunakan URL data base64:
import base64
from pathlib import Path
def image_block(path: str) -> dict:
data = base64.b64encode(Path(path).read_bytes()).decode("utf-8")
suffix = Path(path).suffix.lstrip(".").replace("jpg", "jpeg")
return {
"type": "image_url",
"image_url": {"url": f"data:image/{suffix};base64,{data}"},
}
Banyak gambar berarti banyak blok. Tidak ada array pintasan URL:
content = [
{"type": "text", "text": "Image 1 is the design. Image 2 is what we built. List the differences."},
image_block("design.png"),
image_block("built.png"),
]
Urutan itu penting. Model membaca array secara berurutan, jadi letakkan teks pembingkai sebelum gambar yang dirujuknya, dan labeli gambar secara eksplisit saat Anda mengirim beberapa. “Gambar 1 adalah desain” memberikan model sesuatu untuk menjadi acuan jawabannya.
Pengaturan dasar dan autentikasi dibahas dalam panduan API kami.
Alur kerja yang layak dibangun
Debugging Tangkapan Layar
Yang paling jelas, dan yang diandalkan Z.ai. Materi internalnya menggambarkan model mengamati “antarmuka, hasil rendering, dan umpan balik interaksi,” yang merupakan kerangka kerja agen pengkodean daripada deskripsi foto.
Kirim rendering yang rusak dan sumber yang menghasilkannya dalam permintaan yang sama:
content = [
{"type": "text", "text": "This component renders incorrectly below 400px. Here is the screenshot and the source."},
image_block("bug-mobile.png"),
{"type": "text", "text": f"```jsx\n{component_source}\n```"},
]
Model membuat penalaran tentang rendering yang sebenarnya daripada deskripsi Anda tentangnya. Ini menghilangkan langkah yang paling banyak kehilangan informasi dalam sebagian besar percakapan debugging front-end, yaitu manusia yang menerjemahkan masalah visual ke dalam kata-kata.
Perbandingan Desain
Dua gambar dan sebuah pertanyaan. Berguna dalam CI sebagai pemeriksaan lunak pada regresi visual, di mana alat diff memberitahu Anda piksel yang berubah dan model memberitahu Anda apakah perubahan itu penting.
Bersikaplah realistis tentang keandalan di sini. Model yang membandingkan tangkapan layar adalah penilaian, bukan pernyataan. Gunakan ini untuk menyaring diff mana yang harus dilihat oleh manusia, bukan untuk menghalangi deployment sendiri.
Dokumen di samping spesifikasinya
Di sinilah konteks 1M mendapatkan tempatnya. Masukkan spesifikasi panjang dalam prompt sebagai teks dan artefak yang dirender sebagai gambar, lalu tanyakan apakah keduanya sesuai.
content = [
{"type": "text", "text": f"Specification:\n\n{spec_text}"},
{"type": "text", "text": "Below is the generated report. Does it satisfy every requirement above? List gaps."},
image_block("generated-report.png"),
]
Spesifikasi 40 halaman dan gambar dalam satu prompt bukanlah sesuatu yang bisa Anda lakukan pada model dengan jendela 128K dan visi berbasis adaptor. Itulah kemampuan baru yang sebenarnya.
Catatan rilis Z.ai juga menyebutkan alur kerja dokumen kantor dan riset keuangan sebagai target untuk perilaku agen model.
Grafik dan dasbor
Membaca gambar grafik dan mengembalikan data terstruktur adalah tugas ekstraksi standar. Minta JSON dan validasi:
content = [
{"type": "text", "text": "Extract the series in this chart as JSON: [{label, values: [...]}]. Return only JSON."},
image_block("quarterly.png"),
]
Validasi output terhadap skema daripada mempercayainya begitu saja. Pembacaan grafik adalah jenis tugas di mana model menghasilkan angka yang salah dengan percaya diri, dan validasi struktural menangkap kesalahan bentuk bahkan ketika tidak dapat menangkap kesalahan nilai.
Untuk ekstraksi dokumen khusus, seorang spesialis mungkin masih mengalahkan generalis. GLM-OCR untuk pemahaman dokumen mencakup jalur tersebut.
Video dan file
Dokumentasi Z.ai mencantumkan input video dan file di samping gambar, menggunakan mekanisme blok konten yang sama.
Berhati-hatilah dengan ini. Dukungan video dalam model ini baru, didokumentasikan secara tipis, dan sedikit digunakan secara publik dibandingkan dengan input gambar, yang telah banyak dijalankan orang sekarang. Dukungan penyedia juga bervariasi: kemampuan model tidak sama dengan fitur yang tersedia di gateway mana pun yang Anda gunakan.
Jika video penting bagi aplikasi Anda, uji langsung dengan media Anda sendiri dan penyedia Anda sendiri sebelum Anda mendesainnya. Jangan memperlakukan satu baris dalam tabel kemampuan sebagai fitur yang berfungsi.
Di mana ia gagal
Multimodalitas asli tidak sama dengan multimodalitas yang andal. Empat mode kegagalan patut diketahui sebelum Anda merilis sesuatu.
Angka yang percaya diri dari grafik.
Membaca nilai dari garis yang diplot adalah tugas yang paling mungkin menghasilkan jawaban yang lancar, diformat dengan tepat, namun salah. Validasi skema menangkap output yang salah format; ia tidak dapat menangkap angka yang masuk akal tetapi sebenarnya salah. Jika angka-angka itu penting, dapatkan dari data yang mendasari daripada dari gambarnya.
Teks kecil.
Tangkapan layar UI yang padat, tabel dalam tangkapan beresolusi rendah, dan kode dalam gambar terkompresi semuanya mengalami degradasi. Pengurangan skala untuk menghemat token memperburuk hal ini, sehingga ada ketegangan langsung antara tuas biaya dan akurasi. Pangkas ke area yang diminati alih-alih mengecilkan seluruh bingkai.
Presisi spasial.
Model menggambarkan tata letak dengan baik dan mengukurnya dengan buruk. “Tombol menimpa input” biasanya benar. “Tombol terlalu jauh 12 piksel ke kiri” biasanya tidak.
Kebingungan urutan dan referensi.
Dengan beberapa gambar dalam satu permintaan, model dapat mengaitkan detail ke gambar yang salah. Labeli secara eksplisit dalam blok teks, dan jaga jumlahnya tetap rendah ketika presisi penting.
Tidak ada satu pun dari ini yang unik untuk GLM-5.3-Flash. Ini adalah batasan standar model bahasa visi, dan skor Indeks Intelijen 57 tidak mengecualikannya. Rancang alur kerja sehingga jawaban yang salah dapat ditangkap daripada ditindaklanjuti.
Biaya
Gambar mengkonsumsi token konteks dan ditagih sebagai input. Tidak ada biaya tambahan gambar terpisah.
Dengan harga daftar $0,15 per juta token input, atau $0,075 selama diskon peluncuran yang berlaku hingga 9 September 2026. Gambar beresolusi tinggi mengkonsumsi sejumlah token yang signifikan, jadi resolusi adalah tuas biaya: kecilkan skala sebelum mengirim kecuali detail halus adalah tujuan permintaan.
reasoning_effort default-nya max, yang menagih penalaran sebagai token output. Untuk ekstraksi langsung dari gambar, low biasanya merupakan pengaturan yang tepat dan secara material lebih murah. Rincian harga kami mencakup kedua tuas tersebut.
Menjaga biaya gambar tetap terkendali
Gambar ditagih sebagai token input, jadi resolusi adalah tuas biaya langsung, dan optimasi yang jelas bertentangan dengan catatan akurasi di atas.

Urutan operasi yang dapat diterapkan:
- Pangkas sebelum Anda menskala. Mengirim wilayah yang relevan pada resolusi penuh lebih baik daripada mengirim seluruh layar pada setengah resolusi. Anda kehilangan konteks yang tidak dibutuhkan model dan mempertahankan detail yang dibutuhkan.
- Sesuaikan resolusi dengan pertanyaan. “Apakah tata letak rusak?” bertahan terhadap downscaling agresif. “Apa isi pesan error ini?” tidak.
- Jangan mengirim ulang gambar yang tidak berubah. Dalam percakapan multi-giliran, gambar yang dikirim sekali sudah ada dalam konteks. Melampirkannya kembali di setiap giliran berarti membayarnya di setiap giliran.
- Atur
reasoning_effortdengan sengaja. Ini default kemax, dan penalaran ditagih sebagai output. Ekstraksi langsung jarang membutuhkannya.
Objek usage pada setiap respons memberi Anda jumlah token sebenarnya per panggilan, yang merupakan satu-satunya cara untuk mengetahui berapa biaya sebenarnya sebuah gambar daripada menebak dari ukuran filenya.
Menguji panggilan multimodal
Permintaan multimodal tidak menyenangkan untuk diuji secara manual. URL data base64 terdiri dari ribuan karakter, yang membuat perintah curl tidak terbaca dan secara efektif tidak mungkin untuk dijalankan ulang dengan mengedit. Respons adalah teks bebas, sehingga regresi mudah terlewatkan.

Dua kebiasaan membantu. Simpan satu set kecil gambar referensi dan jawaban yang diharapkan, sehingga Anda dapat mengetahui kapan perilaku bergeser. Dan validasi ekstraksi terstruktur terhadap skema daripada menilainya secara visual.
Apidog adalah rumah praktis untuk ini. Simpan payload gambar dalam permintaan tersimpan alih-alih perintah shell, jaga kunci API sebagai variabel lingkungan, dan lampirkan pernyataan ke JSON yang dikembalikan oleh prompt ekstraksi Anda. Ketika Anda beralih model atau penyedia memperbarui sesuatu, menjalankan kembali suite akan memberi tahu Anda apakah jalur visi masih berfungsi dengan baik daripada membiarkan Anda mengetahuinya dari pengguna.
FAQ
Apakah GLM-5.3 juga mendukung gambar? Tidak secara asli. GLM-5.3 mengarahkan visi melalui adaptor terpisah. Flash adalah yang multimodal secara asli, yang dibahas dalam perbandingan kami.
Berapa banyak gambar per permintaan? Beberapa, masing-masing sebagai blok image_url sendiri. Batas praktisnya adalah anggaran konteks Anda.
URL atau base64? Keduanya berfungsi. Gunakan URL publik saat gambar sudah di-hosting dan dapat dijangkau; gunakan base64 untuk gambar lokal atau pribadi.
Apakah ini menerima video? Z.ai mendokumentasikan input video, tetapi ini baru dan sedikit digunakan. Verifikasi terhadap media Anda sendiri dan penyedia terlebih dahulu.
Apakah gambar ditagih secara berbeda? Tidak ada biaya tambahan. Gambar mengkonsumsi token input, sehingga resolusi mempengaruhi biaya.
