Uygulamanızda bir Büyük Dil Modeli (LLM) değiştirmek tek satırlık bir değişiklik, ancak çok daha büyük bir risktir. Model kimliği bir metin dizisidir. Bu dizenin değiştirdiği şeyler yanıt gecikmesi, token maliyeti, çıktı formatı kararlılığı, araç çağırma davranışı ve görüntü hattınızın hiç çalışıp çalışmadığıdır.
GLM-5.3-Flash bunu somutlaştırıyor. GLM-5.3'ten yaklaşık dokuz kat daha ucuz, GLM-5.3'ün desteklemediği görüntüleri doğal olarak kabul ediyor ve yaklaşık yarı hızda üretim yapıyor. Bunlar gerçek ödünleşimlerdir ve hangi tarafta olduğunuzu bilmenin tek yolu, kendi isteklerinizi her ikisine de karşı çalıştırmaktır.
Bu kılavuz, Apidog'da GLM-5.3-Flash API'si için yeniden kullanılabilir bir test koleksiyonu oluşturur: metin çağrıları, görüntü çağrıları, araç çağırma, onaylar ve daha büyük modele karşı bir karşılaştırma çalıştırması.
Neden sadece curl kullanmayalım?
Bu uç noktayı curl ile kesinlikle test edebilirsiniz ve API kılavuzumuz tam olarak bunu göstermektedir. İlk çağrının ötesine geçtiğinizde iki şey bozulur.
Base64 görüntü yükleri. Bir ekran görüntüsü için veri URL'si binlerce karakterdir. Bunu bir terminale yapıştırmak, okuyamayacağınız, düzenleyemeyeceğiniz ve yarın tekrar çalıştıramayacağınız bir komut üretir. Çok modlu test, kabuk geçmişinin uygulanabilir bir araç olmaktan çıktığı noktadır.
Hiçbir şey doğrulanmaz. Bir curl yanıtı ekranda bir metindir. Çağrının başarılı olduğunu söyler, ancak yanıtın uygulamanızın okuduğu alanları hala içerip içermediğini söylemez. Modelleri değiştirdiğinizde, bu ayrım testin tüm amacıdır.
Kaydedilmiş bir koleksiyon her ikisini de düzeltir. Yük, düzenleyebileceğiniz bir istekte yaşar ve onaylar her seferinde çalışır.
Ortamı kurun
Çalıştırmalar arasında değişen değerlerle bir ortam oluşturun. Model kimliğini bir değişken olarak tutmak önemli bir kısımdır, çünkü tüm koleksiyonu daha sonra farklı bir modele yönlendirmenizi sağlar.
| Değişken | Değer |
|---|---|
base_url |
https://api.z.ai/api/paas/v4 |
api_key |
sizin Z.ai anahtarınız |
model |
glm-5.3-flash |
Anahtarı istek başlıklarına yapıştırmak yerine bir ortam değişkeni olarak saklayın. Dışa aktardığınız veya bir ekip arkadaşınızla paylaştığınız hiçbir şeyin dışında kalır, bu da ilk kez birisi bir koleksiyonu kaydettiğinde göründüğünden daha önemlidir.
İstek 1: metin tamamlama
{{base_url}}/chat/completions adresine bir POST isteği oluşturun.
Başlıklar:
Authorization: Bearer {{api_key}}
Content-Type: application/json
Gövde:
{
"model": "{{model}}",
"messages": [
{"role": "user", "content": "Tam olarak şöyle yanıtla: OK"}
],
"reasoning_effort": "low"
}
reasoning_effort'a dikkat edin. Bu modelde varsayılan olarak max değerine ayarlanmıştır, bu da akıl yürütmeyi çıktı tokenları olarak faturalandırır. Bir bağlantı kontrolü için bu saf bir israftır, bu yüzden burada low olarak ayarlayın.
Yanıt üzerinde onaylar ekleyin:
- Durum kodu
200'e eşit choices[0].message.contentmevcutchoices[0].finish_reasonstop'a eşitusage.total_tokensmevcut
finish_reason onayı, insanların atladığı ve sonra pişman olduğu şeydir. length değeri, yanıtın tamamlanmak yerine çıktı sınırında kesildiğini gösterir. Bu model için maksimum çıktı değeri kaynaklar arasında tutarsız olduğundan, kesintiyi açıkça yakalamak tek satırlık bir işe değer.
İstek 2: görüntü çağrısı
Bu, tüm kurulumu haklı çıkaran istek ve GLM-5.3'ün doğal olarak sahip olmadığı yetenektir.
Aynı uç nokta, farklı gövde şekli. content, yazılı bloklardan oluşan bir dizi haline gelir:
{
"model": "{{model}}",
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "Bu görseldeki baskın şeklin rengi nedir? Tek kelimeyle cevapla."},
{"type": "image_url", "image_url": {"url": "{{test_image_url}}"}}
]
}
],
"reasoning_effort": "low"
}
Ortamınıza, doğru cevabını bildiğiniz, kararlı, herkese açık bir görseli işaret eden test_image_url'yi ekleyin. Sabit bir görsele karşı deterministik bir soru sormak, bunu bir demo yerine bir regresyon testi yapar.
Yerel görseller için aynı alan bir base64 veri URL'si alır. İstek gövdesinin okunabilir kalması için bunu bir ortam değişkeni olarak saklayın:
data:image/png;base64,iVBORw0KGgo...
Onaylar:
- Durum kodu
200'e eşit choices[0].message.contentbilinen cevabınızı içeriyorusage.prompt_tokens, yalnızca metin isteğinin sayısından daha büyük
Bu son onay, faydalı bir kanaryadır. Görseller girdi tokenlarını tüketir, bu nedenle istem token sayısı artmazsa, görsel aslında işlenmemiştir ve resminizi sessizce yok sayarken 200 döndüren bir isteğiniz olur. Bu arıza, kontrol olmadan görünmezdir.
Görsel yolu ve arıza modları hakkında daha fazla bilgi için GLM-5.3-Flash görsel kılavuzumuza bakın.
İstek 3: araç çağırma
Uygulamanız fonksiyon çağırma kullanıyorsa, bunu açıkça test edin. Araç çağırma formatı, herhangi bir model entegrasyonunun en sürüme duyarlı kısmıdır ve bir sağlayıcı güncellemesinden sonra bozulması en muhtemel şeydir.
{
"model": "{{model}}",
"messages": [
{"role": "user", "content": "Checkout-api servisi sağlıklı mı?"}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_deployment_status",
"description": "Adı belirtilen bir dağıtımın mevcut durumunu döndürür.",
"parameters": {
"type": "object",
"properties": {
"service": {"type": "string", "description": "Servis adı."}
},
"required": ["service"]
}
}
}
]
}
Onaylar:
choices[0].message.tool_callsmevcut ve boş değilchoices[0].message.tool_calls[0].function.nameget_deployment_status'a eşitchoices[0].finish_reasontool_calls'a eşit
Sadece bir araç çağrısının varlığı yerine fonksiyon adını onaylamak, daha ince bir hatayı yakalar: yanlış aracı çağıran bir model. Tanımlı tek bir araçla bu olası değildir, ancak onay hiçbir şeye mal olmaz ve daha fazlasını eklediğinizde doğru kalır.
Kendi sahip olduğunuz bir API'den araç tanımları oluşturuyorsanız, bir OpenAPI spesifikasyonunu aracı araçlarına dönüştürmek, şemaları elle yazmadan bunu yapmayı kapsar.
GLM-5.3 ile karşılaştırma
Model kimliğini bir ortam değişkenine koymanın karşılığı buradadır.
Ortamınızı kopyalayın, model'i glm-5.3 olarak değiştirin ve aynı koleksiyonu çalıştırın. Karşılaştırılacak üç şey:
Doğruluk. Onaylar hala geçiyor mu? Görüntü isteği geçmeyecektir, çünkü GLM-5.3 görüntüleri doğal olarak almaz. Bu bir bulgudur, bozuk bir test değil.
Gecikme. Apidog, istek başına yanıt süresini raporlar. GLM-5.3'ün daha uzun çıktılarda daha hızlı bitirmesini bekleyin, çünkü Flash'ın 49'una karşılık saniyede yaklaşık 86 token üretir.
Maliyet. usage nesnesi, çağrı başına prompt_tokens ve completion_tokens verir. Her modelin oranıyla çarpın ve birleştirilmiş bir pazarlama rakamı yerine gerçek istek başına maliyet karşılaştırmasına sahip olursunuz. Fiyatlandırma dökümümüz güncel oranları içerir ve tam model karşılaştırması her birinin nerede kazandığını kapsar.
Akıl yürütme çabası ayarları arasında completion_tokens'ı yakından izleyin. reasoning_effort varsayılan max değerindeyken, akıl yürütme tokenları çıktı olarak faturalandırılır, bu nedenle kısa görünen bir yanıtın arkasında büyük bir tamamlama sayısı olabilir. Aynı istemi low, high ve max'te çalıştırmak ve token sayılarını okumak, iş yükünüzün gerçekten neye ihtiyacı olduğuna karar vermenin en hızlı yoludur.
Yerel dağıtımı test etme
Ağırlıkları kendi sunucunuzda barındırıyorsanız, hem vLLM hem de SGLang OpenAI uyumlu uç noktalar sunar. base_url'yi sunucunuza değiştirin ve aynı koleksiyonu çalıştırın.

