GLM-5V-Turbo API Nasıl Kullanılır?

Ashley Innocent

Ashley Innocent

2 April 2026

GLM-5V-Turbo API Nasıl Kullanılır?

enterprise.banner.title

enterprise.banner.feature1

enterprise.banner.feature2

enterprise.banner.feature3

enterprise.banner.ctaB

ÖZET

GLM-5V-Turbo, ZhipuAI'ın 200K bağlam penceresine, 128K maksimum çıkışa ve görüntüler, videolar, metinler ve dosya girdileri için yerel desteğe sahip çok modlu bir görsel kodlama modelidir. Design2Code kıyaslamasında 94.8 puan aldı (Claude Opus 4.6'nın 77.3'üne karşılık) ve 1.20$/M giriş belirteci, 4$/M çıkış belirteci maliyeti vardır. Bu rehber, görsel tabanlı kodlama görevleri için kurulumu, API entegrasyonunu ve pratik örnekleri kapsar.

Giriş

ZhipuAI (Z.ai olarak faaliyet göstermektedir) GLM-5V-Turbo'yu 1 Nisan 2026'da piyasaya sürdü. Bu, girdinin bir görüntü, ekran görüntüsü veya video olduğu ve çıktının çalışan kod olduğu, görsel tabanlı kodlama görevleri için özel olarak oluşturulmuş ilk modelidir.

ZhipuAI GLM-5V-Turbo modeline genel bakış

Model, GLM-5 (yalnızca metin, 744 milyar parametre) ve GLM-5-Turbo'yu (optimize edilmiş metin kodlama) içeren bir ailede yer almaktadır. GLM-5V-Turbo, bir CogViT görsel kodlayıcı ve Çoklu Belirteç Tahmini (MTP) mimarisi kullanarak Turbo varyantının üzerine yerel çok modlu anlayış ekler.

GLM-5V-Turbo teknik mimarisi

Öne çıkan rakam: modellerin UI maketlerini HTML/CSS olarak yeniden ürettiği Design2Code'da 94.8. Claude Opus 4.6 aynı testte 77.3 puan aldı. Bu, görsel tasarımları koda dönüştürme gibi belirli bir görevde %22'lik bir fark anlamına geliyor.

Bu rehber size GLM-5V-Turbo API'sini nasıl çağıracağınızı, görüntü ve video göndereceğinizi, düşünme modunu etkinleştireceğinizi, yanıtları nasıl akışa alacağınızı, işlev çağrısını nasıl kullanacağınızı ve entegrasyonunuzu Apidog ile nasıl test edeceğinizi gösterir.

düğme

GLM-5V-Turbo neler yapabilir

Temel özellikler

Özellik Değer
Bağlam penceresi 200K belirteç (202,752)
Maksimum çıkış 128K belirteç (131,072)
Girdi modaliteleri Görüntü, video, metin, dosya (PDF, Word)
Çıkış modalitesi Metin
Girdi fiyatlandırması Milyon belirteç başına $1.20
Çıkış fiyatlandırması Milyon belirteç başına $4.00
Önbellek okuma fiyatlandırması Milyon belirteç başına $0.24
Yayın tarihi 1 Nisan 2026
API uç noktası https://api.z.ai/api/paas/v4/chat/completions

Desteklenen yetenekler

Öne çıktığı alanlar

GLM-5V-Turbo, dar ama yüksek değerli bir kategori için özel olarak tasarlanmıştır: görsel içeriğe bakıp ondan kod yazmak. Temel kullanım durumları:

Tasarım maketlerinden ön uç yeniden oluşturma. Bir Figma ekran görüntüsü veya tasarım bileşeni verin ve piksel hassasiyetinde HTML/CSS üretir. 94.8 Design2Code puanı bunu somut sayılarla desteklemektedir.

