Arendaja platvorm

Z.ai API

Z.ai ülevaade arendajatele, mis hõlmab API-juurdepääsu, hinnastust, SDK-tuge, lõppunkte, võimekusi ja platvormi reegleid.

API võti Nõutud
Peamine API OpenAI-ga ühilduv Chat Completions API
SDK tugi Ametlik Pythoni SDK zai-sdk-i kaudu ja ametlik Java SDK on dokumenteeritud. Dokumenteeritud on ka OpenAI-ga ühilduv integratsioon. JavaScripti/TypeScripti ja PHP puhul saab kasutada standardseid HTTP-päringuid; ametliku JavaScripti- või PHP SDK olemasolu
Päringupiirangud Z.ai avaldab eraldi päringupiirangute ülevaate. Piirangud võivad erineda olenevalt mudelist, kontost, paketist ja teenuse juurdepääsust. Rakendused peaksid HTTP-tõrkeid kontrollima, kvoote järgima, kasutama piiratud arvu katseid koos eksponentsiaalse viiv
Platvorm

API ülevaade

Lõppunktid (endpoints)

API ligipääs

Juuraadress (Base URL) https://api.z.ai/api/paas/v4
Peamine API OpenAI-ga ühilduv Chat Completions API
Hinnad

API Hinnad

Hinnakujundusmudel Kasutuspõhine tokenihinnastus koos ettemakstud ressursipakettide, kasutuspakettide ning ettevõtetele või suurematele mahtudele mõeldud kokkulepetega; kodeerimisplaanidele kehtivad eraldi tellimuse mahupiirangud.

Avalik hinnakujundus sõltub mudelist ja kontost. Z.ai reklaamib kasutuspakette ja ettemakstud API-ressursse, samal ajal kui mõne ärikliendihinna määramine toimub müügiosakonna kaudu. Koodikirjutamise paketid on eraldi ning praegu reklaamitakse eraisikutele mõeldud pakette alates 18 USA dollarist kuus, tingimusel t

Arendaja töömugavus

SDK info

SDK Ametlik Pythoni SDK zai-sdk-i kaudu ja ametlik Java SDK on dokumenteeritud. Dokumenteeritud on ka OpenAI-ga ühilduv integratsioon. JavaScripti/TypeScripti ja PHP puhul saab kasutada standardseid HTTP-päringuid; ametliku JavaScripti- või PHP SDK olemasolu
Kasutusmugavus Hea. API ühildub OpenAI API-ga, kasutab tavapärast Bearer-võtmega autentimist ja vestluse lõpetamise päringuid ning selle kohta on saadaval ametlik Pythoni ja Java SDK dokumentatsioon. Täiustatud võimalused nõuavad mudelipõhist konfiguratsiooni.
Dokumentatsioon Hea ja laiaulatuslik. Praegune dokumentatsioon hõlmab kiirstarte, HTTP-päringuid, Pythoni ja Java SDK-sid, API viitelehti, mudelite juhendeid, voogedastust, tööriistu, MCP-d, struktureeritud väljundit, veebiotsingut, agente ja spetsiaalseid meedia-API-sid
Viivitus Universaalset avalikku latentsusgarantiid ei õnnestunud kinnitada. Latentsus sõltub mudelist, viiba ja väljundi suurusest, arutlusrežiimist, teenuse koormusest, piirkonnast, võrguteest ja voogedastuse konfiguratsioonist.
Featuurid

API võimekused

✓ Voogedastus
✓ Funktsioonide kasutamine
✓ Assistants API
✓ Failide üleslaadimine
✓ Veebiotsing
✓ Pildi sisend
✓ Struktureeritud väljund
✓ Liivakast
Lühikirjeldus

Z.ai praegune arendajaplatvorm põhineb OpenAI-ga ühilduval vestluse lõpetamise API-l. Üldine API-juurdepääs kasutab aadressi https://api.z.ai/api/paas/v4, kodeerimisplaani juurdepääs aga aadressi https://api.z.ai/api/coding/paas/v4. Platvormi dokumentatsioon hõlmab voogedastust, funktsioonikutsunguid, MCP-serverite kutsumist, struktureeritud väljundit, multimodaalset sisu, piltide genereerimist, video asünkroonset genereerimist, heli transkribeerimist, OCR-i ja küljenduse parsimist, veebiotsingut, veebilehtede lugemist, tokeniseerimist, tõlkimist ning agentide API-sid. Piltide, heli, video, failide, struktureeritud väljundi ja tööriistadega seotud võimalused sõltuvad mudelist või lõpp-punktist. Platvormi dokumentatsioonis on ametlikud Pythoni ja Java SDK-d. Esimese osapoole JavaScripti- või PHP-SDK-d ei õnnestunud praegusest ametlikust dokumentatsiooniindeksist kinnitada.

