Çoğu görüntü modeli sizden seçim yapmanızı ister. Bir görüntü gönderebilirsiniz ya da çok fazla metin gönderebilirsiniz, ancak birini iyi yapan model nadiren diğerini iyi yapar. GLM-5.3-Flash size seçim yaptırmaz. Görüntüleri, 1.048.576 tokenlık bir bağlam penceresi içinde, diğer her şeyle aynı istekte içerik blokları olarak kabul eder. Bu kombinasyon, yerel görüntü girişi artı bir milyon tokenlık alan, tek başına hiçbir yeteneğin sağlamadığı iş akışlarını açar. Bu kılavuz, veri yükünü, inşa etmeye değer iş akışlarını ve hala kanıtlanmamış kısımları kapsamaktadır.
Yerel, adaptör tabanlı değil
Z.ai'nin önceki görüntü çalışmaları ayrı modeller olarak gönderiliyordu. GLM-5V-Turbo ve GLM-4.6V, farklı model kimliklerine sahip ayrı uç noktalar olup, bunları kullanmak, görüntü trafiğini metin trafiğinizden başka bir yere yönlendirmek anlamına geliyordu. Bu modelin daha büyük kardeşi olan GLM-5.3, görüntüyü yerel olarak ele almak yerine adaptörler aracılığıyla yönlendirir.
GLM-5.3-Flash, GLM-5 serisinde görüntülerin aynı çağrıda, aynı bağlamı paylaşan aynı modele birinci sınıf bir girdi olduğu ilk modeldir.
Pratikte bu, bir model kimliği, bir faturalandırma satırı, bir oran sınırı seti ve en önemlisi, hem görüntünüzü hem de metninizi aynı anda tutan bir bağlam penceresi anlamına gelir. Eğer eski yolu koruyorsanız, GLM-5V-Turbo API kılavuzumuz ve GLM-4.6V kılavuzumuz bu modelleri kapsamaktadır.
Veri Yükü
Görüntü girişi, türlenmiş içerik blokları aracılığıyla çalışır. `content` bir dize olmak yerine bir dizi haline gelir:
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": "Bu düzende mobilde sorun ne?"},
{
"type": "image_url",
"image_url": {"url": "https://example.com/mobile-view.png"},
},
],
}
],
)
print(response.choices[0].message.content)
Yerel veya özel görüntüler için base64 veri URL'si kullanın:
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}"},
}
Birden fazla görüntü birden fazla blok anlamına gelir. URL'lerin kısayol dizisi yoktur:
content = [
{"type": "text", "text": "Resim 1 tasarımdır. Resim 2 bizim oluşturduğumuzdur. Farklılıkları listeleyin."},
image_block("design.png"),
image_block("built.png"),
]
Sıra önemlidir. Model diziyi sırayla okur, bu nedenle referans verdiği resimlerden önce çerçeveleyici metni koyun ve birden fazla gönderirken resimleri açıkça etiketleyin. "Resim 1 tasarımdır" modele cevabını dayandıracak bir şey verir.
Temel kurulum ve kimlik doğrulama, API kılavuzumuzda ele alınmıştır.
İnşa Etmeye Değer İş Akışları
Ekran Görüntüsü Hata Ayıklama
Bariz olan ve Z.ai'nin dayandığı şey. Kendi materyalleri, modelin "arayüzleri, render sonuçlarını ve etkileşim geri bildirimlerini" gözlemlediğini açıklıyor; bu, fotoğraf tanımlamadan çok kodlama ajanı çerçevesidir.
Hatalı render'ı ve onu üreten kaynak kodunu aynı istekte gönderin:
content = [
{"type": "text", "text": "Bu bileşen 400 pikselin altında yanlış render ediliyor. İşte ekran görüntüsü ve kaynak kodu."},
image_block("bug-mobile.png"),
{"type": "text", "text": f"```jsx\n{component_source}\n```"},
]
Model, sizin tanımınız yerine gerçek render hakkında akıl yürütür. Bu, çoğu ön uç hata ayıklama konuşmasındaki en kayıplı adımı, yani bir insanın görsel bir sorunu kelimelere çevirmesini ortadan kaldırır.
Tasarım Karşılaştırması
İki görüntü ve bir soru. Görsel regresyonlar için CI'da yumuşak bir kontrol olarak kullanışlıdır; burada bir fark aracı size piksellerin değiştiğini söylerken, bir model değişikliğin önemli olup olmadığını söyler.
Buradaki güvenilirlik konusunda gerçekçi olun. Ekran görüntülerini karşılaştıran bir model bir yargı kararıdır, bir iddia değil. Bir insan hangi farklara bakması gerektiğini önceliklendirmek için kullanın, bir dağıtımı tek başına engellemek için değil.
Belgeler ve Şartnameleri
İşte 1M bağlamın yerini kazandığı nokta. Bir uzun şartnameyi metin olarak ve render edilmiş bir yapıtı görüntü olarak prompt'a koyun, sonra bunların uyumlu olup olmadığını sorun.
content = [
{"type": "text", "text": f"Şartname:\n\n{spec_text}"},
{"type": "text", "text": "Aşağıda oluşturulan rapor bulunmaktadır. Yukarıdaki her gereksinimi karşılıyor mu? Eksikleri listeleyin."},
image_block("generated-report.png"),
]
40 sayfalık bir şartname ve tek bir prompt'ta bir görüntü, 128K'lık bir pencereye ve adaptör tabanlı görüntü yeteneğine sahip bir modelle yapamayacağınız bir şeydir. Bu, gerçek yeni yetenektir.
Z.ai'nin sürüm notları ayrıca ofis belgeleri ve finansal araştırma iş akışlarını da modelin ajans davranışının hedefleri olarak belirtmektedir.
Grafikler ve Panolar
Bir grafik görüntüsünü okumak ve yapılandırılmış veri döndürmek standart bir çıkarma görevidir. JSON isteyin ve doğrulayın:
content = [
{"type": "text", "text": "Bu grafikteki serileri JSON olarak çıkarın: [{label, values: [...]}]. Sadece JSON döndürün."},
image_block("quarterly.png"),
]
Çıktıyı güvenmek yerine bir şemaya karşı doğrulayın. Grafik okuma, bir modelin güvenle yanlış sayılar üreteceği türden bir görevdir ve yapısal doğrulama, değer hatalarını yakalayamasa bile şekil hatalarını yakalar.
Özel belge çıkarma için, bir uzman hala bir genelciyi yenebilir. Belge anlama için GLM-OCR bu yolu kapsar.
Video ve Dosyalar
Z.ai'nin dokümantasyonu, görüntülerle birlikte video ve dosya girişini de aynı içerik bloğu mekanizmasını kullanarak listelemektedir.
Buna dikkat edin. Bu modeldeki video desteği yeni, az belgelenmiş ve görüntü girişine kıyasla (birçok kişi tarafından zaten çalıştırılmıştır) halka açık olarak az kullanılmıştır. Sağlayıcı desteği de değişir: bir model yeteneği, hangi ağ geçidi aracılığıyla arama yaparsanız yapın, mevcut bir özellik ile aynı şey değildir.
Video uygulamanız için önemliyse, tasarımını yapmadan önce kendi medyanız ve kendi sağlayıcınızla doğrudan test edin. Bir yetenek tablosundaki bir satırı çalışan bir özellik olarak görmeyin.
Nerede Başarısız Olur
Yerel çok modluluk, güvenilir çok modluluk ile aynı değildir. Bir şey göndermeden önce bilmeniz gereken dört hata modu vardır.
Grafiklerden gelen kendinden emin sayılar. Çizilen bir çizgiden değer okumak, akıcı, hassas biçimlendirilmiş, ancak yanlış bir cevap üretme olasılığı en yüksek olan görevdir. Şema doğrulama hatalı çıktıyı yakalar; ancak sadece yanlış olan makul bir sayıyı yakalayamaz. Sayılar önemliyse, bunları bir resminden ziyade temel veriden alın.
Küçük metin. Yoğun UI ekran görüntüleri, düşük çözünürlüklü yakalamalardaki tablolar ve sıkıştırılmış görüntülerdeki kod, hepsi kalitesini düşürür. Token tasarrufu için küçültme bunu daha da kötüleştirir, bu nedenle maliyet kolu ile doğruluk arasında doğrudan bir gerilim vardır. Tüm çerçeveyi küçültmek yerine ilgi alanına kırpın.
Uzamsal hassasiyet. Modeller düzeni iyi tanımlar ancak kötü ölçer. "Düğme girişin üzerine biniyor" genellikle doğrudur. "Düğme 12 piksel çok solda" genellikle doğru değildir.
Sıra ve referans karışıklığı. Tek bir istekte birden fazla görüntü olduğunda, model bir detayı yanlış olana atfedebilir. Metin bloklarında bunları açıkça etiketleyin ve hassasiyet önemli olduğunda sayıyı düşük tutun.
Bunların hiçbiri GLM-5.3-Flash'e özgü değildir. Bunlar görüntü dil modellerinin standart sınırlamalarıdır ve 57 İstihbarat Endeksi puanı onu muaf tutmaz. İş akışını, yanlış bir cevabın üzerinde hareket edilmek yerine yakalanacak şekilde tasarlayın.
Maliyet
Görüntüler bağlam tokenlarını tüketir ve girdi olarak faturalandırılır. Ayrı bir görüntü ek ücreti yoktur.
Liste fiyatına göre, bir milyon girdi tokenı için 0,15 ABD Doları veya 9 Eylül 2026'ya kadar süren lansman indirimi boyunca 0,075 ABD Dolarıdır. Yüksek çözünürlüklü görüntüler önemli sayıda token tüketir, bu nedenle çözünürlük bir maliyet kaldıracıdır: ince detay isteğin amacı olmadıkça göndermeden önce ölçeklendirin.
`reasoning_effort` varsayılan olarak `max` değerindedir, bu da akıl yürütmeyi çıktı tokenı olarak faturalandırır. Bir görüntüden basit çıkarma için, `low` genellikle doğru ayardır ve maddi olarak daha ucuzdur. Fiyatlandırma dökümümüz her iki kaldıracı da kapsar.
Görüntü Maliyetlerini Kontrol Altında Tutmak
Görüntüler girdi tokenları olarak faturalandırıldığından, çözünürlük doğrudan bir maliyet kaldıracıdır ve açıkça yapılan optimizasyon yukarıdaki doğruluk notlarıyla çelişir.