GUI otonom keşif. Model, otonom web sitesi gezinmesi, form doldurma ve etkileşim testi için OpenClaw (ZhipuAI'nin aracı çerçevesi) ile entegre olur. GUI işlemi için AndroidWorld ve WebVoyager kıyaslamalarında iyi performans gösterdi.

Ekran görüntülerinden kod hata ayıklama. Bozuk bir UI'ın ekran görüntüsünü gönderin ve model oluşturma sorunlarını, düzen hatalarını ve CSS çakışmalarını tanımlar.

Belge çıkarma. Yapılandırılmış verileri, tabloları ve metinleri çıkarmak için PDF'leri, Word belgelerini ve taranmış görüntüleri işleyin.

Öne çıkmadığı alanlar

Salt metin kodlamada (görsel girdi olmadan), Claude ve GPT-5, arka uç görevleri, depo keşfi ve sistem mimarisi genelinde hala lider konumdadır. GLM-5V-Turbo'nun gücü, özellikle görsel girdinin kodlama görevini yönlendirdiği durumlardadır.

Başlarken: API kurulumu

API anahtarınızı alın

  1. z.ai adresinden kaydolun
  2. Panonuzdaki API anahtarları bölümüne gidin
  3. Yeni bir anahtar oluşturun
  4. Güvenli bir şekilde saklayın; bunu bir Taşıyıcı belirteç olarak ileteceksiniz
ZhipuAI API anahtarı nasıl alınır

Temel yapılandırma

Tüm istekler şuraya gider:

POST https://api.z.ai/api/paas/v4/chat/completions

Gerekli başlıklar:

Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

API, OpenAI uyumlu kuralları takip eder, bu nedenle OpenAI veya Anthropic API'leriyle çalıştıysanız, istek formatı tanıdık gelecektir.

cURL ile ilk isteğinizi gönderme

Temel görüntü analizi

curl -X POST https://api.z.ai/api/paas/v4/chat/completions \
  -H "Authorization: Bearer $ZAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "glm-5v-turbo",
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "type": "image_url",
            "image_url": {
              "url": "https://example.com/dashboard-mockup.png"
            }
          },
          {
            "type": "text",
            "text": "Bu kontrol paneli kullanıcı arayüzünü duyarlı HTML ve CSS olarak yeniden oluşturun. Tailwind CSS sınıflarını kullanın."
          }
        ]
      }
    ]
  }'

Düşünme modu etkinleştirildiğinde

Düşünme modu, modelin yanıtını oluşturmadan önce bir akıl yürütme adımı ekler. Bu, ek çıktı belirteçleri maliyetiyle karmaşık kodlama görevlerinde doğruluğu artırır.

curl -X POST https://api.z.ai/api/paas/v4/chat/completions \
  -H "Authorization: Bearer $ZAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "glm-5v-turbo",
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "type": "image_url",
            "image_url": {
              "url": "https://example.com/login-form-screenshot.png"
            }
          },
          {
            "type": "text",
            "text": "Bu giriş formunda mobil cihazlarda bir düzen hatası var. Sorunu belirleyin ve düzeltilmiş CSS'i sağlayın."
          }
        ]
      }
    ],
    "thinking": {
      "type": "enabled"
    }
  }'

Düşünme modu etkinleştirildiğinde, yanıt standart `content` alanının yanı sıra `reasoning_content` içerir. Akıl yürütme belirteçleri, modelin nihai yanıtı üretmeden önceki adım adım analizini gösterir.

Python SDK entegrasyonu

Kurulum

pip install zai-sdk

Veya belirli bir sürümü sabitleyin:

pip install zai-sdk==0.0.4

Temel görüntüden koda dönüştürme

from zai import ZaiClient

client = ZaiClient(api_key="your-api-key")

response = client.chat.completions.create(
    model="glm-5v-turbo",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://example.com/pricing-page.png"
                    }
                },
                {
                    "type": "text",
                    "text": "Bu fiyatlandırma sayfası tasarımını Tailwind CSS kullanarak bir React bileşenine dönüştürün. Mobil, tablet ve masaüstü için duyarlı kesme noktalarını ekleyin."
                }
            ]
        }
    ],
    thinking={"type": "enabled"}
)

print(response.choices[0].message.content)

Yanıtları akışa alma

Uzun kod oluşturma görevleri (tüm sayfa düzenleri, çok bileşenli kullanıcı arayüzleri) için, akış, tam yanıtı beklemeden size gerçek zamanlı çıktı verir:

from zai import ZaiClient

client = ZaiClient(api_key="your-api-key")

response = client.chat.completions.create(
    model="glm-5v-turbo",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://example.com/full-page-design.png"
                    }
                },
                {
                    "type": "text",
                    "text": "Bu açılış sayfasının tamamını gömülü CSS ve JavaScript içeren tek bir HTML dosyası olarak oluşturun. Akıcı kaydırma, sabit bir gezinme çubuğu ve çalışan bir iletişim formu ekleyin."
                }
            ]
        }
    ],
    stream=True
)