Näited

API Näited

set -euo pipefail

: "${ZAI_API_KEY:?Set ZAI_API_KEY first}"

response=$(curl --fail-with-body --silent --show-error \
  --request POST \
  --url https://api.z.ai/api/paas/v4/chat/completions \
  --header "Authorization: Bearer ${ZAI_API_KEY}" \
  --header "Content-Type: application/json" \
  --data '{
    "model": "glm-5.3",
    "messages": [
      {
        "role": "system",
        "content": "You are a concise technical assistant."
      },
      {
        "role": "user",
        "content": "Explain API rate limiting in three bullet points."
      }
    ],
    "temperature": 0.2
  }')

printf '%s\n' "$response" | python3 -c 'import json,sys; print(json.load(sys.stdin)["choices"][0]["message"]["content"])'

curl --fail-with-body --silent --show-error \
  --request POST \
  --url https://api.z.ai/api/paas/v4/chat/completions \
  --header "Authorization: Bearer ${ZAI_API_KEY}" \
  --header "Content-Type: application/json" \
  --data '{
    "model": "glm-5.3",
    "messages": [{"role": "user", "content": "Return a JSON object with keys name and priority for a bug report about a timeout."}],
    "response_format": {"type": "json_object"}
  }'
# Install: pip install zai-sdk
import json
import os
import sys
from zai import ZaiClient

api_key = os.environ.get("ZAI_API_KEY")
if not api_key:
    raise SystemExit("Set ZAI_API_KEY before running this example")

client = ZaiClient(api_key=api_key)

try:
    response = client.chat.completions.create(
        model="glm-5.3",
        messages=[
            {"role": "system", "content": "You are a concise technical assistant."},
            {"role": "user", "content": "Give me two practical API retry recommendations."},
        ],
        temperature=0.2,
    )
    print(response.choices[0].message.content)
except Exception as exc:
    print(f"Z.ai request failed: {exc}", file=sys.stderr)
    raise

# Streaming example.
stream = client.chat.completions.create(
    model="glm-5.3",
    messages=[
        {"role": "user", "content": "Explain server-sent events in four short steps."}
    ],
    stream=True,
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)
print()

# Structured JSON example. Validate the returned string with json.loads in production.
structured = client.chat.completions.create(
    model="glm-5.3",
    messages=[
        {"role": "user", "content": "Return JSON with keys title and severity for a database timeout bug."}
    ],
    response_format={"type": "json_object"},
)
print(json.loads(structured.choices[0].message.content))
// Node.js 18+; no provider-specific package is required.
// Set ZAI_API_KEY in the environment before running: node zai-example.mjs

const apiKey = process.env.ZAI_API_KEY;
if (!apiKey) throw new Error("Set ZAI_API_KEY before running this example");