Kullanışlı bir işlem sırası:
- Ölçeklemeden önce kırpın. İlgili bölgeyi tam çözünürlükte göndermek, tüm ekranı yarı ölçekte göndermekten daha iyidir. Modelin ihtiyacı olmayan bağlamı kaybeder, ancak ihtiyacı olan detayı korursunuz.
- Çözünürlüğü soruyla eşleştirin. "Düzen bozuk mu?" sorusu agresif küçültmelere dayanır. "Bu hata mesajı ne diyor?" sorusu ise dayanmaz.
- Değişmemiş görüntüleri tekrar göndermeyin. Çok turlu bir konuşmada, bir kez gönderilen bir görüntü zaten bağlamdadır. Her turda tekrar eklemek, her turda ücretini ödemek anlamına gelir.
- `reasoning_effort` değerini bilinçli olarak ayarlayın. Varsayılan olarak `max` değerindedir ve akıl yürütme çıktı olarak faturalandırılır. Basit çıkarma nadiren buna ihtiyaç duyar.
Her yanıttaki `usage` nesnesi, dosya boyutundan tahmin etmek yerine bir görüntünün gerçek maliyetinin ne olduğunu öğrenmenin tek yolu olan, çağrı başına gerçek token sayısını verir.
Çok Modlu Çağrıları Test Etme
Çok modlu istekleri elle test etmek tatsızdır. Bir base64 veri URL'si binlerce karakter uzunluğunda olduğundan, bir curl komutu okunamaz hale gelir ve düzenlenerek yeniden çalıştırılması neredeyse imkansızdır. Yanıtlar serbest biçimli metin olduğundan, regresyonları kaçırmak kolaydır.