for chunk in response:
    delta = chunk.choices[0].delta
    # Akıl yürütme belirteçlerini yazdır (düşünme modu)
    if delta.reasoning_content:
        print(f"[thinking] {delta.reasoning_content}", end="", flush=True)
    # Oluşturulan kodu yazdır
    if delta.content:
        print(delta.content, end="", flush=True)

Çoklu görüntü girdisi

Tek bir istekte birden fazla görüntü gönderin. Bu, tasarımları karşılaştırmak, maketlerin yanında stil referansları sağlamak veya hata ayıklama için önceki/sonraki ekran görüntülerini göndermek için kullanışlıdır:

response = client.chat.completions.create(
    model="glm-5v-turbo",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": {"url": "https://example.com/design-mockup.png"}
                },
                {
                    "type": "image_url",
                    "image_url": {"url": "https://example.com/current-implementation.png"}
                },
                {
                    "type": "text",
                    "text": "İlk görüntü tasarım maketi. İkincisi mevcut uygulama. Tüm görsel farklılıkları belirleyin ve maketle eşleşmesi için CSS düzeltmeleri sağlayın."
                }
            ]
        }
    ]
)

İşlev çağırma

GLM-5V-Turbo, modelin harici eylemler talep edebileceği aracılı iş akışlarına entegre etmenizi sağlayan işlev çağırmayı destekler:

tools = [
    {
        "type": "function",
        "function": {
            "name": "save_component",
            "description": "Oluşturulan bir React bileşenini dosyaya kaydet",
            "parameters": {
                "type": "object",
                "properties": {
                    "filename": {
                        "type": "string",
                        "description": "Bileşen dosya adı, örn. 'PricingCard.tsx'"
                    },
                    "code": {
                        "type": "string",
                        "description": "Bileşenin tam kaynak kodu"
                    },
                    "dependencies": {
                        "type": "array",
                        "items": {"type": "string"},
                        "description": "Bu bileşenin gerektirdiği npm paketleri"
                    }
                },
                "required": ["filename", "code"]
            }
        }
    },
    {
        "type": "function",
        "function": {
            "name": "take_screenshot",
            "description": "Oluşturulan çıktıyı doğrulamak için bir URL'nin ekran görüntüsünü alın",
            "parameters": {
                "type": "object",
                "properties": {
                    "url": {
                        "type": "string",
                        "description": "Ekran görüntüsü alınacak URL"
                    },
                    "viewport": {
                        "type": "string",
                        "description": "Görünüm alanı boyutu: 'mobil', 'tablet' veya 'masaüstü'"
                    }
                },
                "required": ["url"]
            }
        }
    }
]

response = client.chat.completions.create(
    model="glm-5v-turbo",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": {"url": "https://example.com/card-design.png"}
                },
                {
                    "type": "text",
                    "text": "Bu kart tasarımından bir React bileşeni oluşturun ve kaydedin. Ardından doğrulamak için bir ekran görüntüsü alın."
                }
            ]
        }
    ],
    tools=tools,
    tool_choice="auto"
)

Java SDK entegrasyonu

Maven bağımlılığı

<dependency>
    <groupId>ai.z.openapi</groupId>
    <artifactId>zai-sdk</artifactId>
    <version>0.3.0</version>
</dependency>

Gradle

implementation 'ai.z.openapi:zai-sdk:0.3.0'

Temel istek

import ai.z.openapi.ZaiClient;
import ai.z.openapi.model.*;
import java.util.Arrays;

public class GLM5VTurboExample {
    public static void main(String[] args) {
        String apiKey = System.getenv("ZAI_API_KEY");

        ZaiClient client = ZaiClient.builder().ofZAI()
            .apiKey(apiKey)
            .build();

        ChatCompletionCreateParams request =
            ChatCompletionCreateParams.builder()
                .model("glm-5v-turbo")
                .messages(Arrays.asList(
                    ChatMessage.builder()
                        .role(ChatMessageRole.USER.value())
                        .content(Arrays.asList(
                            MessageContent.builder()
                                .type("image_url")
                                .imageUrl(ImageUrl.builder()
                                    .url("https://example.com/mockup.png")
                                    .build())
                                .build(),
                            MessageContent.builder()
                                .type("text")
                                .text("Bu tasarımı Tailwind CSS ile HTML'e dönüştürün.")
                                .build()
                        ))
                        .build()
                ))
                .build();

        ChatCompletionResponse response =
            client.chat().createChatCompletion(request);

        System.out.println(response.getChoices()
            .get(0).getMessage().getContent());
    }
}

Java'da akış