async function callZai(payload) {
  const response = await fetch("https://api.z.ai/api/paas/v4/chat/completions", {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${apiKey}`,
      "Content-Type": "application/json"
    },
    body: JSON.stringify(payload)
  });
  const text = await response.text();
  if (!response.ok) throw new Error(`Z.ai ${response.status}: ${text}`);
  return JSON.parse(text);
}

const result = await callZai({
  model: "glm-5.3",
  messages: [
    { role: "system", content: "You are a concise technical assistant." },
    { role: "user", content: "Explain API pagination in two sentences." }
  ],
  temperature: 0.2
});
console.log(result.choices?.[0]?.message?.content ?? "No text returned");

const structured = await callZai({
  model: "glm-5.3",
  messages: [
    { role: "user", content: "Return JSON with keys title and priority for a timeout bug." }
  ],
  response_format: { type: "json_object" }
});
console.log(JSON.parse(structured.choices[0].message.content));

const toolResponse = await callZai({
  model: "glm-5.3",
  messages: [{ role: "user", content: "What is the weather in Seattle?" }],
  tools: [{
    type: "function",
    function: {
      name: "get_weather",
      description: "Get current weather for a city",
      parameters: {
        type: "object",
        properties: { city: { type: "string" } },
        required: ["city"]
      }
    }
  }],
  tool_choice: "auto"
});
console.log(toolResponse.choices?.[0]?.message?.tool_calls ?? toolResponse.choices?.[0]?.message?.content);
<?php
$apiKey = getenv('ZAI_API_KEY');
if (!$apiKey) {
    fwrite(STDERR, "Set ZAI_API_KEY before running this example\n");
    exit(1);
}

$url = 'https://api.z.ai/api/paas/v4/chat/completions';
$payload = [
    'model' => 'glm-5.3',
    'messages' => [
        ['role' => 'system', 'content' => 'You are a concise technical assistant.'],
        ['role' => 'user', 'content' => 'Explain API pagination in two sentences.']
    ],
    'temperature' => 0.2
];

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json'
    ],
    CURLOPT_POSTFIELDS => json_encode($payload, JSON_THROW_ON_ERROR),
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT => 60,
    CURLOPT_CONNECTTIMEOUT => 10
]);

$body = curl_exec($ch);
if ($body === false) {
    $error = curl_error($ch);
    curl_close($ch);
    throw new RuntimeException('cURL error: ' . $error);
}
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

$data = json_decode($body, true, 512, JSON_THROW_ON_ERROR);
if ($status < 200 || $status >= 300) {
    $message = $data['error']['message'] ?? $body;
    throw new RuntimeException("Z.ai HTTP {$status}: {$message}");
}

$content = $data['choices'][0]['message']['content'] ?? null;
if ($content === null) {
    throw new RuntimeException('The response did not contain message content');
}
echo $content . PHP_EOL;

$structuredPayload = [
    'model' => 'glm-5.3',
    'messages' => [[
        'role' => 'user',
        'content' => 'Return JSON with keys title and priority for a timeout bug.'
    ]],
    'response_format' => ['type' => 'json_object']
];

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json'
    ],
    CURLOPT_POSTFIELDS => json_encode($structuredPayload, JSON_THROW_ON_ERROR),
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT => 60
]);
$structuredBody = curl_exec($ch);
if ($structuredBody === false) {
    throw new RuntimeException('Structured-output request failed: ' . curl_error($ch));
}
$structuredStatus = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($structuredStatus < 200 || $structuredStatus >= 300) {
    throw new RuntimeException("Z.ai structured-output HTTP {$structuredStatus}: {$structuredBody}");
}
$structuredData = json_decode($structuredBody, true, 512, JSON_THROW_ON_ERROR);
$jsonText = $structuredData['choices'][0]['message']['content'] ?? '{}';
echo json_encode(json_decode($jsonText, true, 512, JSON_THROW_ON_ERROR), JSON_PRETTY_PRINT) . PHP_EOL;
Põhimõtted

Andmete kasutus

Andmete kasutus

Läbi vaadatud avalikes materjalides eristatakse tarbijaandmete töötlemist API- ja ärikliendipoolsest töötlemisest ning API-kliente suunatakse tutvuma täiendavate API tingimuste ja andmetöötlusleppega. Universaalset avalikku kinnitust selle kohta, et kõiki API sisendeid vaikimisi mudelite treenimiseks kasutatakse või ei kasutata, ei õnnestunud kontrollida. Arendajad peaksid enne konfidentsiaalsete või reguleeritud andmete edastamist tutvuma kehtivate API tingimuste, DPA, konto seadete ja lepinguga.

Andmete säilitamine

Avalikult kättesaadavast dokumentatsioonist ei leidunud kinnitust ühe universaalse API andmete säilitamise perioodi kohta. Avalikes privaatsusmaterjalides on märgitud, et API- ja äriklientide andmetöötlust reguleeritakse tarbijatele mõeldud privaatsuspoliitikast eraldi ning API-klientidele viidatakse täiendavatele API-tingimustele ja andmetöötlusleppele. Kliendid peaksid oma konto või lepingu puhul üle kontrollima andmete säilitamise, kustutamise, logimise ja piirkondliku töötlemise tingimused.

Päringupiirangud

Z.ai avaldab eraldi päringupiirangute ülevaate. Piirangud võivad erineda olenevalt mudelist, kontost, paketist ja teenuse juurdepääsust. Rakendused peaksid HTTP-tõrkeid kontrollima, kvoote järgima, kasutama piiratud arvu katseid koos eksponentsiaalse viiv

Arendaja juhend

Z.ai API juhend: GLM-mudelid, tööriistad, hinnad ja integratsioon

Z.ai pakub OpenAI-ga ühilduvat arendajaplatvormi GLM-mudelite ning nendega seotud multimodaalsete funktsioonide, agentide, otsingu-, pildi-, video-, heli- ja dokumenditöötlusvõimaluste jaoks. Arendajad saavad API-võtmete abil autentida, kasutada chat completions’i, vastuseid voogedastada, rakendada funktsioonikutsungeid ja MCP-tööriistu, küsida struktureeritud JSON-i, töödelda toetatud meediumifaile ning kasutada spetsiaalseid API-sid. Üldine API kasutus põhineb ettemakstud ressurssidel või kasutuspakettidel, samas kui kodeerimisplaani juurdepääs kasutab eraldi lõpp-punkti ja kvoodisüsteemi.
Z.ai on Zhipu AI GLM-i mudelite perekonnaga seotud arendusplatvorm. See on mõeldud rakendustele, mis vajavad teksti genereerimist, arutlusvõimet, programmeerimisabi, multimodaalset analüüsi, veebiotsingut, tööriistade kasutamist ning eriotstarbelisi meedia- või agentide töövooge. Põhiliides on OpenAI-ga ühilduv chat completions API, nii et selle päringumustriga tuttavad arendajad saavad alustada standardsete HTTP-päringute või dokumenteeritud Python ja Java SDK-de abil. See juhend käsitleb juurdepääsu, autentimist, mudeli valimist, esimesi päringuid, voogedastust, tööriistu, faile, struktureeritud väljundit, hinnastust, SDK-sid ja tootmiskasutusega seotud kaalutlusi.
Z.ai pakub GLM-mudelitele OpenAI-ga ühilduvat API-t, mis toetab API-võtmepõhist autentimist, vestluse lõpetamise päringuid, voogedastust, funktsioonikutseid, struktureeritud väljundit, multimodaalset sisendit, MCP-tööriistu, veebiotsingut ning spetsiaalseid agendi- ja meedia-API-sid. Üldine kasutus põhineb ettemakstud ressurssidel või kasutuspakettidel, samas kui kodeerimisplaanid kasutavad eraldi lõpp-punkti ja kvoodisüsteemi.

Mis on Z.ai API?

Z.ai API on arendajatele mõeldud platvorm, mille kaudu saab tarkvarast kutsuda GLM-mudeleid ja nendega seotud teenuseid. Selle peamine liides on OpenAI-ga ühilduv vestluse lõpetamise API, mis toetab tavalisi vastuseid, serverilt saadetavate sündmuste voogedastust, funktsioonikutseid, struktureeritud väljundit ja multimodaalset sõnumisisu.

Platvorm dokumenteerib ka spetsiaalseid API-sid piltide genereerimiseks, asünkroonseks videote genereerimiseks, heli transkribeerimiseks, OCR-i ja paigutuse analüüsiks, veebiotsinguks, veebi sisu lugemiseks, tokeniseerimiseks, tõlkimiseks ja agentide töövoogudeks. Need võimalused ei pruugi olla saadaval iga mudeli või lõpp-punkti kaudu, seega peaks rakendus kontrollima dokumentatsioonist täpselt selle toimingu tingimusi, mida kavatsetakse kasutada.

Z.ai sobib hästi siis, kui rakendus vajab GLM-mudeleid, pika kontekstiga või arutlusele keskenduvaid töökoormusi, kodeerimisabi, multimodaalset sisendit, väliseid tööriistu või OpenAI-ga ühilduvaid päringumustreid kasutavat teenusepakkujat. See võib sobida halvasti juhul, kui organisatsioon vajab kõigis piirkondades ühtlaselt kättesaadavat teenust, kõigi kontode jaoks ühtset ja selgelt dokumenteeritud andmete säilitamise poliitikat või küpset tarbijatele suunatud personaliseerimis- ja mobiiliökosüsteemi.

Juurdepääsu saamine ja API-võtme loomine

Alustage Z.ai arendaja- või mudeli-API platvormilt ning looge konto või logige sisse. API-võtmed luuakse või saadakse Z.ai API portaalist. Hoidke võtit serveri poolel ja laadige see keskkonnamuutujast, mitte brauserikoodist, lähtekoodihoidlast, logidest või kasutajale nähtavast konfiguratsioonist.

Üldine API kasutab baasaadressi https://api.z.ai/api/paas/v4. Kodeerimisplaani kliendid kasutavad eraldi baasaadressi https://api.z.ai/api/coding/paas/v4. Neid lõpp-punkte ei tohiks segamini kasutada: kodeerimise lõpp-punkt on mõeldud kodeerimisplaani juurdepääsuks, üldist lõpp-punkti kasutatakse tavaliste API ressursipakettide ja ettemakstud saldode jaoks.

  • Üldise API baasaadress: https://api.z.ai/api/paas/v4
  • Kodeerimisplaani baasaadress: https://api.z.ai/api/coding/paas/v4
  • Põhitoiming: POST /chat/completions
  • Autentimine: Authorization: Bearer YOUR_API_KEY
  • Päringu vorming: JSON üle HTTPS-i

API ja mudeli valimine

Esimese teksti genereerimise integratsiooni jaoks kasutage üldist vestluse lõpetamise lõpp-punkti ja valige oma kontol lubatud GLM-mudel. Praegune dokumentatsioon tõstab esile mudelit GLM-5.3 ja teisi seotud GLM-mudeleid, kuid saadaolev kataloog võib kontost, piirkonnast, paketist ja teenuse muudatustest sõltuvalt erineda. Kontrollige täpset mudelitunnust Z.ai ajakohasest dokumentatsioonist või kontoportaalist, mitte ärge eeldage, et kõik avaldatud mudelid on kõigile kasutajatele kättesaadavad.

Valige toiming vastavalt ülesandele. Vestluse lõpetamine on üldotstarbeline lähtekoht. Multimodaalne vestlus sobib siis, kui valitud mudel võtab vastu pilte või muud toetatud meediasisu. Veebiotsingul, veebi sisu lugemisel, OCR-il, piltidel, videol, helil, tõlkimisel ja agentide toimingutel on oma dokumentatsioon ning need võivad kasutada teistsugust päringu vormingut või asünkroonseid töövooge.

Kodeerimisplaani kasutamisel kasutage kodeerimise lõpp-punkti ja selle plaaniga seotud kvooti. Üldise ettemakstud API saldo ja kodeerimisplaani kvoodid on eraldi. See erinevus on oluline juhul, kui päring õnnestub ühe lõpp-punkti kaudu, kuid nurjub, sest kontol puudub teise jaoks vastav ressurss või õigus.

Esimese päringu tegemine

Järgmine päring saadab üldise vestluse lõpetamise lõpp-punkti lühikese vestluse. Enne käivitamist määrake shellis ZAI_API_KEY. Mudelinimi on praeguse dokumentatsiooni põhjal toodud näitena; vajaduse korral asendage see oma kontol lubatud mudeliga.

set -euo pipefail

: "${ZAI_API_KEY:?Set ZAI_API_KEY first}"

curl --fail-with-body --silent --show-error 
  --request POST 
  --url https://api.z.ai/api/paas/v4/chat/completions 
  --header "Authorization: Bearer ${ZAI_API_KEY}" 
  --header "Content-Type: application/json" 
  --data '{
    "model": "glm-5.3",
    "messages": [
      {
        "role": "system",
        "content": "You are a concise technical assistant."
      },
      {
        "role": "user",
        "content": "Explain API rate limiting in three bullet points."
      }
    ],
    "temperature": 0.2
  }'

Päring sisaldab mudelitunnust ja järjestatud massiivi messages. Süsteemisõnumiga saab määrata üldise käitumise, kasutajasõnum sisaldab aga praegust ülesannet. Mitme vooruga vestluse korral salvestab rakendus asjakohase ajaloo ja saadab selle järgmise päringuga uuesti.

Vastuse mõistmine

Edukalt töödeldud voogedastuseta vastus järgib tuttavat vestluse lõpetamise mustrit. Genereeritud tekst loetakse tavaliselt esimese valiku sõnumi sisust:

response.choices[0].message.content

Rakendused peaksid siiski kontrollima puuduvate valikute, tühja sisu, tööriistakutsete ja veavastuste olemasolu. Ärge eeldage, et iga edukas vastus sisaldab tavalist teksti: mudel võib tagastada tööriista kutsumise päringu või spetsiaalne toiming võib tagastada teistsuguse, dokumentatsioonis kirjeldatud struktuuri.

Tootmiskoodis parsige JSON-vastus, kontrollige HTTP olekut, salvestage päringu identifikaator, kui see on saadaval, ning käsitlege teenusepakkuja vigu nii, et API-võti ega tundlik päringu sisu ei satuks logidesse.

Kuidas Z.ai API hinnastamine toimib?

Üldise API kasutamine põhineb kasutusel, mitte ühel piiramatul tellimusel. Z.ai pakub tokenipakette ja ettemakstud API ressursse ning hind sõltub valitud mudelist ja konto tingimustest. Ettevõtte-, mahu- või ärikliendi hinnastamist võidakse korraldada müügiosakonna kaudu. Avalikud hinnad ja mudelite kättesaadavus võivad muutuda, seega kontrollige projekti eelarve hindamisel Z.ai praeguseid hinnalehti.

Kodeerimisplaanid on tavalisest API-arveldamisest eraldi. Neil on oma tellimuskvoodid ja kodeerimise lõpp-punkt. Kodeerimisplaani tellimust ei tohiks käsitleda üldotstarbelise saldona, mida saab kasutada kõigi API toimingute jaoks.

Eelarvestamisel mõõtke tüüpiliste päringute puhul nii sisendi kui ka väljundi kasutust, arvestage korduspäringute ja tööriistakutsetega ning käsitlege multimodaalseid või spetsiaalseid toiminguid eraldi, kui dokumentatsioon kasutab nende puhul teistsugust hinnastamist. Jälgige konto tarbimist ja kvooti, mitte ärge tuginege üksnes staatilisele hinnangule.

Voogedastus, vestlused ja multimodaalne sisend

Määrake stream väärtuseks true, et saada järk-järgult saabuvaid serverilt saadetavaid sündmusi. Voogedastus võimaldab liidesel kuvada teksti selle saabumise ajal, selle asemel et oodata kogu vastuse valmimist. Klient peaks töötlema delta-sisu, tuvastama lõpetava sündmuse ja käsitlema võimalikke veosisuga sündmusi.

Mitme vooruga rakendustes hoidke vestluse olekut oma rakenduses. Säilitage täpselt assistendi tööriistakutse sõnumid, tööriistakutsete identifikaatorid ja neile vastavad tööriistade tulemused. See on eriti oluline vestlustes, kus mudeli väljund vaheldub väliste toimingutega.

Vestluse lõpetamise API toetab multimodaalset sõnumisisu, sealhulgas teksti- ja pildisisendit; heli-, video- ja failisisendi kohta on olemas täiendav dokumentatsioon. Meedia tugi sõltub mudelist. Valige mudel, mis toetab sõnaselgelt vajalikku meediatüüpi, ja järgige dokumenteeritud sisuosade vormingut, selle asemel et eeldada, et kõik GLM-mudelid võtavad vastu igat tüüpi sisendit.

Funktsioonikutsed, tööriistad ja MCP

Funktsioonikutse võimaldab mudelil taotleda toimingut, mille rakendus ise teostab. Kirjeldate funktsiooni nime, selgituse ja JSON Schema laadse parameetrite määratlusega. Mudel ei käivita iseseisvalt turvaliselt suvalist koodi: rakendus peab argumendid valideerima, õigusi jõustama, funktsiooni käivitama ja saatma tulemuse järelpäringuga tagasi.

Tüüpiline töövoog on järgmine:

  1. Saatke kasutaja sõnum ja saadaolevate tööriistade määratlused.
  2. Kontrollige vastust tööriistakutse suhtes.
  3. Valideerige taotletud funktsioon ja selle argumendid.
  4. Käivitage ainult heakskiidetud toiming.
  5. Lisage assistendi tööriistakutse sõnum ja tööriista tulemus.
  6. Saatke uus lõpetamise päring, et mudel saaks koostada lõpliku vastuse.

Z.ai dokumenteerib ka MCP-serverite kutsumist. MCP saab ühendada mudeli väliste serveritega, kasutades dokumenteeritud transpordiviise, näiteks voogedastatavat HTTP-d või SSE-d. See võib toetada veebiotsingut, visuaalset analüüsi, dokumenditöötlust ja muid väliseid toiminguid, kuid kehtivad samad turvareeglid: piirake saadaolevaid tööriistu, valideerige sisendid, määrake ajalõpud ja käsitlege väliste tööriistade tulemusi ebausaldusväärsete andmetena.

Failid ja spetsiaalsed arendaja-API-d

Failide üleslaadimist kirjeldatakse agentide töövoogudes, sealhulgas viitematerjale kasutavates tõlketöövoogudes. Üldine multimodaalne vestlus võib valitud mudeli ja lõpp-punkti toel vastu võtta faililaadset sisu. Failitugi sõltub seega konkreetsest toimingust ega tähenda üldist lubadust, et mis tahes faili saab lisada mis tahes vestluspäringule.

Sõltuvalt kasutusjuhtumist saavad arendajad kasutada ka järgmisi API-sid:

  • Piltide genereerimine
  • Asünkroonne videote genereerimine
  • Heli transkribeerimine
  • OCR ja paigutuse analüüs
  • Veebiotsing ja veebi sisu lugemine
  • Tokeniseerimine ja tõlkimine
  • Spetsiaalsed agentide vestlused, sealhulgas slaidi- ja tõlketöövood

Enne faili- või meediatöövoo rakendamist kontrollige, kas toiming on sünkroonne või asünkroonne, milline mudel või lõpp-punkt sisu vastu võtab, kuidas tulemusi hangitakse ning millised kontoõigused või kvoodid kehtivad.

Struktureeritud JSON-väljundi taotlemine

Ühilduvad mudelid ja päringurežiimid toetavad struktureeritud väljundi juhtelemente. JSON-objekti kujul vastust saab taotleda väärtusega response_format, kuid tagastatud tekst tuleks siiski parsida ja valideerida rakenduse enda skeemi alusel. Struktureeritud väljund ei kõrvalda vajadust käsitleda toetamata mudeleid, vigaseid vastuseid, puuduvaid välju ega kontopõhiseid piiranguid.

curl --fail-with-body --silent --show-error 
  --request POST 
  --url https://api.z.ai/api/paas/v4/chat/completions 
  --header "Authorization: Bearer ${ZAI_API_KEY}" 
  --header "Content-Type: application/json" 
  --data '{
    "model": "glm-5.3",
    "messages": [
      {
        "role": "user",
        "content": "Return a JSON object with keys name and priority for a timeout bug."
      }
    ],
    "response_format": {"type": "json_object"}
  }'

Pärast vastuse saamist parsige sõnumi sisu JSON-ina ning valideerige tüüp ja nõutud väljad. Kui rakendus nõuab ranget skeemi, lükake vigased andmed tagasi või parandage need turvaliselt, selle asemel et edastada need otse äriloogikale.

Pythoni SDK ja integratsioonivõimalused

Z.ai dokumenteerib ametliku Pythoni SDK, mida levitatakse paketina zai-sdk, ning ametliku Java SDK. Järgmine Pythoni näide kasutab dokumenteeritud mustrit ZaiClient ning sisaldab tavalisi, voogedastatavaid ja struktureeritud väljundiga päringuid.

import json
import os
import sys
from zai import ZaiClient

api_key = os.environ.get("ZAI_API_KEY")
if not api_key:
    raise SystemExit("Set ZAI_API_KEY before running this example")

client = ZaiClient(api_key=api_key)

try:
    response = client.chat.completions.create(
        model="glm-5.3",
        messages=[
            {"role": "system", "content": "You are a concise technical assistant."},
            {"role": "user", "content": "Give me two practical API retry recommendations."},
        ],
        temperature=0.2,
    )
    print(response.choices[0].message.content)
except Exception as exc:
    print(f"Z.ai request failed: {exc}", file=sys.stderr)
    raise

stream = client.chat.completions.create(
    model="glm-5.3",
    messages=[
        {"role": "user", "content": "Explain server-sent events in four short steps."}
    ],
    stream=True,
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)
print()

structured = client.chat.completions.create(
    model="glm-5.3",
    messages=[
        {"role": "user", "content": "Return JSON with keys title and severity for a 
database timeout bug."} ], response_format={"type": "json_object"}, ) print(json.loads(structured.choices[0].message.content))

JavaScripti ja PHP rakendused saavad HTTP API-d otse kutsuda. Selle juhendi jaoks läbi vaadatud praegune dokumentatsioon kinnitab Pythoni ja Java SDK-de olemasolu, kuid dokumentatsiooniindeksist ei leidunud kinnitust ametliku JavaScripti või PHP SDK kohta.

Töölaud ja arendajatööriistad

Z.ai pakub mudeli-API lehte ja API portaali, kus saab katsetada juurdepääsu, mudeleid ja kasutust. Dokumentatsioon sisaldab kiirjuhendeid, HTTP-näiteid, SDK-juhendeid, API-viiteid, voogedastust, funktsioonikutsed, MCP-d, struktureeritud väljundit, veebiotsingut, agente ja spetsiaalseid meedia-API-sid.

Kasutage portaali või töölauda väikesteks käsitsi tehtavateks testideks, kuid korrake olulisi teste enne tootmiskasutust koodis. Töölaud võib kasutada mudelit, seadistust, kontoõigust või kvooti, mis erineb teie rakenduse kasutatavast keskkonnast.

Piirangud ja tootmiskasutuse kaalutlused

Z.ai avaldab eraldi kiiruspiirangute viite, kuid piirangud võivad mudeli, konto, paketi ja teenusejuurdepääsu järgi erineda. Kõigile klientidele sobivat ühtset universaalset piirangut ei tohiks kõvakodeerida. Rakendage ajutiste tõrgete korral piiratud korduskatseid eksponentsiaalse viivitusega, järgige HTTP veavastuseid ning jälgige kvooti ja kasutust.

Samuti ei ole iga mudeli või piirkonna kohta kontrollitud ühtki universaalset avalikku latentsusgarantiid. Latentsus sõltub mudeli valikust, viiba ja väljundi suurusest, arutlusseadetest, teenuse koormusest, võrgu teekonnast ja sellest, kas voogedastus on lubatud. Määrake rakendusele ajalõpud, vältige piiramatuid korduskatseid ja kujundage kasutajaliidesed nii, et need taluksid viivitusega või osalisi tulemusi.

Hoidke saladused viipadest ja lähtekoodist eemal. Minimeerige tundlikke andmeid, rakendage oma süsteemides säilitamise juhtelemente ning vaadake enne konfidentsiaalse või reguleeritud teabe saatmist üle kehtivad API kasutustingimused ja andmetöötluse lisa. Läbi vaadatud avalikud materjalid ei kehtesta üht universaalset API andmete säilitamise perioodi ega lihtsat treeningkasutuse reeglit, mis kehtiks kõigile API klientidele ja piirkondadele.

Lõpuks võivad mudelite ja funktsioonide kättesaadavus muutuda. Kontrollige juurutamise ajal toetatud mudeleid, käsitlege toetamata funktsioonide vigu, testige pika konteksti ja tööriistade töövooge realistliku koormuse all ning hoidke teenusepakkujaspetsiifiline käitumine rakenduse liidese taga, kui teisaldatavus on oluline.

Eelised ja piirangud

Millal on API hea valik?

  • OpenAI-ga ühilduvad vestluse lõpetamise mustrid võivad olemasolevalt integratsioonilt üleminekut kiirendada.
  • Platvorm hõlmab teksti, arutlust, kodeerimist, multimodaalset mõistmist, tööriistu, otsingut, agente ja spetsiaalseid meediatoiminguid.
  • Lisaks otse HTTP kaudu integreerimisele on saadaval ametlik Pythoni ja Java SDK dokumentatsioon.
  • MCP ja funktsioonikutsed võimaldavad ühendada mudelid rakenduse teenuste ja väliste tööriistadega.
  • Üldine API kasutab ettemakstud ressursse ja kasutuspõhiseid pakette, mis võib sobida kasutuspõhist ostmist eelistavatele meeskondadele.

Mida hoolikalt hinnata?

  • Mudelite, funktsioonide, kvootide ja piirkondade kättesaadavus võib erineda.
  • Üldise API ressursid ja kodeerimisplaani kvoodid kasutavad erinevaid lõpp-punkte ja arveldustingimusi.
  • Faili-, heli-, video-, struktureeritud väljundi ja tööriistade funktsioonid sõltuvad konkreetsest mudelist või toimingust.
  • Kiiruspiirangud ja latentsus sõltuvad kontost ja töökoormusest ning neid ei kata üks universaalne avalik garantii.
  • API andmete säilitamise, kustutamise, logimise ja treeningus kasutamise tingimused tuleb konkreetse konto või lepingu puhul üle kontrollida.

Millal kasutada Z.ai API-d?

Valige Z.ai, kui vajate GLM-il põhinevaid teksti- või kodeerimisfunktsioone, multimodaalset analüüsi, väliseid tööriistu, veebiotsingut, agentide töövooge või spetsiaalseid pildi-, video-, heli-, OCR-i ja tõlketoiminguid. Selle OpenAI-ga ühilduv põhiliides on praktiline ka arendajatele, kes soovivad tavapärast vestluse lõpetamise integratsiooni.

Hinnake alternatiive hoolikalt, kui teie rakendus sõltub ühtlasest kättesaadavusest kõigis piirkondades, väga küpsest mobiili- või tarbijaassistendi ökosüsteemist, ulatuslikest personaliseerimistööriistadest või täielikult läbipaistvatest ja kõigile kehtivatest andmete säilitamise ning treeningus kasutamise juhtelementidest. Kõigil juhtudel tehke tüüpilised testid täpselt selle mudeli, lõpp-punkti, konto, piirkonna, viiba suuruse ja tööriistade töövooga, mida tootmiskeskkonnas kasutama hakatakse.

Allikad 27