DEV Community

Cover image for GLM-5.3-Flash API in Apidog testen: Eine Anleitung
Emre Demir
Emre Demir

Posted on Originally published at apidog.com

GLM-5.3-Flash API in Apidog testen: Eine Anleitung

GLM-5.3-Flash mit Apidog testen: Text, Vision und Tool-Calling

Das Austauschen eines LLM ist technisch oft eine Änderung in einer Zeile, operativ aber ein deutlich größeres Risiko. Die Modell-ID ist nur eine Zeichenfolge – sie beeinflusst jedoch Latenz, Token-Kosten, Ausgabeformat, Tool-Calling und die Unterstützung von Bildern.

GLM-5.3-Flash macht diese Trade-offs sichtbar: Das Modell ist ungefähr neunmal günstiger als GLM-5.3, verarbeitet Bilder nativ und generiert etwa halb so schnell. Welche Variante für Ihre Anwendung besser ist, zeigt nur ein Test mit Ihren eigenen Anfragen.

Apidog heute ausprobieren

Dieser Leitfaden erstellt eine wiederverwendbare Testsammlung für die GLM-5.3-Flash-API in Apidog. Sie deckt Text- und Bildaufrufe, Tool-Calling, Assertions sowie den Vergleich mit dem größeren Modell ab.

Warum nicht einfach curl?

Sie können den Endpunkt mit curl testen; unser API-Leitfaden zeigt den grundlegenden Aufruf. Für wiederholbare Tests stößt curl jedoch schnell an Grenzen:

  • Base64-Bilder: Eine Daten-URL für einen Screenshot ist Tausende Zeichen lang und im Terminal kaum lesbar oder wiederverwendbar.
  • Keine Validierung: Eine Curl-Antwort zeigt, dass der Aufruf erfolgreich war – nicht, ob die Felder noch vorhanden sind, die Ihre Anwendung tatsächlich verwendet.

Eine gespeicherte Sammlung hält Payloads lesbar und führt Assertions bei jedem Lauf aus.

Umgebung einrichten

Erstellen Sie eine Umgebung mit den Werten, die sich zwischen Testläufen ändern. Lassen Sie die Modell-ID variabel, damit Sie später die komplette Sammlung gegen ein anderes Modell ausführen können.

Variable Wert
base_url https://api.z.ai/api/paas/v4
api_key Ihr Z.ai-Schlüssel
model glm-5.3-flash
test_image_url Öffentlich erreichbare URL zu einem bekannten Testbild

Speichern Sie den API-Schlüssel als Umgebungsvariable statt direkt im Header. So gelangt er nicht versehentlich in exportierte Sammlungen oder in die Versionsverwaltung.

Anfrage 1: Textvervollständigung

Erstellen Sie eine POST-Anfrage an {{base_url}}/chat/completions.

Header:

[REDACTED CREDENTIAL] {{api_key}}
Content-Type: application/json
Enter fullscreen mode Exit fullscreen mode

Body:

{
  "model": "{{model}}",
  "messages": [
    {"role": "user", "content": "Reply with exactly: OK"}
  ],
  "reasoning_effort": "low"
}
Enter fullscreen mode Exit fullscreen mode

Setzen Sie reasoning_effort für den Konnektivitätstest auf low. Beim Modell ist standardmäßig max eingestellt; die zusätzlichen Reasoning-Tokens wären für diesen einfachen Test unnötig.

Empfohlene Assertions:

  • Statuscode ist 200
  • choices[0].message.content existiert
  • choices[0].finish_reason ist stop
  • usage.total_tokens existiert

Die finish_reason-Assertion erkennt abgeschnittene Antworten. length bedeutet, dass die Ausgabe am Limit beendet wurde und möglicherweise unvollständig ist.

Anfrage 2: Bildaufruf

Der Vision-Test rechtfertigt den Aufbau einer gespeicherten Sammlung besonders deutlich. GLM-5.3-Flash akzeptiert Bilder nativ, GLM-5.3 nicht.