ChatCompletionCreateParams streamRequest =
    ChatCompletionCreateParams.builder()
        .model("glm-5v-turbo")
        .stream(true)
        .messages(Arrays.asList(
            ChatMessage.builder()
                .role(ChatMessageRole.USER.value())
                .content(Arrays.asList(
                    MessageContent.builder()
                        .type("image_url")
                        .imageUrl(ImageUrl.builder()
                            .url("https://example.com/dashboard.png")
                            .build())
                        .build(),
                    MessageContent.builder()
                        .type("text")
                        .text("Bu kontrol panelini bir React bileşeni olarak oluşturun.")
                        .build()
                ))
                .build()
        ))
        .build();

ChatCompletionResponse streamResponse =
    client.chat().createChatCompletionStream(streamRequest);

streamResponse.getFlowable().subscribe(
    data -> System.out.print(data),
    error -> System.err.println("Hata: " + error.getMessage()),
    () -> System.out.println("\n[Tamamlandı]")
);

OpenAI uyumlu uç noktayı kullanma

Z.ai API'si OpenAI kurallarını takip eder, bu nedenle OpenAI Python istemcisini özel bir temel URL ile kullanabilirsiniz:

from openai import OpenAI

client = OpenAI(
    api_key="your-zai-api-key",
    base_url="https://api.z.ai/api/paas/v4"
)

response = client.chat.completions.create(
    model="glm-5v-turbo",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://example.com/wireframe.png"
                    }
                },
                {
                    "type": "text",
                    "text": "Bu tel çerçeveyi Composition API ile çalışan bir Vue 3 bileşenine dönüştürün."
                }
            ]
        }
    ]
)

print(response.choices[0].message.content)

Bu, OpenAI uyumlu API'leri destekleyen herhangi bir aracın, Apidog dahil, Z.ai temel URL'sini işaret ederek GLM-5V-Turbo'ya bağlanabileceği anlamına gelir.

Apidog ile GLM-5V-Turbo API çağrılarını test etme

GLM-5V-Turbo'yu uygulamanıza entegre etmeden önce, API çağrılarınızı Apidog ile etkileşimli olarak test edin. Bu, kodda ham JSON yüklerini hata ayıklamaktan sizi kurtarır.

GLM-5V-Turbo API'sini test etmek için Apidog'u kullanın

Uç noktayı kurun

  1. Apidog'u açın ve yeni bir istek oluşturun
  2. Metodu POST olarak ve URL'yi https://api.z.ai/api/paas/v4/chat/completions olarak ayarlayın
  3. Authorization: Bearer YOUR_KEY başlığını ekleyin
  4. Content-Type: application/json olarak ayarlayın

Çok modlu istek gövdelerini görsel olarak oluşturun

Apidog'un JSON düzenleyicisi, JSON'u elle yazmadan image_url ve text içerik bloklarıyla iç içe messages dizisini oluşturmanıza olanak tanır. Şunları yapabilirsiniz:

Model yanıtlarını karşılaştırın

GLM-5V-Turbo'yu diğer görsel modellerle (Claude, GPT-4o, Gemini) değerlendirirken, aynı görüntüyü birden fazla uç noktaya göndermek ve çıktıları yan yana karşılaştırmak için Apidog'un koleksiyon çalıştırıcısını kullanın. Bu, hangi modelin en doğru HTML/CSS'i ürettiğini doğrulamak istediğiniz Design2Code görevleri için özellikle kullanışlıdır.

Yanıt şemalarını doğrulayın

GLM-5V-Turbo'nun akış yanıtları hem reasoning_content hem de content alanlarını içerir. Apidog'un yanıt doğrulayıcısı, uygulamanızın her iki alanı da doğru şekilde işlediğini, bir alanın boş olduğu uç durumlar da dahil olmak üzere kontrol edebilir.

GLM-5V-Turbo entegrasyonunuzu test etmeye başlamak için Apidog'u indirin.

Diğer görsel modellerle fiyatlandırma karşılaştırması

Model Girdi (1 milyon belirteç başına) Çıktı (1 milyon belirteç başına) Bağlam penceresi Design2Code puanı
GLM-5V-Turbo $1.20 $4.00 200K 94.8
Claude Opus 4.6 $15.00 $75.00 200K 77.3
Claude Sonnet 4.6 $3.00 $15.00 200K Yok
GPT-4o $2.50 $10.00 128K Yok
Gemini 3 Pro $1.25 $5.00 1M Yok