Bu, süitin en yüksek değerli kullanımıdır. Kuantize edilmiş bir derleme temel bir sohbet testini geçebilir ve yine de araç şemalarınızı yanlış işleyebilir veya görüntü girişinde bozulabilir ve bunlar tam da üretimde ortaya çıkan arızalardır, hızlı bir kontrolde değil. Yerel çalıştırma kılavuzumuz dağıtım tarafını kapsar.
Sürekli Entegrasyona (CI) koyun
Koleksiyon kararlı hale geldiğinde, onu bir programa göre veya işlem hattınızda çalıştırın. Faydalı tetikleyiciler:
- Bir model geçişinden önce, onay veya red sinyali olarak.
- Bir program dahilinde, size bildirilmeyen sağlayıcı tarafı değişikliklerini yakalamak için.
- Bağımlılık güncellemelerinden sonra, çünkü SDK değişiklikleri istek serileştirmesini değiştirebilir.
Model sağlayıcıları, kararlı kimliklerin arkasındaki modelleri günceller. Planlı bir çalıştırma, davranışın değiştiğini bir kullanıcıdan duymak yerine, sizin öğrenmenizi sağlar.
Mutlu yolun ötesinde ne test etmeli
Temel testler geçtikten sonra eklemeye değer birkaç durum:
- Gerçekten kullandığınız uzunlukta uzun bağlamlı bir istek. 5K token davranışıyla 500K token davranışı arasında bir ilişki yoktur.
- Hata yönetiminizin çalıştığını doğrulamak için hatalı girdi.
- Yeniden deneme mantığınızın çalıştığını doğrulamak için, tetikleyebilirseniz, bir hız limiti yanıtı.
- Uygulamanızın bir parçasıysa, tek bir istekte birden fazla görüntü. Her görüntü kendi
image_urlbloğuna ihtiyaç duyar. - Kullanıyorsanız akış, çünkü yanıt şekli standart bir tamamlama işleminden farklıdır.
Sonuç
Buradaki değer tek tek istekler değil, tekrarlanabilir olmalarıdır. Fiyatlar 9 Eylül'de değiştiğinde, Z.ai bir sonraki revizyonu çıkardığında veya birisi tamamen farklı bir sağlayıcıya geçmeyi önerdiğinde, otuz saniyede yeniden test edebileceğiniz bir model seçimi, tekrar değerlendirebileceğiniz bir karardır.
Apidog'u kullanmaya başlamak ücretsizdir ve OpenAI uyumlu bir şemayı içe aktarmak, bu kurulumun çoğunu her isteği elle oluşturmadan yapmanızı sağlar. Elde ettiğiniz koleksiyon, bir sonraki model değişimini bir sıçrama yerine bir fark haline getiren şeydir.
SSS
Ücretli bir Apidog planına ihtiyacım var mı? Hayır. Ortam değişkenleri ve onayları olan bir koleksiyon ücretsiz katmanda çalışır.
Okunamayan bir istek gövdesi olmadan base64 görüntülerini nasıl test ederim? Veri URL'sini bir ortam değişkeni olarak saklayın ve gövdede {{test_image_url}} olarak referans verin.
Kodlama planı uç noktasını aynı şekilde test edebilir miyim? Evet. base_url'yi https://api.z.ai/api/coding/paas/v4 olarak değiştirin. Uç noktanın, Claude Code ve Cline kılavuzumuzda belirtildiği gibi standart API'den farklı olduğuna dikkat edin.
Bu testler diğer sağlayıcılara karşı çalışır mı? Çoğunlukla. OpenRouter, Cloudflare Workers AI ve Vercel AI Gateway hepsi OpenAI uyumlu yüzeyler sunar. base_url'yi ve model kimliği ad alanını değiştirin.
Deterministik olmayan bir yanıtı nasıl onaylarım? Tam metin yerine yapı ve kısıtlamaları onaylayın: alan varlığı, tipler, token sayıları, finish_reason ve bilinen bir cevabı olan sorular için alt dize içerip içermediği.