Verwenden Sie denselben Endpunkt, aber ein typisiertes content-Array:

{
  "model": "{{model}}",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "What color is the dominant shape in this image? Answer with one word."
        },
        {
          "type": "image_url",
          "image_url": {
            "url": "{{test_image_url}}"
          }
        }
      ]
    }
  ],
  "reasoning_effort": "low"
}
Enter fullscreen mode Exit fullscreen mode

Verweisen Sie mit test_image_url auf ein stabiles, öffentlich erreichbares Bild, dessen richtige Antwort bekannt ist. Eine deterministische Frage macht aus der Demo einen Regressionstest.

Für lokale Bilder können Sie eine Base64-Daten-URL verwenden:

data:image/png;base64,iVBORw0Ggo...
Enter fullscreen mode Exit fullscreen mode

Speichern Sie auch diese URL als Umgebungsvariable, damit der Body lesbar bleibt.

Assertions:

  • Statuscode ist 200
  • choices[0].message.content enthält die bekannte Antwort
  • usage.prompt_tokens ist größer als bei der reinen Textanfrage

Bilder verbrauchen Eingabe-Tokens. Steigt die Anzahl der Prompt-Tokens nicht, wurde das Bild wahrscheinlich nicht verarbeitet – obwohl der HTTP-Aufruf erfolgreich war.

Weitere Details zum Vision-Pfad und seinen Fehlermodi finden Sie in unserem GLM-5.3-Flash-Vision-Leitfaden.

Anfrage 3: Tool-Calling

Wenn Ihre Anwendung Funktionsaufrufe verwendet, testen Sie das Format explizit. Tool-Calling reagiert besonders empfindlich auf Modell- und Provideränderungen.

{
  "model": "{{model}}",
  "messages": [
    {"role": "user", "content": "Is the checkout-api service healthy?"}
  ],
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "get_deployment_status",
        "description": "Returns the current status of a named deployment.",
        "parameters": {
          "type": "object",
          "properties": {
            "service": {
              "type": "string",
              "description": "The service name."
            }
          },
          "required": ["service"]
        }
      }
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Assertions:

  • choices[0].message.tool_calls existiert und ist nicht leer
  • choices[0].message.tool_calls[0].function.name ist get_deployment_status
  • choices[0].finish_reason ist tool_calls

Prüfen Sie nicht nur, ob ein Tool aufgerufen wurde, sondern auch den Funktionsnamen. So erkennen Sie, wenn das Modell das falsche Tool auswählt.

Wenn Sie Tool-Definitionen aus einer vorhandenen API generieren, hilft die Umwandlung einer OpenAPI-Spezifikation in Agenten-Tools, manuelle Schemas zu vermeiden.

Vergleich mit GLM-5.3

Duplizieren Sie Ihre Umgebung, setzen Sie model auf glm-5.3 und führen Sie dieselbe Sammlung erneut aus.

Vergleichen Sie:

Korrektheit

Bestehen die Assertions weiterhin? Die Bildanfrage wird erwartungsgemäß fehlschlagen, weil GLM-5.3 Bilder nicht nativ verarbeitet. Das ist ein relevantes Testergebnis und kein fehlerhafter Test.

Latenz

Apidog zeigt die Antwortzeit pro Anfrage. Bei längeren Ausgaben sollte GLM-5.3 schneller fertig werden: ungefähr 86 Tokens pro Sekunde gegenüber 49 bei Flash.

Kosten

Das usage-Objekt enthält prompt_tokens und completion_tokens. Multiplizieren Sie diese Werte mit den jeweiligen Modellpreisen, um die tatsächlichen Kosten pro Anfrage zu berechnen.

Unsere Preisübersicht enthält die aktuellen Raten. Der vollständige Modellvergleich zeigt, in welchen Szenarien welches Modell besser abschneidet.