GLM-5V-Turbo, görsel tabanlı kodlama görevleri için en ucuz seçenektir. Claude Opus 4.6'dan %92 daha az girdi belirteci ve %94.7 daha az çıktı belirteci maliyetine sahipken, Design2Code'da %22 daha yüksek puan alır.

Dezavantajı: Claude ve GPT-5 daha geniş kodlama görevlerini daha iyi yönetir. İş akışınız özellikle "görüntü girişi, kod çıkışı" ise, GLM-5V-Turbo en güçlü fiyat-performans oranını sunar.

Mimari: perde arkasında nasıl çalışır

CogViT görsel kodlayıcı

GLM-5V-Turbo, mekansal hiyerarşileri ve ince taneli görsel ayrıntıları korumak için tasarlanmış bir görsel dönüştürücü olan CogViT'i kullanır. Standart görsel kodlayıcılar, görüntüleri düz özellik vektörlerine sıkıştırarak mekansal ilişkileri kaybeder. CogViT, CSS ızgara yerleşimi, flexbox hizalaması ve piksel hassasiyetinde boşluk bırakma gibi düzen hassasiyetli görevler için önemli olan konum bilgilerini korur.

Çoklu Belirteç Tahmini (MTP)

MTP mimarisi, her ileri geçişte tek tek belirteçler yerine birden fazla belirteç tahmin eder. Kod üretimi için bu, uzun HTML, CSS veya JavaScript dizileri çıkarırken daha hızlı çıkarım anlamına gelir. Model belirteç belirteç üretmez; öbekler halinde tahmin eder, bu da 128K maksimum çıktı penceresindeki gecikmeyi azaltır.

30'dan fazla görevli ortak pekiştirmeli öğrenme

ZhipuAI, GLM-5V-Turbo'yu aynı anda 30'dan fazla görevde pekiştirmeli öğrenmeyle eğitti: STEM akıl yürütme, görsel temel oluşturma, video analizi, GUI işlemi ve kodlama. Bu ortak optimizasyon, modelin tek bir görev türüne aşırı uymasını engellerken, görsel kodlama iş akışlarının tüm yelpazesinde güçlü performans sağlar.

Aracılı veri sistemi

Eğitim hattı, ZhipuAI'nin eylem tahmini ön eğitimi ile "çok seviyeli, doğrulanabilir veri oluşturma" sistemi olarak adlandırdığı şeyi içerir. Uygulamada bu, modelin "ekran görüntüsü gör, bir sonraki eylemi tahmin et, yürüt, sonucu doğrula" dizileri üzerinde eğitildiği anlamına gelir, bu da onu statik görüntüden koda dönüştürmenin ötesinde otonom GUI görevleri için etkili kılar.

Pratik örnekler

Tasarım maketinden React bileşenine

from zai import ZaiClient

client = ZaiClient(api_key="your-api-key")

response = client.chat.completions.create(
    model="glm-5v-turbo",
    messages=[
        {
            "role": "system",
            "content": "Siz kıdemli bir ön uç geliştiricisiniz. TypeScript ve Tailwind CSS ile üretime hazır React bileşenleri oluşturun. Uygun tipleri, erişilebilirlik niteliklerini ve duyarlı tasarımı ekleyin."
        },
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": {"url": "https://example.com/hero-section.png"}
                },
                {
                    "type": "text",
                    "text": "Bu kahraman bölümünü bir React TypeScript bileşeni olarak oluşturun. Mobil öncelikli yaklaşımla tamamen duyarlı olmalıdır. Gradyan arka planı, üzerine gelme durumu olan CTA düğmesini ve illüstrasyon konumlandırmasını ekleyin."
                }
            ]
        }
    ],
    thinking={"type": "enabled"}
)

# Model önce düzen yapısı hakkında akıl yürütür (reasoning_content)
# ardından tam React bileşenini (content) çıkarır.
print(response.choices[0].message.content)

Ekran görüntüsü hata ayıklama iş akışı

def debug_ui_from_screenshot(screenshot_url: str, description: str) -> str:
    """Bozuk bir UI'ın ekran görüntüsünü gönderin ve CSS düzeltmelerini alın."""
    response = client.chat.completions.create(
        model="glm-5v-turbo",
        messages=[
            {
                "role": "system",
                "content": "Siz bir CSS hata ayıklama uzmanısınız. Bozuk kullanıcı arayüzlerinin ekran görüntülerini analiz edin ve belirli CSS düzeltmeleri sağlayın. Düzeltmeyi sağlamadan önce her zaman neyin yanlış olduğunu açıklayın."
            },
            {
                "role": "user",
                "content": [
                    {
                        "type": "image_url",
                        "image_url": {"url": screenshot_url}
                    },
                    {
                        "type": "text",
                        "text": f"Hata raporu: {description}. CSS sorunlarını belirleyin ve düzeltmeleri sağlayın."
                    }
                ]
            }
        ],
        thinking={"type": "enabled"}
    )

    return response.choices[0].message.content