İki alışkanlık yardımcı olur. Davranışın değiştiğini anlayabilmek için küçük, sabit bir referans görüntü ve beklenen yanıt kümesi tutun. Ve yapılandırılmış çıkarmayı gözle kontrol etmek yerine bir şemaya karşı doğrulayın.
Apidog bunun için pratik bir yuva sağlar. Görüntü yüklerini bir shell komutunda değil, kaydedilmiş bir istekte saklayın, API anahtarını bir ortam değişkeni olarak tutun ve çıkarma istemlerinizin döndürdüğü JSON'a onaylar ekleyin. Modelleri değiştirdiğinizde veya bir sağlayıcı bir şeyi güncellediğinde, paketi yeniden çalıştırmak, bir kullanıcıdan öğrenmek yerine görüntü yolunun hala doğru davrandığını size bildirir.
Sıkça Sorulan Sorular
GLM-5.3 de görüntüleri destekliyor mu? Yerel olarak değil. GLM-5.3, görüntüleri ayrı adaptörler aracılığıyla yönlendirir. Flash, yerel olarak çok modlu olandır, bu durum karşılaştırmamızda ele alınmıştır.
İstek başına kaç görüntü? Birden fazla, her biri kendi `image_url` bloğu olarak. Pratik sınır bağlam bütçenizdir.
URL mi yoksa base64 mü? Her ikisi de çalışır. Görüntü zaten barındırılıyorsa ve erişilebilir durumdaysa herkese açık bir URL kullanın; yerel veya özel görüntüler için base64 kullanın.
Video kabul ediyor mu? Z.ai video girişini belgeliyor, ancak bu yeni ve az kullanılmış bir özelliktir. Önce kendi medyanız ve sağlayıcınızla doğrulayın.
Görüntüler farklı mı faturalandırılıyor? Ek ücret yok. Girdi tokenlarını tüketirler, bu nedenle çözünürlük maliyeti etkiler.