Achten Sie außerdem auf completion_tokens bei verschiedenen reasoning_effort-Einstellungen. Bei max werden Reasoning-Tokens als Ausgabe abgerechnet. Führen Sie denselben Prompt mit low, high und max aus und vergleichen Sie die Token-Anzahlen mit der tatsächlichen Qualität.

Lokale Bereitstellung testen

Wenn Sie die Gewichte selbst hosten, stellen vLLM und SGLang OpenAI-kompatible Endpunkte bereit. Ändern Sie base_url auf Ihren Server und führen Sie die unveränderte Sammlung erneut aus.

Das ist einer der wertvollsten Einsatzzwecke der Testsuite. Ein quantisiertes Build kann den Chat-Smoke-Test bestehen und trotzdem Tool-Schemas falsch verarbeiten oder bei Bildeingaben degenerieren. Unser Leitfaden zur lokalen Ausführung behandelt die Bereitstellung.

In CI integrieren

Sobald die Sammlung stabil ist, führen Sie sie nach Zeitplan oder in Ihrer Pipeline aus:

  • Vor einer Modellmigration: als Freigabe- oder Ablehnungssignal
  • Nach Zeitplan: um Änderungen beim Provider zu erkennen
  • Nach Abhängigkeits-Updates: da SDK-Änderungen die Request-Serialisierung beeinflussen können

Provider aktualisieren Modelle teilweise hinter stabilen Modell-IDs. Geplante Tests zeigen Verhaltensänderungen, bevor sie von Benutzerinnen und Benutzern gemeldet werden.

Tests über den Happy Path hinaus

Erweitern Sie die Sammlung anschließend um:

  • langen Kontext in der tatsächlich verwendeten Größenordnung
  • fehlerhafte Eingaben und die erwarteten Fehlerantworten
  • Ratenbegrenzungsantworten zur Prüfung der Wiederholungslogik
  • mehrere Bilder, sofern Ihre Anwendung sie unterstützt
  • Streaming, da sich die Antwortstruktur vom Standardaufruf unterscheidet

Zusammenfassung

Der eigentliche Wert liegt nicht in den drei einzelnen Anfragen, sondern in ihrer Wiederholbarkeit. Eine Modellwahl, die Sie in dreißig Sekunden erneut testen können, bleibt überprüfbar, wenn sich Preise ändern, Z.ai eine neue Revision veröffentlicht oder ein Providerwechsel ansteht.

Apidog kann kostenlos gestartet werden. Der Import eines OpenAI-kompatiblen Schemas übernimmt außerdem einen großen Teil der Einrichtung.

So wird der nächste Modellwechsel zu einem messbaren Vergleich statt zu einem Sprung ins Ungewisse.

FAQ

Benötige ich einen kostenpflichtigen Apidog-Plan?

Nein. Umgebungsvariablen und Assertions funktionieren auch im kostenlosen Tarif.

Wie teste ich Base64-Bilder, ohne den Request unleserlich zu machen?

Speichern Sie die Daten-URL als Umgebungsvariable und referenzieren Sie sie im Body mit {{test_image_url}}.

Kann ich den Coding-Plan-Endpunkt genauso testen?

Ja. Setzen Sie base_url auf https://api.z.ai/api/coding/paas/v4. Dieser Endpunkt unterscheidet sich vom Standard-API-Endpunkt, wie in unserem Claude-Code- und-Cline-Leitfaden beschrieben.

Funktionieren diese Tests auch mit anderen Anbietern?

Meistens. OpenRouter, Cloudflare Workers AI und Vercel AI Gateway bieten OpenAI-kompatible Schnittstellen. Ändern Sie base_url und den Modell-ID-Namespace.

Wie prüfe ich nicht-deterministische Antworten?

Prüfen Sie Struktur und Einschränkungen statt exakten Text: Feldpräsenz, Datentypen, Token-Anzahlen, finish_reason und das Vorkommen erwarteter Teilzeichenfolgen.

Top comments (0)