# Kullanım
fix = debug_ui_from_screenshot(
    "https://example.com/broken-modal.png",
    "Modal iletişim kutusu mobil ekranlarda taşıyor ve kapat düğmesine ulaşılamıyor"
)
print(fix)

Belge çıkarma ve yapılandırılmış verilere dönüştürme

response = client.chat.completions.create(
    model="glm-5v-turbo",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image_url",
                    "image_url": {"url": "https://example.com/api-spec-page.png"}
                },
                {
                    "type": "text",
                    "text": "Bu dokümantasyon ekran görüntüsünden API uç nokta tanımlarını çıkarın. Bunları bir OpenAPI 3.1 YAML spesifikasyonu olarak döndürün."
                }
            ]
        }
    ]
)

Bu, API geliştirme ekipleri için güçlü bir kullanım durumudur: beyaz tahta API tasarımlarını fotoğraflayın veya eski belgeleri tarayın, ardından doğrudan OpenAPI spesifikasyonları oluşturun. Daha sonra oluşturulan spesifikasyonu Apidog'a aktararak tek bir ekran görüntüsünden etkileşimli dokümantasyon, sahte sunucular ve test durumları elde edebilirsiniz.

GLM-5V-Turbo'dan en iyi şekilde yararlanma ipuçları

Görüntü kalitesi önemlidir

CogViT kodlayıcı mekansal ayrıntıları korur, ancak kaynak görüntüde olmayan bilgileri kurtaramaz. Design2Code görevleri için:

Karmaşık düzenler için düşünme modunu kullanın

Şunlar için düşünme modunu ("thinking": {"type": "enabled"}) etkinleştirin:

Belirteç maliyetlerinden ve gecikmeden tasarruf etmek için basit görevler (tek bileşen çıkarma, temel görüntü başlığı ekleme) için düşünme modunu atlayın.

Bağlam pencerenizi yönetin

200K belirteçte, bağlam penceresi büyük ama sınırsız değildir. Tek bir yüksek çözünürlüklü görüntü 1.000-5.000 belirteç tüketebilir. Çoklu görüntü iş akışları için:

Önbellekleme ile maliyet optimizasyonu

Bağlam önbellekleme, 0.24$/M belirteç maliyetine sahiptir (standart girdi fiyatlandırmasına göre %80 indirim). Aynı bileşeni iyileştirdiğiniz yinelemeli tasarımdan koda iş akışları için:

  1. Tasarım görüntüsünü ilk istekte gönderin
  2. Takip eden istekler önbelleğe alınmış bağlamı referans alır
  3. Her yineleme, tam görüntüyü yeniden göndermenin bir kısmına mal olur

Hataları ve uç durumları ele alma

Hız limitleri ve yeniden denemeler

Z.ai API'si standart HTTP durum kodları döndürür. Bunları entegrasyonunuzda ele alın:

import time
from zai import ZaiClient

client = ZaiClient(api_key="your-api-key")

def call_with_retry(messages, max_retries=3):
    """GLM-5V-Turbo'yu hız limitlerinde üstel geri çekilmeyle çağırın."""
    for attempt in range(max_retries):
        try:
            response = client.chat.completions.create(
                model="glm-5v-turbo",
                messages=messages,
                thinking={"type": "enabled"}
            )
            return response
        except Exception as e:
            error_str = str(e)
            if "429" in error_str:
                # Hız limitine takıldı - bekle ve yeniden dene
                wait_time = 2 ** attempt
                print(f"Hız limitine takıldı. {wait_time} saniye sonra yeniden deniyor...")
                time.sleep(wait_time)
                continue
            elif "400" in error_str:
                # Kötü istek - yeniden deneme, girdiyi düzelt
                print(f"Kötü istek: {error_str}")
                raise
            else:
                # Sunucu hatası - yeniden dene
                if attempt < max_retries - 1:
                    time.sleep(1)
                    continue
                raise

    raise Exception("Maksimum yeniden deneme aşıldı")

Büyük çıktıları ele alma

128K maksimum çıktı penceresi ile GLM-5V-Turbo, tek bir yanıtta tüm çok dosyalı uygulamaları üretebilir. Uygulamanız bunu ele almalıdır:

response = client.chat.completions.create(
    model="glm-5v-turbo",
    messages=messages,
    max_tokens=131072  # Tam 128K çıktı
)

content = response.choices[0].message.content

# Çıktıdan birden çok dosyayı ayrıştır
# Model genellikle dosyaları markdown kod çitleriyle ayırır
import re

file_blocks = re.findall(
    r'```(\w+)?\s*\n// file: (.+?)\n(.*?)```',
    content,
    re.DOTALL
)

for lang, filename, code in file_blocks:
    print(f"{filename} ({lang}) yazılıyor")
    with open(filename, "w") as f:
        f.write(code.strip())

Görüntü URL'si erişilebilirliği

Model, sağladığınız URL'lerden görüntüleri getirir. Yaygın hatalar:

Görüntü barındırmayı kontrol ediyorsanız, kimlik doğrulaması olmayan herkese açık bir CDN, API çağrıları için en güvenilir seçenektir.

GLM-5V-Turbo'nun OpenRouter üzerinden kullanımıyla karşılaştırması

GLM-5V-Turbo'ya doğrudan Z.ai API'sine alternatif olarak OpenRouter aracılığıyla erişebilirsiniz. OpenRouter, modelin ilk iki gününde 769 milyondan fazla istem belirteci ile 44.000'den fazla isteği işledi.

OpenRouter'ın GLM-5V-Turbo kullanım istatistikleri

OpenRouter'ın faydaları:

OpenRouter'ın API anahtarı yönetimi

Dezavantajı: OpenRouter, belirteç fiyatlandırmasına küçük bir ekleme yapar. Yüksek hacimli üretim kullanımı için doğrudan Z.ai API'si daha ucuzdur.

GLM-5V-Turbo ile tasarımdan koda bir iş hattı oluşturma

İşte bir tasarım maketini alan, kod üreten ve çıktıyı doğrulayan eksiksiz bir iş akışı:

from zai import ZaiClient
import os
import subprocess

client = ZaiClient(api_key=os.environ["ZAI_API_KEY"])


def design_to_code_pipeline(image_url: str, output_dir: str, framework: str = "react"):
    """Eksiksiz iş hattı: tasarım ekran görüntüsü -> çalışan kod -> doğrulama."""

    os.makedirs(output_dir, exist_ok=True)

    # Adım 1: Tasarımı analiz edin
    analysis = client.chat.completions.create(
        model="glm-5v-turbo",
        messages=[
            {
                "role": "user",
                "content": [
                    {"type": "image_url", "image_url": {"url": image_url}},
                    {
                        "type": "text",
                        "text": "Bu tasarımı analiz edin. Listele: 1) Görünür tüm UI bileşenleri, 2) Renk paleti (hex değerleri), 3) Tipografi (yazı tipi boyutları, ağırlıkları), 4) Düzen yapısı (ızgara/flexbox), 5) Etkileşimli öğeler (düğmeler, girişler, açılır menüler)."
                    }
                ]
            }
        ],
        thinking={"type": "enabled"}
    )

    design_analysis = analysis.choices[0].message.content
    print(f"Tasarım analizi tamamlandı: {len(design_analysis)} karakter")

    # Adım 2: Bileşeni oluşturun
    generation = client.chat.completions.create(
        model="glm-5v-turbo",
        messages=[
            {
                "role": "system",
                "content": f"Siz bir {framework} geliştiricisiniz. Üretime hazır, erişilebilir, duyarlı bileşenler oluşturun. TypeScript ve Tailwind CSS kullanın."
            },
            {
                "role": "user",
                "content": [
                    {"type": "image_url", "image_url": {"url": image_url}},
                    {
                        "type": "text",
                        "text": f"Bu tasarıma dayanarak, eksiksiz {framework} bileşenini oluşturun. Tüm stillendirme, üzerine gelme durumları ve duyarlı kesme noktalarını ekleyin. Bileşen, tasarımı piksel piksel eşleştirmelidir."
                    }
                ]
            }
        ],
        thinking={"type": "enabled"},
        max_tokens=16384
    )

    code = generation.choices[0].message.content

    # Adım 3: Çıktıyı kaydedin
    output_file = os.path.join(output_dir, "Component.tsx")
    with open(output_file, "w") as f:
        # Markdown çitlerinden kodu çıkar (varsa)
        if "```" in code:
            import re
            match = re.search(r'```(?:tsx?|jsx?)\n(.*?)```', code, re.DOTALL)
            if match:
                f.write(match.group(1).strip())
            else:
                f.write(code)
        else:
            f.write(code)

    print(f"Bileşen {output_file} konumuna kaydedildi")
    return output_file


# Kullanım
design_to_code_pipeline(
    image_url="https://example.com/dashboard-card.png",
    output_dir="./generated-components",
    framework="react"
)

Bu iş hattı, analizi üretimden ayırır. İlk çağrı, tasarımın yapısını, renklerini ve tipografisini eşler. İkinci çağrı, bu anlayışı bağlam olarak kullanarak kod üretir. İşi iki çağrıya bölmek, tek bir "bunu koda dönüştür" isteğinden daha doğru çıktı üretir, çünkü model kodu yazmadan önce düzen hakkında zaten akıl yürütmüştür.

Her adımı Apidog'da bağımsız olarak test edebilirsiniz; analiz isteğini ve üretim isteğini bir koleksiyonda ayrı uç noktalar olarak kaydederek, ardından bunları koleksiyon çalıştırıcısı ile sırayla çalıştırabilirsiniz.

düğme

Sıkça Sorulan Sorular

GLM-5V-Turbo'yu kullanmak ücretsiz mi?

Hayır. API fiyatlandırması 1.20$/M girdi belirteci ve 4.00$/M çıktı belirteci şeklindedir. ZhipuAI, test için chat.z.ai adresinde ücretsiz bir web arayüzü sunar, ancak API kullanımı ödeme gerektirir.

Base64 kodlu görüntüleri gönderebilir miyim?

Dokümantasyon, URL tabanlı görüntü girişini (url alanına sahip image_url) gösterir. Base64 desteği için görüntünüzü bir veri URI'si olarak kodlayın: data:image/png;base64,{encoded_data} ve bunu URL değeri olarak geçirin. Bu, OpenAI Vision API'sinin aynı kuralını takip eder.

GLM-5V-Turbo video girişini nasıl işler?

Video, desteklenen bir girdi modalitesi olarak listelenmiştir. Model, UI etkileşim kayıtlarını analiz etme, animasyon hatalarını belirleme veya kullanıcı akışlarını anlama gibi görevler için video karelerini işleyebilir. Belirli codec ve format gereksinimleri henüz belgelenmemiştir.

GLM-5-Turbo ve GLM-5V-Turbo arasındaki fark nedir?

GLM-5-Turbo, yalnızca metin tabanlı bir kodlama modelidir. GLM-5V-Turbo, çok modlu giriş (görüntüler, videolar, dosyalar) için CogViT görsel kodlayıcısını ekler. Saf metin kodlama görevleri için GLM-5-Turbo'yu, iş akışınız görsel giriş içeriyorsa GLM-5V-Turbo'yu seçin.

GLM-5V-Turbo'yu OpenAI Python istemcisiyle kullanabilir miyim?

Evet. base_url'yi https://api.z.ai/api/paas/v4 olarak ayarlayın ve Z.ai API anahtarınızı kullanın. Uç nokta, çok modlu mesaj formatları dahil olmak üzere sohbet tamamlama için OpenAI uyumlu kuralları takip eder.

Kodlama için Claude ile karşılaştırması nasıl?

GLM-5V-Turbo, görselden koda görevlerinde (Design2Code'da 94.8'e karşı 77.3) üstünlük sağlar. Claude, salt metin kodlama, arka uç mimarisi ve depo düzeyinde anlama konularında liderdir. Farklı kullanım durumlarına hizmet ederler. Her ikisini de yapan ekipler için maliyet farkı önemlidir: GLM-5V-Turbo, girdi belirteçlerinde Claude Opus 4.6'dan %92 daha ucuzdur.

Maksimum görüntü boyutu nedir?

Dokümantasyon bir piksel sınırı belirtmiyor. 200K bağlam penceresi pratik kısıtlamadır; daha büyük görüntüler daha fazla belirteç tüketir. Design2Code görevleri için, 2x çözünürlükte 1920x1080 ekran görüntüleri sınırlara takılmadan iyi çalışır.

ZhipuAI API verilerimi saklıyor mu?

Hayır. Z.ai'nin veri politikası, API çağrıları için eğitim kullanımı veya istem saklama olmadığını belirtir. Görüntüleriniz ve kod çıktılarınız gelecekteki modelleri eğitmek için kullanılmaz.

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin