{
  "aboutHtml": "<p>A GLM-4V-Plus a Zhipu AI multimodális modellje képek vagy videó értelmezéséhez és szöveg előállításához. A gyártó ügynökfejlesztési útmutatója kifejezetten megkülönbözteti a GLM-4V képből szöveget készítő munkafolyamatától: a Plus profil képi vagy videós anyagot fogad írásos prompttal együtt. Ezzel a kombinációval egy vizuális kérdésből forráshoz kötött leírást, magyarázatot vagy munkajegyzetet készíthet.</p><h4>Válassza ki a kérdéshez tartozó vizuális bizonyítékot</h4><p>Adja meg a vizsgálandó eseményt, objektumot vagy kapcsolatot tartalmazó képet vagy videót, és nevezze meg a feladat célját. Képre vonatkozó kérdés fókuszálhat látható elrendezésre vagy dokumentumrészletre. Videóra vonatkozó kérdés kérheti a bemutatott cselekvés magyarázatát vagy a megadott eseménysor összefoglalását.</p><p>A referenciaazonosítót tartsa a kérdés mellett. Videóellenőrzésnél nevezze meg az eseménysort, és ha hasznos, a figyelembe veendő időszakaszt. Szemléltető utasítás lehet: „Írja le a kiválasztott időszakaszban látható cselekvést, és magyarázza el, hogyan támasztja alá a látható eseménysor a leírását.” A feladatleírás időhivatkozása a kért anyagot azonosítja; nem helyettesíti a videóbemenetet.</p><h4>Rendelje minden bemenethez a szerepét</h4><p>A gyártó két ügynökmunkafolyamatot dokumentál: egy beszélgetési ügynököt, amely feltöltött képet vagy videót társít a prompthoz, és egy szövegközpontú ügynököt kifejezetten megnevezett feltöltési bemenetekkel. Az utóbbi munkafolyamatban több vizuális bemenet állítható be külön elnevezett bemeneti mezőkön keresztül. Minden referenciának adjon világos szerepet, például kezdeti állapotot, későbbi állapotot vagy vizsgálandó dokumentumot.</p><p>Szemléltető összehasonlításnál címkézze a referenciákat, mielőtt rákérdez a változásokra. Kérjen írásos összehasonlítást, amely minden megfigyelés forrását megnevezi. Ez ellenőrzési jegyzetként használhatóvá teszi az eredményt, és az adott képre vagy eseménysorra vonatkozó későbbi kérdést a megfelelő referenciához kapcsolja.</p><h4>Kérjen használható írásos eredményt</h4><p>Határozza meg a következő lépéshez szükséges anyagot: képaláírást, magyarázatot, eseménysor-összefoglalót vagy forráshivatkozásokhoz kötött megfigyeléslistát. Kérje, hogy a modell különítse el a látható dolgokat azoktól, amelyekhez további kontextus szükséges. Dokumentumkérdésnél a visszaadott értelmezés mellett őrizze meg az oldal azonosítóját; cselekvéssornál az összefoglaló mellett tartsa meg a kiválasztott időszakaszt és az eredeti videórészletet.</p><p>A dokumentált GLM-4V-Plus munkafolyamat kimenete szöveg. Vizuális tudásfeljegyzés készítésekor vagy az ellenőrzés másnak való átadásakor őrizze meg ezt a választ a prompttal és a bemeneti referenciákkal együtt. Vesse össze a neveket, feliratokat és eseményleírásokat a forrásanyaggal, majd a következő kérésben a tisztázandó konkrét megfigyelésre térjen ki.</p><h4>Tartsa meg a kiválasztott vizuális profilt az eredménnyel</h4><p>A GLM-4V és GLM-4V-Plus külön névvel azonosított gyártói profilok. Válassza a Plus változatot olyan feladathoz, amelynek megadott bizonyítékai videót is tartalmaznak, és őrizze meg ezt a választást a kész jegyzettel együtt. A hasznos folytatás ugyanarra az anyagra hivatkozik, szűkíti a kért megfigyelést, és a korábbi választ a munkafeljegyzés részeként megőrzi.</p>",
  "aboutText": "A GLM-4V-Plus a Zhipu AI multimodális modellje képek vagy videó értelmezéséhez és szöveg előállításához. A gyártó ügynökfejlesztési útmutatója kifejezetten megkülönbözteti a GLM-4V képből szöveget készítő munkafolyamatától: a Plus profil képi vagy videós anyagot fogad írásos prompttal együtt. Ezzel a kombinációval egy vizuális kérdésből forráshoz kötött leírást, magyarázatot vagy munkajegyzetet készíthet.\n\n### Válassza ki a kérdéshez tartozó vizuális bizonyítékot\n\nAdja meg a vizsgálandó eseményt, objektumot vagy kapcsolatot tartalmazó képet vagy videót, és nevezze meg a feladat célját. Képre vonatkozó kérdés fókuszálhat látható elrendezésre vagy dokumentumrészletre. Videóra vonatkozó kérdés kérheti a bemutatott cselekvés magyarázatát vagy a megadott eseménysor összefoglalását.\n\nA referenciaazonosítót tartsa a kérdés mellett. Videóellenőrzésnél nevezze meg az eseménysort, és ha hasznos, a figyelembe veendő időszakaszt. Szemléltető utasítás lehet: „Írja le a kiválasztott időszakaszban látható cselekvést, és magyarázza el, hogyan támasztja alá a látható eseménysor a leírását.” A feladatleírás időhivatkozása a kért anyagot azonosítja; nem helyettesíti a videóbemenetet.\n\n### Rendelje minden bemenethez a szerepét\n\nA gyártó két ügynökmunkafolyamatot dokumentál: egy beszélgetési ügynököt, amely feltöltött képet vagy videót társít a prompthoz, és egy szövegközpontú ügynököt kifejezetten megnevezett feltöltési bemenetekkel. Az utóbbi munkafolyamatban több vizuális bemenet állítható be külön elnevezett bemeneti mezőkön keresztül. Minden referenciának adjon világos szerepet, például kezdeti állapotot, későbbi állapotot vagy vizsgálandó dokumentumot.\n\nSzemléltető összehasonlításnál címkézze a referenciákat, mielőtt rákérdez a változásokra. Kérjen írásos összehasonlítást, amely minden megfigyelés forrását megnevezi. Ez ellenőrzési jegyzetként használhatóvá teszi az eredményt, és az adott képre vagy eseménysorra vonatkozó későbbi kérdést a megfelelő referenciához kapcsolja.\n\n### Kérjen használható írásos eredményt\n\nHatározza meg a következő lépéshez szükséges anyagot: képaláírást, magyarázatot, eseménysor-összefoglalót vagy forráshivatkozásokhoz kötött megfigyeléslistát. Kérje, hogy a modell különítse el a látható dolgokat azoktól, amelyekhez további kontextus szükséges. Dokumentumkérdésnél a visszaadott értelmezés mellett őrizze meg az oldal azonosítóját; cselekvéssornál az összefoglaló mellett tartsa meg a kiválasztott időszakaszt és az eredeti videórészletet.\n\nA dokumentált GLM-4V-Plus munkafolyamat kimenete szöveg. Vizuális tudásfeljegyzés készítésekor vagy az ellenőrzés másnak való átadásakor őrizze meg ezt a választ a prompttal és a bemeneti referenciákkal együtt. Vesse össze a neveket, feliratokat és eseményleírásokat a forrásanyaggal, majd a következő kérésben a tisztázandó konkrét megfigyelésre térjen ki.\n\n### Tartsa meg a kiválasztott vizuális profilt az eredménnyel\n\nA GLM-4V és GLM-4V-Plus külön névvel azonosított gyártói profilok. Válassza a Plus változatot olyan feladathoz, amelynek megadott bizonyítékai videót is tartalmaznak, és őrizze meg ezt a választást a kész jegyzettel együtt. A hasznos folytatás ugyanarra az anyagra hivatkozik, szűkíti a kért megfigyelést, és a korábbi választ a munkafeljegyzés részeként megőrzi.",
  "editorialOverlay": {
    "copy_fields": {
      "practical_html": "<h3>Gyakorlati feladat</h3><p>Technikai példa angolul</p><pre><code>Compare labelled inspection notes\n\nUse only these text inspection notes. Before: crate latch closed, seal present, label K7. After: latch open, seal missing, label K7. Write a comparison for the receiving team. Distinguish documented changes from unknown causes and list the next evidence to request. No image or video is attached.</code></pre><h4>Várt eredmény</h4><pre><code>A before/after comparison with source labels, an unknown-cause note and a short evidence request.</code></pre><h4>Az eredmény ellenőrzése</h4><pre><code>The latch and seal changes are reported, while damage, theft and the person responsible remain unasserted.</code></pre>"
    },
    "copy_sha256": "97fd05e1a80e28447e2a544e60bccfdbe46bfa5a2ab3655f19a296e2b82cd548",
    "copy_source": {
      "locale": "hu",
      "pack_sha256": "0f56d90ba41881e1134accf82e57338f246f8753ca4c0cee929aaffada5d10e7",
      "record_model_id": "glm-4v-plus",
      "source_facts_sha256": "a5e52fd92a50d2b1bd1f9341ce0594cc810bee48ac36c6a7eb7b8e76c7500249",
      "validation_sha256": "a2ac2f28056280fc0b2ea34a501bf156d5ce155406e57e708edf30bfdf6bfdc6"
    },
    "html_sha256": "c490c52b92e649970c91be39b90b098864fad21f603ad7610fc9461b093cd89a",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "hu",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">Z</span><h2 id=\"sheet-title\">GLM-4V-Plus</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Bezárás\">×</button></div><div class=\"idline\"><span>Z.ai /</span><code>glm-4v-plus</code><button type=\"button\" id=\"copy-id\">ID másolása</button></div><nav class=\"card-jump-nav\" aria-label=\"Modellkártya szakaszai\"><button type=\"button\" data-card-jump=\"overview\">Kezdő lépések</button><button type=\"button\" data-card-jump=\"methods\">Bemenetek és metódusok</button><button type=\"button\" data-card-jump=\"pricing\">Díjcsomagok</button><button type=\"button\" data-card-jump=\"examples\">Példák</button><button type=\"button\" data-card-jump=\"results\">Eredmények</button><button type=\"button\" data-card-jump=\"aliases\">Álnevek</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API-metódusok\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|chat|/v1/chat/completions|glm-4v-plus\">Chat</button><button type=\"button\" role=\"tab\" tabindex=\"-1\" aria-controls=\"card-method-content\" aria-selected=\"false\" id=\"card-method-tab-1\" data-card-method=\"Ultra|messages|/v1/messages|glm-4v-plus\">Messages</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Kezdő lépések</h3><p class=\"mdesc-full\">A GLM-4V-Plus a Zhipu AI modellje képek vagy videó szöveges prompttal együtt történő értelmezéséhez és írásos válasz visszaadásához. Eseménysor összefoglalásához vagy a bemutatott cselekvés írásos magyarázatához a videót támogató Plus profilt válassza.</p><dl class=\"card-io\" data-card-io><div><dt>Elfogadott bemenetek</dt><dd>Szöveg</dd></div><div><dt>Eredmények</dt><dd>Szöveg</dd></div></dl><details class=\"card-about\"><summary>A modellről</summary><p class=\"note-s\" data-model-method-boundary>Ez a leírás a modell képességeit ismerteti. Az Ailootban elérhető bemenetek, kimenetek és lehetőségek alább, a kiválasztott metódusnál láthatók.</p><div class=\"mabout\" id=\"m-about\"><p>A GLM-4V-Plus a Zhipu AI multimodális modellje képek vagy videó értelmezéséhez és szöveg előállításához. A gyártó ügynökfejlesztési útmutatója kifejezetten megkülönbözteti a GLM-4V képből szöveget készítő munkafolyamatától: a Plus profil képi vagy videós anyagot fogad írásos prompttal együtt. Ezzel a kombinációval egy vizuális kérdésből forráshoz kötött leírást, magyarázatot vagy munkajegyzetet készíthet.</p><h4>Válassza ki a kérdéshez tartozó vizuális bizonyítékot</h4><p>Adja meg a vizsgálandó eseményt, objektumot vagy kapcsolatot tartalmazó képet vagy videót, és nevezze meg a feladat célját. Képre vonatkozó kérdés fókuszálhat látható elrendezésre vagy dokumentumrészletre. Videóra vonatkozó kérdés kérheti a bemutatott cselekvés magyarázatát vagy a megadott eseménysor összefoglalását.</p><p>A referenciaazonosítót tartsa a kérdés mellett. Videóellenőrzésnél nevezze meg az eseménysort, és ha hasznos, a figyelembe veendő időszakaszt. Szemléltető utasítás lehet: „Írja le a kiválasztott időszakaszban látható cselekvést, és magyarázza el, hogyan támasztja alá a látható eseménysor a leírását.” A feladatleírás időhivatkozása a kért anyagot azonosítja; nem helyettesíti a videóbemenetet.</p><h4>Rendelje minden bemenethez a szerepét</h4><p>A gyártó két ügynökmunkafolyamatot dokumentál: egy beszélgetési ügynököt, amely feltöltött képet vagy videót társít a prompthoz, és egy szövegközpontú ügynököt kifejezetten megnevezett feltöltési bemenetekkel. Az utóbbi munkafolyamatban több vizuális bemenet állítható be külön elnevezett bemeneti mezőkön keresztül. Minden referenciának adjon világos szerepet, például kezdeti állapotot, későbbi állapotot vagy vizsgálandó dokumentumot.</p><p>Szemléltető összehasonlításnál címkézze a referenciákat, mielőtt rákérdez a változásokra. Kérjen írásos összehasonlítást, amely minden megfigyelés forrását megnevezi. Ez ellenőrzési jegyzetként használhatóvá teszi az eredményt, és az adott képre vagy eseménysorra vonatkozó későbbi kérdést a megfelelő referenciához kapcsolja.</p><h4>Kérjen használható írásos eredményt</h4><p>Határozza meg a következő lépéshez szükséges anyagot: képaláírást, magyarázatot, eseménysor-összefoglalót vagy forráshivatkozásokhoz kötött megfigyeléslistát. Kérje, hogy a modell különítse el a látható dolgokat azoktól, amelyekhez további kontextus szükséges. Dokumentumkérdésnél a visszaadott értelmezés mellett őrizze meg az oldal azonosítóját; cselekvéssornál az összefoglaló mellett tartsa meg a kiválasztott időszakaszt és az eredeti videórészletet.</p><p>A dokumentált GLM-4V-Plus munkafolyamat kimenete szöveg. Vizuális tudásfeljegyzés készítésekor vagy az ellenőrzés másnak való átadásakor őrizze meg ezt a választ a prompttal és a bemeneti referenciákkal együtt. Vesse össze a neveket, feliratokat és eseményleírásokat a forrásanyaggal, majd a következő kérésben a tisztázandó konkrét megfigyelésre térjen ki.</p><h4>Tartsa meg a kiválasztott vizuális profilt az eredménnyel</h4><p>A GLM-4V és GLM-4V-Plus külön névvel azonosított gyártói profilok. Válassza a Plus változatot olyan feladathoz, amelynek megadott bizonyítékai videót is tartalmaznak, és őrizze meg ezt a választást a kész jegyzettel együtt. A hasznos folytatás ugyanarra az anyagra hivatkozik, szűkíti a kért megfigyelést, és a korábbi választ a munkafeljegyzés részeként megőrzi.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Elérhető az Ailootban · bemenetek és metódusok</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · OpenAI Chat</b> <code>POST /v1/chat/completions</code></summary><dl class=\"method-capabilities\"><div><dt>Bemenet</dt><dd><code>text</code></dd></div><div><dt>Kimenet</dt><dd><code>text</code></dd></div><div><dt>Kimeneti formátum</dt><dd>json vagy SSE</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Mező</th><th>Típus</th><th>Követelmény</th><th>Értékek és korlátok</th><th>Alapértelmezett</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>string</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Kötelező</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>glm-4v-plus</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">messages</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>message[]</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Kötelező</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>Minimális elemszám: 1</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">messages[].role</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>string</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Kötelező</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>Példák: system, user, assistant, tool, function</div><div>Feltételek: Ezeket a szerepeket a forráskód kompatibilitási típusai kifejezetten reprezentálják; a pontos szerepkészlet továbbra is modellspecifikus.</div><div class=\"note-s\">Modelltől függ</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">messages[].content</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>string|content_part[]|null</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">messages[].tool_calls</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>tool_call[]</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">messages[].tool_call_id</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>string</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>Akkor alkalmazandó, ha: role=tool; használja a ténylegesen visszaadott ID-t</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">messages[].name</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>string</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">messages[].reasoning_content</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>string</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>Akkor alkalmazandó, ha: Küldje vissza a ténylegesen visszaadott gondolkodási tartalmat, ha ez a modell használja</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">messages[].reasoning_details</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>object|array</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div class=\"note-s\">Modelltől függ</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">max_tokens</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>integer</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>Minimum: 1</div><div class=\"note-s\">Modelltől függ</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">max_completion_tokens</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>integer</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>Minimum: 1</div><div class=\"note-s\">Modelltől függ</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">stream</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>boolean</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span></td><td data-cell-label=\"Alapértelmezett\" data-default=\"known\"><span class=\"card-cell-label\">Alapértelmezett</span>false</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">stream_options.include_usage</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>boolean</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div class=\"note-s\">Modelltől függ</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">temperature</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>number</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div class=\"note-s\">Modelltől függ</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">top_p</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>number</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div class=\"note-s\">Modelltől függ</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">stop</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>string|string[]</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div class=\"note-s\">Modelltől függ</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">tools</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>function_tool[]</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div class=\"note-s\">Modelltől függ</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">tools[].type</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>string</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>function</div><div class=\"note-s\">Modelltől függ</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">tools[].function.name</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>string</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Kötelező</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>Akkor alkalmazandó, ha: Függvényeszköz megadva</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">tools[].function.description</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>string</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">tools[].function.parameters</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>JSON_schema</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">tool_choice</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>string|object</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div class=\"note-s\">Modelltől függ</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">parallel_tool_calls</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>boolean</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div class=\"note-s\">Modelltől függ</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">response_format</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>object</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div class=\"note-s\">Modelltől függ</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">reasoning_effort</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>string</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div class=\"note-s\">Modelltől függ</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">reasoning</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>object</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div class=\"note-s\">Modelltől függ</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">service_tier</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>string</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div class=\"note-s\">Modelltől függ</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"source_compatibility\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">instructions</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>string</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div class=\"note-s\">Kompatibilitási mező</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">functions</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>function[]</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div class=\"note-s\">Modelltől függ</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">function_call</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>string|object</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div class=\"note-s\">Modelltől függ</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">prompt_cache_options</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>object</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div class=\"note-s\">Modelltől függ</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">modalities</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>string[]</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>text</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>object</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>Feltételek: A provider.options elutasításra kerül ezen az Ultra szöveges útvonalon</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">cache_control.ttl</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>string</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>Feltételek: Az 1h elutasításra kerül a tényleges prompt-gyorsítótárazási helyeken</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Bemeneti anyagok kombinációi</summary><p class=\"note-s\"><b>Szöveg</b> · UTF8 szöveg</p><p class=\"note-s\"><code>messages[].content</code></p></details><details class=\"note-s\" data-method-contract><summary>Metódus paraméterei és életciklusa</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Paraméter</th><th>Szerződés</th></tr></thead><tbody><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>content_type</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>application/json</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>required</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>model, messages</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>material_types</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>text</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>messages</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>üzenettömb role/content szerkezettel</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>file_material</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>a tényleges UTF-8 dokumentum szó szerinti szövegként beillesztve; nincs kikövetkeztetett fájlazonosító</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>optional_controls</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>stream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>control_scope</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>modellspecifikus; a felhasználói függvényeszközök eltérnek a hosztolt eszközöktől</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>output_modalities</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>text</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>hosted_operations</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>false</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>multimodal_input_binding</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>null</td></tr></tbody></table></div><p>Életciklus: <code>synchronous_or_streamed</code></p><p class=\"note-s\">Küldje el a pontos modellazonosítót a messages mellett.</p><p class=\"note-s\">A kontextushossz nem kimeneti felső korlát.</p><p class=\"note-s\">Egy szövegfájl szó szerinti szöveget adhat meg; a kép-/hang-/fájlobjektum-bemenetek pontos hozzárendelést igényelnek.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Díjcsomagok</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>A díjszabás nem ad új kérési lehetőségeket. A támogatott paraméterek a kiválasztott módszernél szerepelnek.</p><dl data-price-conditions><dt>Gyors mód</dt><dd>Nincs megadva <span class=\"note-s\">Ha a gyors mód van kiválasztva</span></dd><dt>Flex mód</dt><dd>Nincs megadva <span class=\"note-s\">Ha a flex mód van kiválasztva</span></dd><dt>Maximális gondolkodási ráfordítás</dt><dd>Nincs megadva <span class=\"note-s\">Ha a maximális gondolkodási ráfordításra a default beállításhoz tartozó korrekció vonatkozik</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailoot-díjak</h4><h4>Árak beállításonként</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Beállítás</th><th>Díjtáblázat</th><th>Díj</th></tr></thead><tbody><tr><th data-cell-label=\"Beállítás\" scope=\"row\"><span class=\"card-cell-label\">Beállítás</span>Tokenenkénti alapárak</th><td data-cell-label=\"Díjtáblázat\"><span class=\"card-cell-label\">Díjtáblázat</span>Alapdíj</td><td data-cell-label=\"Díj\"><span class=\"card-cell-label\">Díj</span><div><span>Bemenet · Bemeneti tokenek</span> <b>$0.0028</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Kimenet · Kimeneti tokenek</span> <b>$0.0028</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Bemenet · Gyorsítótár olvasása</span> <b>$0</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Bemenet · Írás a gyorsítótárba</span> <b>$0</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Bemenet · Írás a gyorsítótárba, 1 óra</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Az Ailoot a kérés előtt becsült összeget foglal le. Az eredmény után a mért használat alapján elszámolja a végső díjat. Folyamatos átvitel esetén a végső használati rekordot használja. <a href=\"/docs/hu/billing/reserve/\">A foglalás és az elszámolás működése →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Példakérések</h3><h4>Ailoot Ultra · OpenAI Chat</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Kódváltozatok\"><button class=\"cg-tab\" id=\"model-code-1423-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1423-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button><button class=\"cg-tab\" id=\"model-code-1423-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1423-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Python SDK</button><button class=\"cg-tab\" id=\"model-code-1423-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1423-panel-2\" aria-selected=\"false\" tabindex=\"-1\">Python-adatfolyam</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kód másolása\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1423-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1423-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;glm-4v-plus&quot;, &quot;messages&quot;: [{&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: &quot;Explain the difference between an observation and a hypothesis in three sentences.&quot;}]}&#39;)\n\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&quot;result.json&quot;).read_text())\nfor x in r.get(&quot;choices&quot;,[]):\n    if x.get(&quot;message&quot;,{}).get(&quot;content&quot;): print(x[&quot;message&quot;][&quot;content&quot;])\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-1423-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-1423-tab-1\" hidden><pre data-lang=\"python\"><code>from openai import OpenAI\nimport os\n\nif not os.environ.get(&quot;AILOOT_API_KEY&quot;, &quot;&quot;).strip(): raise SystemExit(&quot;Set AILOOT_API_KEY before making a request&quot;)\nclient=OpenAI(base_url=&quot;https://api.ailoot.ai/v1&quot;,api_key=os.environ[&quot;AILOOT_API_KEY&quot;],max_retries=0)\nresult=client.chat.completions.create(model=&#39;glm-4v-plus&#39;,messages=[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:&quot;Explain observations and hypotheses in three sentences.&quot;}])\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=&quot;result&quot;):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + &quot;.json&quot;).write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=&quot;utf-8&quot;)\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b&quot;-_&quot;, validate=True)\n        ext = &quot;png&quot; if raw.startswith(b&quot;\\x89PNG\\r\\n\\x1a\\n&quot;) else &quot;jpg&quot; if raw.startswith(b&quot;\\xff\\xd8&quot;) else &quot;webp&quot; if raw[:4] == b&quot;RIFF&quot; and raw[8:12] == b&quot;WEBP&quot; else suffix\n        file = Path(stem + &quot;-&quot; + label + &quot;.&quot; + ext)\n        file.write_bytes(raw)\n        print(&quot;Saved&quot;, file)\n    for index, block in enumerate(data.get(&quot;content&quot;) or []):\n        print(&quot;Content&quot;, index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(&quot;choices&quot;) or []:\n        print(&quot;Choice&quot;, choice.get(&quot;index&quot;), json.dumps(choice.get(&quot;message&quot;, choice.get(&quot;delta&quot;, {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(&quot;output&quot;) or []):\n        print(&quot;Output&quot;, index, json.dumps(item, ensure_ascii=False))\n        if item.get(&quot;type&quot;) == &quot;image_generation_call&quot; and item.get(&quot;result&quot;):\n            save_blob(item[&quot;result&quot;], item.get(&quot;output_format&quot;) or &quot;bin&quot;, &quot;output-&quot; + str(index))\n    for ci, candidate in enumerate(data.get(&quot;candidates&quot;) or []):\n        for pi, part in enumerate((candidate.get(&quot;content&quot;) or {}).get(&quot;parts&quot;) or []):\n            print(&quot;Candidate/part&quot;, ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(&quot;inlineData&quot;) or part.get(&quot;inline_data&quot;)\n            if blob and blob.get(&quot;data&quot;):\n                mime = blob.get(&quot;mimeType&quot;) or blob.get(&quot;mime_type&quot;)\n                suffix = {&quot;image/png&quot;:&quot;png&quot;, &quot;image/jpeg&quot;:&quot;jpg&quot;, &quot;image/webp&quot;:&quot;webp&quot;, &quot;audio/wav&quot;:&quot;wav&quot;, &quot;audio/mpeg&quot;:&quot;mp3&quot;, &quot;video/mp4&quot;:&quot;mp4&quot;}.get(mime, &quot;bin&quot;)\n                save_blob(blob[&quot;data&quot;], suffix, &quot;candidate-&quot; + str(ci) + &quot;-part-&quot; + str(pi))\n\nsave_result(result.to_dict(mode=&quot;json&quot;))\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-1423-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-1423-tab-2\" hidden><pre data-lang=\"python\"><code>from openai import OpenAI\nimport os\nfrom pathlib import Path\n\nif not os.environ.get(&quot;AILOOT_API_KEY&quot;, &quot;&quot;).strip(): raise SystemExit(&quot;Set AILOOT_API_KEY before making a request&quot;)\nclient=OpenAI(base_url=&quot;https://api.ailoot.ai/v1&quot;,api_key=os.environ[&quot;AILOOT_API_KEY&quot;],max_retries=0)\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=&quot;result&quot;):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + &quot;.json&quot;).write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=&quot;utf-8&quot;)\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b&quot;-_&quot;, validate=True)\n        ext = &quot;png&quot; if raw.startswith(b&quot;\\x89PNG\\r\\n\\x1a\\n&quot;) else &quot;jpg&quot; if raw.startswith(b&quot;\\xff\\xd8&quot;) else &quot;webp&quot; if raw[:4] == b&quot;RIFF&quot; and raw[8:12] == b&quot;WEBP&quot; else suffix\n        file = Path(stem + &quot;-&quot; + label + &quot;.&quot; + ext)\n        file.write_bytes(raw)\n        print(&quot;Saved&quot;, file)\n    for index, block in enumerate(data.get(&quot;content&quot;) or []):\n        print(&quot;Content&quot;, index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(&quot;choices&quot;) or []:\n        print(&quot;Choice&quot;, choice.get(&quot;index&quot;), json.dumps(choice.get(&quot;message&quot;, choice.get(&quot;delta&quot;, {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(&quot;output&quot;) or []):\n        print(&quot;Output&quot;, index, json.dumps(item, ensure_ascii=False))\n        if item.get(&quot;type&quot;) == &quot;image_generation_call&quot; and item.get(&quot;result&quot;):\n            save_blob(item[&quot;result&quot;], item.get(&quot;output_format&quot;) or &quot;bin&quot;, &quot;output-&quot; + str(index))\n    for ci, candidate in enumerate(data.get(&quot;candidates&quot;) or []):\n        for pi, part in enumerate((candidate.get(&quot;content&quot;) or {}).get(&quot;parts&quot;) or []):\n            print(&quot;Candidate/part&quot;, ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(&quot;inlineData&quot;) or part.get(&quot;inline_data&quot;)\n            if blob and blob.get(&quot;data&quot;):\n                mime = blob.get(&quot;mimeType&quot;) or blob.get(&quot;mime_type&quot;)\n                suffix = {&quot;image/png&quot;:&quot;png&quot;, &quot;image/jpeg&quot;:&quot;jpg&quot;, &quot;image/webp&quot;:&quot;webp&quot;, &quot;audio/wav&quot;:&quot;wav&quot;, &quot;audio/mpeg&quot;:&quot;mp3&quot;, &quot;video/mp4&quot;:&quot;mp4&quot;}.get(mime, &quot;bin&quot;)\n                save_blob(blob[&quot;data&quot;], suffix, &quot;candidate-&quot; + str(ci) + &quot;-part-&quot; + str(pi))\n\nwith client.chat.completions.stream(model=&#39;glm-4v-plus&#39;,messages=[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:&quot;Explain observations and hypotheses in three sentences.&quot;}]) as stream:\n    with Path(&quot;stream-events.jsonl&quot;).open(&quot;w&quot;,encoding=&quot;utf-8&quot;) as log:\n        for event in stream:\n            payload=event.to_dict(mode=&quot;json&quot;)\n            log.write(json.dumps(payload,ensure_ascii=False)+&quot;\\n&quot;); log.flush()\n            print(json.dumps(payload,ensure_ascii=False))\n    final=stream.get_final_completion()\n    save_result(final.to_dict(mode=&quot;json&quot;),&quot;stream-result&quot;)\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Eredmények fogadása és mentése</h3><h4>Ailoot Ultra · OpenAI Chat</h4><p class=\"note-s\">json vagy SSE</p><div class=\"card-result-process\" data-all-results><h5>Őrizzen meg minden elkészült eredményt</h5><p class=\"note-s\">Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.</p><p class=\"note-s\">Őrizze meg az összes válaszváltozatot és azok tartalmát/eszközhívásait/gondolkodási tartalmát. SSE esetén válaszváltozat- és eszközindex szerint állítsa össze a részleges frissítéseket, és tartsa meg a végső befejezési okot és a használati adatokat.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Ha az eredeti választ ellenőrizni kell</h5><p class=\"note-s\">Őrizze meg a kérés-/válaszazonosítókat és a fejléceket. Nincs megadva általános URL a szöveges feladatok lekéréséhez.</p></div><details class=\"card-about\" data-output-fields><summary>Válaszmezők</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Mező</th><th>Típus</th></tr></thead><tbody><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">choices[].index</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>integer</td></tr><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">choices[].message.content</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>string|null</td></tr><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">choices[].message.tool_calls</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>tool_call[]</td></tr><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">choices[].message.reasoning_content</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>string</td></tr><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">choices[].message.reasoning_details</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>object|array</td></tr><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">choices[].finish_reason</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>string|null</td></tr><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Hibák és következő lépések</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Válasz</th><th>Feltétel</th><th>Következő lépés</th></tr></thead><tbody><tr><th data-cell-label=\"Válasz\" scope=\"row\"><span class=\"card-cell-label\">Válasz</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Feltétel\"><span class=\"card-cell-label\">Feltétel</span>Érvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték</td><td data-cell-label=\"Következő lépés\"><span class=\"card-cell-label\">Következő lépés</span>Javítsa a jelzett mezőket egy új létrehozási kérés előtt.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Álnevek</h3><h4>Modell álnevei</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=glm-4v-plus&amp;route=Ultra&amp;caller=glm-4v-plus&amp;fmt=chat\"><code>glm-4v-plus</code></a></span></p><h4>Metódusútvonalak álnevei</h4><p class=\"note-s\">Használja a fent látható metódusútvonalakat.</p><h4>Kapcsolódó modellazonosítók</h4><p class=\"note-s\"><a href=\"#m=glm-4v-plus&amp;route=Ultra&amp;caller=glm-4v-plus&amp;fmt=chat\"><code>glm-4v-plus</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "glm-4v-plus",
        "fmt": "chat",
        "http": "POST",
        "path": "/v1/chat/completions",
        "request_model_id": "glm-4v-plus",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|chat|/v1/chat/completions|glm-4v-plus",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": 0,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every choice and its content/tool calls/reasoning. In SSE assemble deltas by choice/tool index, retain the final finish reason and usage.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "errors": [
              {
                "code": null,
                "condition": "Érvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték",
                "http_status": 400,
                "recovery": "Javítsa a jelzett mezőket egy új létrehozási kérés előtt.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [
              "Model context is not an output cap.",
              "A model-dependent field needs the exact published model profile; unspecified defaults/enums are not guessed.",
              "Tool calls propose actions; the client application returns actual observations with the returned call ID.",
              "Guarded canonical keys must occur once; duplicate or case-varied model/tools/cap fields are rejected."
            ],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/chat/completions"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "Őrizze meg a kérés-/válaszazonosítókat és a fejléceket. Nincs megadva általános URL a szöveges feladatok lekéréséhez."
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "messages[].content",
                "required_material": "UTF8 szöveg"
              }
            ],
            "operation_modes": [
              "conversation",
              "function_tool_continuation",
              "streaming"
            ],
            "outputs": {
              "all_results": "Őrizze meg az összes válaszváltozatot és azok tartalmát/eszközhívásait/gondolkodási tartalmát. SSE esetén válaszváltozat- és eszközindex szerint állítsa össze a részleges frissítéseket, és tartsa meg a végső befejezési okot és a használati adatokat.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "choices[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "choices[].message.content",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "choices[].message.tool_calls",
                  "type": "tool_call[]"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_content",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_details",
                  "type": "object|array"
                },
                {
                  "description": null,
                  "name": "choices[].finish_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json vagy SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "glm-4v-plus"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "model_dependent",
                "conditions": "Ezeket a szerepeket a forráskód kompatibilitási típusai kifejezetten reprezentálják; a pontos szerepkészlet továbbra is modellspecifikus.",
                "default": null,
                "default_known": false,
                "enum": [
                  "system",
                  "user",
                  "assistant",
                  "tool",
                  "function"
                ],
                "enum_exhaustive": false,
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": false,
                "type": "string|content_part[]|null"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].tool_calls",
                "required": false,
                "type": "tool_call[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].tool_call_id",
                "required": false,
                "type": "string",
                "when": "role=tool; használja a ténylegesen visszaadott ID-t"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].name",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].reasoning_content",
                "required": false,
                "type": "string",
                "when": "Küldje vissza a ténylegesen visszaadott gondolkodási tartalmat, ha ez a modell használja"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].reasoning_details",
                "required": false,
                "type": "object|array"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "max_tokens",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "max_completion_tokens",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "stream_options.include_usage",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "temperature",
                "required": false,
                "type": "number"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "top_p",
                "required": false,
                "type": "number"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "stop",
                "required": false,
                "type": "string|string[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools",
                "required": false,
                "type": "function_tool[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": [
                  "function"
                ],
                "enum_known": true,
                "name": "tools[].type",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.name",
                "required": true,
                "type": "string",
                "when": "Függvényeszköz megadva"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.description",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.parameters",
                "required": false,
                "type": "JSON_schema"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tool_choice",
                "required": false,
                "type": "string|object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "parallel_tool_calls",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "response_format",
                "required": false,
                "type": "object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "reasoning_effort",
                "required": false,
                "type": "string"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "reasoning",
                "required": false,
                "type": "object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "service_tier",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_compatibility",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "instructions",
                "required": false,
                "type": "string"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "functions",
                "required": false,
                "type": "function[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "function_call",
                "required": false,
                "type": "string|object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "prompt_cache_options",
                "required": false,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "text"
                ],
                "enum_known": true,
                "name": "modalities",
                "required": false,
                "type": "string[]"
              },
              {
                "availability": "source_interface",
                "conditions": "A provider.options elutasításra kerül ezen az Ultra szöveges útvonalon",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "conditions": "Az 1h elutasításra kerül a tényleges prompt-gyorsítótárazási helyeken",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "cache_control.ttl",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "additional models/models list",
              "plugins",
              "route",
              "hosted tools; ordinary client function tools remain separate",
              "non-text output modalities",
              "provider.options overrides",
              "one-hour prompt-cache TTL"
            ]
          },
          "hints": [
            "Küldje el a pontos modellazonosítót a messages mellett.",
            "A kontextushossz nem kimeneti felső korlát.",
            "Egy szövegfájl szó szerinti szöveget adhat meg; a kép-/hang-/fájlobjektum-bemenetek pontos hozzárendelést igényelnek."
          ],
          "input": {
            "content_type": "application/json",
            "control_scope": "modellspecifikus; a felhasználói függvényeszközök eltérnek a hosztolt eszközöktől",
            "file_material": "a tényleges UTF-8 dokumentum szó szerinti szövegként beillesztve; nincs kikövetkeztetett fájlazonosító",
            "hosted_operations": false,
            "material_types": [
              "text"
            ],
            "messages": "üzenettömb role/content szerkezettel",
            "multimodal_input_binding": null,
            "optional_controls": [
              "stream",
              "temperature",
              "top_p",
              "stop",
              "max_tokens",
              "max_completion_tokens",
              "reasoning",
              "response_format",
              "tools",
              "tool_choice"
            ],
            "output_modalities": [
              "text"
            ],
            "required": [
              "model",
              "messages"
            ]
          },
          "lifecycle": {
            "mode": "synchronous_or_streamed",
            "unknown": "preserve original request id; no generic chat job retrieval path"
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/chat/completions"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_chat"
          ],
          "output": {
            "content": "choices[].message.content or stream delta",
            "family": "text",
            "format": "json or supported SSE",
            "tool_calls": "retain actual returned function calls"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Tokenenkénti alapárak",
            "units": [
              {
                "amount": "0.0028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000028",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000028",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"glm-4v-plus\", \"messages\": [{\"role\": \"user\", \"content\": \"Explain the difference between an observation and a hypothesis in three sentences.\"}]}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"result.json\").read_text())\nfor x in r.get(\"choices\",[]):\n    if x.get(\"message\",{}).get(\"content\"): print(x[\"message\"][\"content\"])\nPY_RESULT\n",
            "label": "curl · retained exact creation",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.chat.completions.create(model='glm-4v-plus',messages=[{\"role\":\"user\",\"content\":\"Explain observations and hypotheses in three sentences.\"}])\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=\"result\"):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + \".json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b\"-_\", validate=True)\n        ext = \"png\" if raw.startswith(b\"\\x89PNG\\r\\n\\x1a\\n\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4] == b\"RIFF\" and raw[8:12] == b\"WEBP\" else suffix\n        file = Path(stem + \"-\" + label + \".\" + ext)\n        file.write_bytes(raw)\n        print(\"Saved\", file)\n    for index, block in enumerate(data.get(\"content\") or []):\n        print(\"Content\", index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(\"choices\") or []:\n        print(\"Choice\", choice.get(\"index\"), json.dumps(choice.get(\"message\", choice.get(\"delta\", {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(\"output\") or []):\n        print(\"Output\", index, json.dumps(item, ensure_ascii=False))\n        if item.get(\"type\") == \"image_generation_call\" and item.get(\"result\"):\n            save_blob(item[\"result\"], item.get(\"output_format\") or \"bin\", \"output-\" + str(index))\n    for ci, candidate in enumerate(data.get(\"candidates\") or []):\n        for pi, part in enumerate((candidate.get(\"content\") or {}).get(\"parts\") or []):\n            print(\"Candidate/part\", ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(\"inlineData\") or part.get(\"inline_data\")\n            if blob and blob.get(\"data\"):\n                mime = blob.get(\"mimeType\") or blob.get(\"mime_type\")\n                suffix = {\"image/png\":\"png\", \"image/jpeg\":\"jpg\", \"image/webp\":\"webp\", \"audio/wav\":\"wav\", \"audio/mpeg\":\"mp3\", \"video/mp4\":\"mp4\"}.get(mime, \"bin\")\n                save_blob(blob[\"data\"], suffix, \"candidate-\" + str(ci) + \"-part-\" + str(pi))\n\nsave_result(result.to_dict(mode=\"json\"))\n",
            "label": "Python SDK · all choices",
            "language": "python"
          },
          {
            "code": "from openai import OpenAI\nimport os\nfrom pathlib import Path\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=\"result\"):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + \".json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b\"-_\", validate=True)\n        ext = \"png\" if raw.startswith(b\"\\x89PNG\\r\\n\\x1a\\n\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4] == b\"RIFF\" and raw[8:12] == b\"WEBP\" else suffix\n        file = Path(stem + \"-\" + label + \".\" + ext)\n        file.write_bytes(raw)\n        print(\"Saved\", file)\n    for index, block in enumerate(data.get(\"content\") or []):\n        print(\"Content\", index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(\"choices\") or []:\n        print(\"Choice\", choice.get(\"index\"), json.dumps(choice.get(\"message\", choice.get(\"delta\", {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(\"output\") or []):\n        print(\"Output\", index, json.dumps(item, ensure_ascii=False))\n        if item.get(\"type\") == \"image_generation_call\" and item.get(\"result\"):\n            save_blob(item[\"result\"], item.get(\"output_format\") or \"bin\", \"output-\" + str(index))\n    for ci, candidate in enumerate(data.get(\"candidates\") or []):\n        for pi, part in enumerate((candidate.get(\"content\") or {}).get(\"parts\") or []):\n            print(\"Candidate/part\", ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(\"inlineData\") or part.get(\"inline_data\")\n            if blob and blob.get(\"data\"):\n                mime = blob.get(\"mimeType\") or blob.get(\"mime_type\")\n                suffix = {\"image/png\":\"png\", \"image/jpeg\":\"jpg\", \"image/webp\":\"webp\", \"audio/wav\":\"wav\", \"audio/mpeg\":\"mp3\", \"video/mp4\":\"mp4\"}.get(mime, \"bin\")\n                save_blob(blob[\"data\"], suffix, \"candidate-\" + str(ci) + \"-part-\" + str(pi))\n\nwith client.chat.completions.stream(model='glm-4v-plus',messages=[{\"role\":\"user\",\"content\":\"Explain observations and hypotheses in three sentences.\"}]) as stream:\n    with Path(\"stream-events.jsonl\").open(\"w\",encoding=\"utf-8\") as log:\n        for event in stream:\n            payload=event.to_dict(mode=\"json\")\n            log.write(json.dumps(payload,ensure_ascii=False)+\"\\n\"); log.flush()\n            print(json.dumps(payload,ensure_ascii=False))\n    final=stream.get_final_completion()\n    save_result(final.to_dict(mode=\"json\"),\"stream-result\")\n",
            "label": "Python SDK streaming · all events",
            "language": "python"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "chat",
        "hints": [
          "Send exact model ID with messages.",
          "Context length is not an output cap.",
          "A text file may supply literal text; image/audio/file-object inputs need exact binding."
        ],
        "http": "POST",
        "in": 2.8,
        "input": [
          "text"
        ],
        "label": "OpenAI Chat",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": 2.8,
        "output": [
          "text"
        ],
        "path": "/v1/chat/completions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000028",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000028",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "glm-4v-plus",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0028000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000028",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0028000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000028",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    },
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">Z</span><h2 id=\"sheet-title\">GLM-4V-Plus</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Bezárás\">×</button></div><div class=\"idline\"><span>Z.ai /</span><code>glm-4v-plus</code><button type=\"button\" id=\"copy-id\">ID másolása</button></div><nav class=\"card-jump-nav\" aria-label=\"Modellkártya szakaszai\"><button type=\"button\" data-card-jump=\"overview\">Kezdő lépések</button><button type=\"button\" data-card-jump=\"methods\">Bemenetek és metódusok</button><button type=\"button\" data-card-jump=\"pricing\">Díjcsomagok</button><button type=\"button\" data-card-jump=\"examples\">Példák</button><button type=\"button\" data-card-jump=\"results\">Eredmények</button><button type=\"button\" data-card-jump=\"aliases\">Álnevek</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API-metódusok\"><button type=\"button\" role=\"tab\" tabindex=\"-1\" aria-controls=\"card-method-content\" aria-selected=\"false\" id=\"card-method-tab-0\" data-card-method=\"Ultra|chat|/v1/chat/completions|glm-4v-plus\">Chat</button><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-1\" data-card-method=\"Ultra|messages|/v1/messages|glm-4v-plus\">Messages</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-1\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Kezdő lépések</h3><p class=\"mdesc-full\">A GLM-4V-Plus a Zhipu AI modellje képek vagy videó szöveges prompttal együtt történő értelmezéséhez és írásos válasz visszaadásához. Eseménysor összefoglalásához vagy a bemutatott cselekvés írásos magyarázatához a videót támogató Plus profilt válassza.</p><dl class=\"card-io\" data-card-io><div><dt>Elfogadott bemenetek</dt><dd>Szöveg</dd></div><div><dt>Eredmények</dt><dd>json · sse</dd></div></dl><details class=\"card-about\"><summary>A modellről</summary><p class=\"note-s\" data-model-method-boundary>Ez a leírás a modell képességeit ismerteti. Az Ailootban elérhető bemenetek, kimenetek és lehetőségek alább, a kiválasztott metódusnál láthatók.</p><div class=\"mabout\" id=\"m-about\"><p>A GLM-4V-Plus a Zhipu AI multimodális modellje képek vagy videó értelmezéséhez és szöveg előállításához. A gyártó ügynökfejlesztési útmutatója kifejezetten megkülönbözteti a GLM-4V képből szöveget készítő munkafolyamatától: a Plus profil képi vagy videós anyagot fogad írásos prompttal együtt. Ezzel a kombinációval egy vizuális kérdésből forráshoz kötött leírást, magyarázatot vagy munkajegyzetet készíthet.</p><h4>Válassza ki a kérdéshez tartozó vizuális bizonyítékot</h4><p>Adja meg a vizsgálandó eseményt, objektumot vagy kapcsolatot tartalmazó képet vagy videót, és nevezze meg a feladat célját. Képre vonatkozó kérdés fókuszálhat látható elrendezésre vagy dokumentumrészletre. Videóra vonatkozó kérdés kérheti a bemutatott cselekvés magyarázatát vagy a megadott eseménysor összefoglalását.</p><p>A referenciaazonosítót tartsa a kérdés mellett. Videóellenőrzésnél nevezze meg az eseménysort, és ha hasznos, a figyelembe veendő időszakaszt. Szemléltető utasítás lehet: „Írja le a kiválasztott időszakaszban látható cselekvést, és magyarázza el, hogyan támasztja alá a látható eseménysor a leírását.” A feladatleírás időhivatkozása a kért anyagot azonosítja; nem helyettesíti a videóbemenetet.</p><h4>Rendelje minden bemenethez a szerepét</h4><p>A gyártó két ügynökmunkafolyamatot dokumentál: egy beszélgetési ügynököt, amely feltöltött képet vagy videót társít a prompthoz, és egy szövegközpontú ügynököt kifejezetten megnevezett feltöltési bemenetekkel. Az utóbbi munkafolyamatban több vizuális bemenet állítható be külön elnevezett bemeneti mezőkön keresztül. Minden referenciának adjon világos szerepet, például kezdeti állapotot, későbbi állapotot vagy vizsgálandó dokumentumot.</p><p>Szemléltető összehasonlításnál címkézze a referenciákat, mielőtt rákérdez a változásokra. Kérjen írásos összehasonlítást, amely minden megfigyelés forrását megnevezi. Ez ellenőrzési jegyzetként használhatóvá teszi az eredményt, és az adott képre vagy eseménysorra vonatkozó későbbi kérdést a megfelelő referenciához kapcsolja.</p><h4>Kérjen használható írásos eredményt</h4><p>Határozza meg a következő lépéshez szükséges anyagot: képaláírást, magyarázatot, eseménysor-összefoglalót vagy forráshivatkozásokhoz kötött megfigyeléslistát. Kérje, hogy a modell különítse el a látható dolgokat azoktól, amelyekhez további kontextus szükséges. Dokumentumkérdésnél a visszaadott értelmezés mellett őrizze meg az oldal azonosítóját; cselekvéssornál az összefoglaló mellett tartsa meg a kiválasztott időszakaszt és az eredeti videórészletet.</p><p>A dokumentált GLM-4V-Plus munkafolyamat kimenete szöveg. Vizuális tudásfeljegyzés készítésekor vagy az ellenőrzés másnak való átadásakor őrizze meg ezt a választ a prompttal és a bemeneti referenciákkal együtt. Vesse össze a neveket, feliratokat és eseményleírásokat a forrásanyaggal, majd a következő kérésben a tisztázandó konkrét megfigyelésre térjen ki.</p><h4>Tartsa meg a kiválasztott vizuális profilt az eredménnyel</h4><p>A GLM-4V és GLM-4V-Plus külön névvel azonosított gyártói profilok. Válassza a Plus változatot olyan feladathoz, amelynek megadott bizonyítékai videót is tartalmaznak, és őrizze meg ezt a választást a kész jegyzettel együtt. A hasznos folytatás ugyanarra az anyagra hivatkozik, szűkíti a kért megfigyelést, és a korábbi választ a munkafeljegyzés részeként megőrzi.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Elérhető az Ailootban · bemenetek és metódusok</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Anthropic Messages</b> <code>POST /v1/messages</code></summary><dl class=\"method-capabilities\"><div><dt>Bemenet</dt><dd><code>text</code></dd></div><div><dt>Kimenet</dt><dd><code>json</code>, <code>sse</code></dd></div><div><dt>Kimeneti formátum</dt><dd>JSON vagy SSE</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Mező</th><th>Típus</th><th>Követelmény</th><th>Értékek és korlátok</th><th>Alapértelmezett</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>string</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Kötelező</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>glm-4v-plus</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">messages</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>message[]</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Kötelező</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">messages[].role</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>string</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Kötelező</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span><div>user, assistant</div></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">messages[].content</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>string</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Kötelező</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">max_tokens</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>integer</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Kötelező</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span></td><td data-cell-label=\"Alapértelmezett\" data-default=\"unspecified\"><span class=\"card-cell-label\">Alapértelmezett</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">stream</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span><code>boolean</code></td><td data-cell-label=\"Követelmény\"><span class=\"card-cell-label\">Követelmény</span>Opcionális</td><td data-cell-label=\"Értékek és korlátok\"><span class=\"card-cell-label\">Értékek és korlátok</span></td><td data-cell-label=\"Alapértelmezett\" data-default=\"known\"><span class=\"card-cell-label\">Alapértelmezett</span>false</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Bemeneti anyagok kombinációi</summary><p class=\"note-s\"><b>Szöveg</b> · UTF-8 szöveg</p><p class=\"note-s\"><code>messages[].content karakterlánc</code></p></details><details class=\"note-s\" data-method-contract><summary>Metódus paraméterei és életciklusa</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Paraméter</th><th>Szerződés</th></tr></thead><tbody><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>content_type</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>application/json</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>required</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>model, messages, max_tokens</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>optional_controls</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>stream</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>material_types</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>text</td></tr><tr><th data-cell-label=\"Paraméter\" scope=\"row\"><span class=\"card-cell-label\">Paraméter</span><code>text_file_material</code></th><td data-cell-label=\"Szerződés\"><span class=\"card-cell-label\">Szerződés</span>Olvassa el a tényleges UTF-8 dokumentumot, és tegye a szövegét a jelzett bemeneti karakterláncba vagy az üzenettartalom karakterláncába.</td></tr></tbody></table></div><p>Életciklus: <code>synchronous_or_streamed</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Díjcsomagok</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>A díjszabás nem ad új kérési lehetőségeket. A támogatott paraméterek a kiválasztott módszernél szerepelnek.</p><dl data-price-conditions><dt>Gyors mód</dt><dd>Nincs megadva <span class=\"note-s\">Ha a gyors mód van kiválasztva</span></dd><dt>Flex mód</dt><dd>Nincs megadva <span class=\"note-s\">Ha a flex mód van kiválasztva</span></dd><dt>Maximális gondolkodási ráfordítás</dt><dd>Nincs megadva <span class=\"note-s\">Ha a maximális gondolkodási ráfordításra a default beállításhoz tartozó korrekció vonatkozik</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailoot-díjak</h4><h4>Árak beállításonként</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Beállítás</th><th>Díjtáblázat</th><th>Díj</th></tr></thead><tbody><tr><th data-cell-label=\"Beállítás\" scope=\"row\"><span class=\"card-cell-label\">Beállítás</span>Tokenenkénti alapárak</th><td data-cell-label=\"Díjtáblázat\"><span class=\"card-cell-label\">Díjtáblázat</span>Alapdíj</td><td data-cell-label=\"Díj\"><span class=\"card-cell-label\">Díj</span><div><span>Bemenet · Bemeneti tokenek</span> <b>$0.0028</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Kimenet · Kimeneti tokenek</span> <b>$0.0028</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Bemenet · Gyorsítótár olvasása</span> <b>$0</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Bemenet · Írás a gyorsítótárba</span> <b>$0</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Bemenet · Írás a gyorsítótárba, 1 óra</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Az Ailoot a kérés előtt becsült összeget foglal le. Az eredmény után a mért használat alapján elszámolja a végső díjat. Folyamatos átvitel esetén a végső használati rekordot használja. <a href=\"/docs/hu/billing/reserve/\">A foglalás és az elszámolás működése →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Példakérések</h3><h4>Ailoot Ultra · Anthropic Messages</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Kódváltozatok\"><button class=\"cg-tab\" id=\"model-code-1424-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1424-panel-0\" aria-selected=\"true\" tabindex=\"0\">Teljes, minimális JSON-törzs</button><button class=\"cg-tab\" id=\"model-code-1424-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1424-panel-1\" aria-selected=\"false\" tabindex=\"-1\">curl · használd a saját UTF-8-dokumentumodat</button><button class=\"cg-tab\" id=\"model-code-1424-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1424-panel-2\" aria-selected=\"false\" tabindex=\"-1\">Python · mentsd el a teljes eredményt</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kód másolása\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1424-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1424-tab-0\"><pre data-lang=\"json\"><code>{\n  &quot;model&quot;: &quot;glm-4v-plus&quot;,\n  &quot;max_tokens&quot;: 128,\n  &quot;messages&quot;: [\n    {\n      &quot;role&quot;: &quot;user&quot;,\n      &quot;content&quot;: &quot;Summarize the incident report.&quot;\n    }\n  ],\n  &quot;stream&quot;: false\n}</code></pre></div><div class=\"cg-pane\" id=\"model-code-1424-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-1424-tab-1\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}&quot;\nexport AILOOT_TEXT_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ[&#39;AILOOT_TEXT_FILE&#39;])\nif not source_file.is_file():\n    raise SystemExit(&#39;Set AILOOT_TEXT_FILE to your actual UTF-8 document&#39;)\ntext = source_file.read_text(encoding=&#39;utf-8&#39;)\nif not text.strip():\n    raise SystemExit(&#39;Choose a document containing text&#39;)\npayload = {&#39;model&#39;: &#39;glm-4v-plus&#39;, &#39;max_tokens&#39;: 128, &#39;messages&#39;: [{&#39;role&#39;: &#39;user&#39;, &#39;content&#39;: &#39;Summarize the incident report.&#39;}]}\npayload[&#39;messages&#39;][0][&#39;content&#39;] = &#39;Summarize this material and quote supporting source passages.\\n\\n&#39; + text\nPath(&#39;request.json&#39;).write_text(json.dumps(payload, ensure_ascii=False), encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \\\n  -H &quot;x-api-key: $AILOOT_API_KEY&quot; -H &#39;anthropic-version: 2023-06-01&#39; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path(&#39;result.json&#39;).read_text(encoding=&#39;utf-8&#39;))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-1424-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-1424-tab-2\" hidden><pre data-lang=\"python\"><code>import json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ[&#39;AILOOT_TEXT_FILE&#39;])\nif not source_file.is_file():\n    raise SystemExit(&#39;Set AILOOT_TEXT_FILE to your actual UTF-8 document&#39;)\ntext = source_file.read_text(encoding=&#39;utf-8&#39;)\nif not text.strip():\n    raise SystemExit(&#39;Choose a document containing text&#39;)\npayload = {&#39;model&#39;: &#39;glm-4v-plus&#39;, &#39;max_tokens&#39;: 128, &#39;messages&#39;: [{&#39;role&#39;: &#39;user&#39;, &#39;content&#39;: &#39;Summarize the incident report.&#39;}]}\npayload[&#39;messages&#39;][0][&#39;content&#39;] = &#39;Summarize this material and quote supporting source passages.\\n\\n&#39; + text\nfrom urllib.request import Request, urlopen\nfrom urllib.error import HTTPError\n\napi_key = os.environ[&#39;AILOOT_API_KEY&#39;]\nif not api_key.strip():\n    raise SystemExit(&#39;Set AILOOT_API_KEY before making a request&#39;)\nheaders = {&#39;x-api-key&#39;: &#39;PLACEHOLDER_KEY&#39;, &#39;anthropic-version&#39;: &#39;2023-06-01&#39;, &#39;Content-Type&#39;: &#39;application/json&#39;}\nheaders[&#39;x-api-key&#39;] = api_key\nrequest = Request(&#39;https://api.ailoot.ai/v1/messages&#39;, data=json.dumps(payload, ensure_ascii=False).encode(&#39;utf-8&#39;), headers=headers, method=&#39;POST&#39;)\ntry:\n    with urlopen(request, timeout=120) as response:\n        raw = response.read()\n        Path(&#39;response-headers.txt&#39;).write_text(str(response.headers), encoding=&#39;utf-8&#39;)\nexcept HTTPError as error:\n    Path(&#39;result.json&#39;).write_bytes(error.read())\n    Path(&#39;response-headers.txt&#39;).write_text(str(error.headers), encoding=&#39;utf-8&#39;)\n    raise\nPath(&#39;result.json&#39;).write_bytes(raw)\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path(&#39;result.json&#39;).read_text(encoding=&#39;utf-8&#39;))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Eredmények fogadása és mentése</h3><h4>Ailoot Ultra · Anthropic Messages</h4><p class=\"note-s\">JSON vagy SSE</p><div class=\"card-result-process\" data-all-results><h5>Őrizzen meg minden elkészült eredményt</h5><p class=\"note-s\">Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.</p><p class=\"note-s\">Őrizze meg az összes tartalomblokkot, a gondolkodási tartalom aláírásait és a tényleges eszközhasználati ID-kat. Állítsa össze az összes SSE-blokk részleges frissítését; az első szövegblokk nem a teljes kimenet.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Ha az eredeti választ ellenőrizni kell</h5><p class=\"note-s\">Őrizze meg a kérés-/válaszazonosítókat és a fejléceket. Nincs megadva általános URL a szöveges feladatok lekéréséhez.</p></div><details class=\"card-about\" data-output-fields><summary>Válaszmezők</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Mező</th><th>Típus</th></tr></thead><tbody><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">id</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>string</td></tr><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>string</td></tr><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">content[]</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>text|thinking|tool_use|other content block</td></tr><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">stop_reason</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>string|null</td></tr><tr><th data-cell-label=\"Mező\" scope=\"row\"><span class=\"card-cell-label\">Mező</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Típus\" data-field-type><span class=\"card-cell-label\">Típus</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Hibák és következő lépések</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Válasz</th><th>Feltétel</th><th>Következő lépés</th></tr></thead><tbody><tr><th data-cell-label=\"Válasz\" scope=\"row\"><span class=\"card-cell-label\">Válasz</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Feltétel\"><span class=\"card-cell-label\">Feltétel</span>Érvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték</td><td data-cell-label=\"Következő lépés\"><span class=\"card-cell-label\">Következő lépés</span>Javítsa a jelzett mezőket egy új létrehozási kérés előtt.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Álnevek</h3><h4>Modell álnevei</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=glm-4v-plus&amp;route=Ultra&amp;caller=glm-4v-plus&amp;fmt=messages\"><code>glm-4v-plus</code></a></span></p><h4>Metódusútvonalak álnevei</h4><p class=\"note-s\">Használja a fent látható metódusútvonalakat.</p><h4>Kapcsolódó modellazonosítók</h4><p class=\"note-s\"><a href=\"#m=glm-4v-plus&amp;route=Ultra&amp;caller=glm-4v-plus&amp;fmt=messages\"><code>glm-4v-plus</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "glm-4v-plus",
        "fmt": "messages",
        "http": "POST",
        "path": "/v1/messages",
        "request_model_id": "glm-4v-plus",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|messages|/v1/messages|glm-4v-plus",
      "ordinal": 1,
      "rawMethod": {
        "available": null,
        "cache_read": 0,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "headers": [
                "Authorization: Bearer",
                "x-api-key",
                "anthropic-version"
              ],
              "version_example": "2023-06-01"
            },
            "errors": [
              {
                "code": null,
                "condition": "Érvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték",
                "http_status": 400,
                "recovery": "Javítsa a jelzett mezőket egy új létrehozási kérés előtt.",
                "type": "invalid_request_error"
              }
            ],
            "example_body": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "glm-4v-plus",
              "stream": false
            },
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/messages"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "Őrizze meg a kérés-/válaszazonosítókat és a fejléceket. Nincs megadva általános URL a szöveges feladatok lekéréséhez."
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "messages[].content karakterlánc",
                "required_material": "UTF-8 szöveg"
              }
            ],
            "operation_modes": [
              "synchronous_json",
              "streamed_SSE"
            ],
            "outputs": {
              "all_results": "Őrizze meg az összes tartalomblokkot, a gondolkodási tartalom aláírásait és a tényleges eszközhasználati ID-kat. Állítsa össze az összes SSE-blokk részleges frissítését; az első szövegblokk nem a teljes kimenet.",
              "family": "protocol",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "content[]",
                  "type": "text|thinking|tool_use|other content block"
                },
                {
                  "description": null,
                  "name": "stop_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "JSON vagy SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "glm-4v-plus"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "user",
                  "assistant"
                ],
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "max_tokens",
                "required": true,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Documented current stock Messages bridge; optional model capabilities are separate from this minimal text request.",
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "max_tokens": {
                  "minimum": 1,
                  "type": "integer"
                },
                "messages": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "content": {
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "items": {
                              "oneOf": [
                                {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "const": "text"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "source": {
                                      "oneOf": [
                                        {
                                          "properties": {
                                            "type": {
                                              "const": "url"
                                            },
                                            "url": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "url"
                                          ],
                                          "type": "object"
                                        },
                                        {
                                          "properties": {
                                            "data": {
                                              "type": "string"
                                            },
                                            "media_type": {
                                              "type": "string"
                                            },
                                            "type": {
                                              "const": "base64"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "media_type",
                                            "data"
                                          ],
                                          "type": "object"
                                        }
                                      ]
                                    },
                                    "type": {
                                      "const": "image"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "source"
                                  ],
                                  "type": "object"
                                }
                              ]
                            },
                            "type": "array"
                          }
                        ]
                      },
                      "role": {
                        "enum": [
                          "user",
                          "assistant"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "role",
                      "content"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "glm-4v-plus"
                  ],
                  "type": "string"
                },
                "stream": {
                  "default": false,
                  "type": "boolean"
                }
              },
              "required": [
                "model",
                "messages",
                "max_tokens"
              ],
              "type": "object"
            },
            "schema_template": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "glm-4v-plus",
              "stream": false
            },
            "unsupported": [
              "No query API key.",
              "Hosted/server-side tools and model-specific optional controls are not part of this minimal family example."
            ]
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": [
              "stream"
            ],
            "required": [
              "model",
              "messages",
              "max_tokens"
            ],
            "text_file_material": "Olvassa el a tényleges UTF-8 dokumentumot, és tegye a szövegét a jelzett bemeneti karakterláncba vagy az üzenettartalom karakterláncába."
          },
          "lifecycle": {
            "create": {
              "http": "POST",
              "path": "/v1/messages"
            },
            "job_read": null,
            "mode": "synchronous_or_streamed",
            "unknown": "Keep request/response IDs and headers. No generic text job retrieval URL is supplied."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/messages"
          },
          "output": {
            "all_results": "Keep all content blocks, thinking signatures and actual tool-use IDs. Assemble all SSE block deltas; a first text block is not the complete output.",
            "family": "protocol",
            "format": "JSON or SSE"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Tokenenkénti alapárak",
            "units": [
              {
                "amount": "0.0028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000028",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000028",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "{\n  \"model\": \"glm-4v-plus\",\n  \"max_tokens\": 128,\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": \"Summarize the incident report.\"\n    }\n  ],\n  \"stream\": false\n}",
            "label": "Complete minimal JSON body",
            "language": "json"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'glm-4v-plus', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nPath('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \\\n  -H \"x-api-key: $AILOOT_API_KEY\" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\nPY_RESULT\n",
            "label": "curl · use your UTF-8 document",
            "language": "bash"
          },
          {
            "code": "import json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'glm-4v-plus', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nfrom urllib.request import Request, urlopen\nfrom urllib.error import HTTPError\n\napi_key = os.environ['AILOOT_API_KEY']\nif not api_key.strip():\n    raise SystemExit('Set AILOOT_API_KEY before making a request')\nheaders = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}\nheaders['x-api-key'] = api_key\nrequest = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')\ntry:\n    with urlopen(request, timeout=120) as response:\n        raw = response.read()\n        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')\nexcept HTTPError as error:\n    Path('result.json').write_bytes(error.read())\n    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')\n    raise\nPath('result.json').write_bytes(raw)\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\n",
            "label": "Python · save the complete result",
            "language": "python"
          }
        ],
        "family": "anthropic",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "messages",
        "http": "POST",
        "in": 2.8,
        "input": [
          "text"
        ],
        "label": "Anthropic Messages",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": 2.8,
        "output": [
          "json",
          "sse"
        ],
        "path": "/v1/messages",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000028",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000028",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "glm-4v-plus",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0028000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000028",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0028000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000028",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    }
  ],
  "model_id": "glm-4v-plus",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "4ffe26101fc61ed3185050af9ae038e3bca7ab9e00b2aa811238b4142ab8c08f",
    "input_html_sha256": "ec8df35ccecd1a26a630fe673b239ca0a04d43e10bba2fec18366b2d65d44e54",
    "private_audit_sha256": "12124fec4cb8a108621aee8605512d55f7afd33e7908fd50cc56874cf02d5c47",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/hu/glm-4v-plus/",
    "description": "A GLM-4V-Plus a Zhipu AI modellje képek vagy videó szöveges prompttal együtt történő értelmezéséhez és írásos válasz visszaadásához. Eseménysor összefoglalásához vagy a bemutatott cselekvés írásos magyarázatához a videót támogató Plus profilt válassza.",
    "locale": "hu",
    "md_url": "https://ailoot.ai/models/hu/glm-4v-plus/index.md",
    "title": "GLM-4V-Plus — Ailoot",
    "url": "https://ailoot.ai/models/hu/glm-4v-plus/"
  },
  "practicalHtml": "<h3>Gyakorlati feladat</h3><p>Technikai példa angolul</p><pre><code>Compare labelled inspection notes\n\nUse only these text inspection notes. Before: crate latch closed, seal present, label K7. After: latch open, seal missing, label K7. Write a comparison for the receiving team. Distinguish documented changes from unknown causes and list the next evidence to request. No image or video is attached.</code></pre><h4>Várt eredmény</h4><pre><code>A before/after comparison with source labels, an unknown-cause note and a short evidence request.</code></pre><h4>Az eredmény ellenőrzése</h4><pre><code>The latch and seal changes are reported, while damage, theft and the person responsible remain unasserted.</code></pre>",
  "practicalText": "Gyakorlati feladat Technikai példa angolul Compare labelled inspection notes Use only these text inspection notes. Before: crate latch closed, seal present, label K7. After: latch open, seal missing, label K7. Write a comparison for the receiving team. Distinguish documented changes from unknown causes and list the next evidence to request. No image or video is attached. Várt eredmény A before/after comparison with source labels, an unknown-cause note and a short evidence request. Az eredmény ellenőrzése The latch and seal changes are reported, while damage, theft and the person responsible remain unasserted.",
  "rawModel": {
    "about": "A GLM-4V-Plus a Zhipu AI multimodális modellje képek vagy videó értelmezéséhez és szöveg előállításához. A gyártó ügynökfejlesztési útmutatója kifejezetten megkülönbözteti a GLM-4V képből szöveget készítő munkafolyamatától: a Plus profil képi vagy videós anyagot fogad írásos prompttal együtt. Ezzel a kombinációval egy vizuális kérdésből forráshoz kötött leírást, magyarázatot vagy munkajegyzetet készíthet.\n\n### Válassza ki a kérdéshez tartozó vizuális bizonyítékot\n\nAdja meg a vizsgálandó eseményt, objektumot vagy kapcsolatot tartalmazó képet vagy videót, és nevezze meg a feladat célját. Képre vonatkozó kérdés fókuszálhat látható elrendezésre vagy dokumentumrészletre. Videóra vonatkozó kérdés kérheti a bemutatott cselekvés magyarázatát vagy a megadott eseménysor összefoglalását.\n\nA referenciaazonosítót tartsa a kérdés mellett. Videóellenőrzésnél nevezze meg az eseménysort, és ha hasznos, a figyelembe veendő időszakaszt. Szemléltető utasítás lehet: „Írja le a kiválasztott időszakaszban látható cselekvést, és magyarázza el, hogyan támasztja alá a látható eseménysor a leírását.” A feladatleírás időhivatkozása a kért anyagot azonosítja; nem helyettesíti a videóbemenetet.\n\n### Rendelje minden bemenethez a szerepét\n\nA gyártó két ügynökmunkafolyamatot dokumentál: egy beszélgetési ügynököt, amely feltöltött képet vagy videót társít a prompthoz, és egy szövegközpontú ügynököt kifejezetten megnevezett feltöltési bemenetekkel. Az utóbbi munkafolyamatban több vizuális bemenet állítható be külön elnevezett bemeneti mezőkön keresztül. Minden referenciának adjon világos szerepet, például kezdeti állapotot, későbbi állapotot vagy vizsgálandó dokumentumot.\n\nSzemléltető összehasonlításnál címkézze a referenciákat, mielőtt rákérdez a változásokra. Kérjen írásos összehasonlítást, amely minden megfigyelés forrását megnevezi. Ez ellenőrzési jegyzetként használhatóvá teszi az eredményt, és az adott képre vagy eseménysorra vonatkozó későbbi kérdést a megfelelő referenciához kapcsolja.\n\n### Kérjen használható írásos eredményt\n\nHatározza meg a következő lépéshez szükséges anyagot: képaláírást, magyarázatot, eseménysor-összefoglalót vagy forráshivatkozásokhoz kötött megfigyeléslistát. Kérje, hogy a modell különítse el a látható dolgokat azoktól, amelyekhez további kontextus szükséges. Dokumentumkérdésnél a visszaadott értelmezés mellett őrizze meg az oldal azonosítóját; cselekvéssornál az összefoglaló mellett tartsa meg a kiválasztott időszakaszt és az eredeti videórészletet.\n\nA dokumentált GLM-4V-Plus munkafolyamat kimenete szöveg. Vizuális tudásfeljegyzés készítésekor vagy az ellenőrzés másnak való átadásakor őrizze meg ezt a választ a prompttal és a bemeneti referenciákkal együtt. Vesse össze a neveket, feliratokat és eseményleírásokat a forrásanyaggal, majd a következő kérésben a tisztázandó konkrét megfigyelésre térjen ki.\n\n### Tartsa meg a kiválasztott vizuális profilt az eredménnyel\n\nA GLM-4V és GLM-4V-Plus külön névvel azonosított gyártói profilok. Válassza a Plus változatot olyan feladathoz, amelynek megadott bizonyítékai videót is tartalmaznak, és őrizze meg ezt a választást a kész jegyzettel együtt. A hasznos folytatás ugyanarra az anyagra hivatkozik, szűkíti a kért megfigyelést, és a korábbi választ a munkafeljegyzés részeként megőrzi.",
    "alias_of": null,
    "aliases": [],
    "author": "Z.ai",
    "available": null,
    "canonical_model": "glm-4v-plus",
    "capabilities": {
      "context_length": 32000,
      "manufacturer_input": [],
      "manufacturer_output": []
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0028000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000028",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0028000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000028",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          }
        ],
        "summary": "A konfiguráció teljes árazása a részletekben."
      }
    ],
    "ctx": null,
    "entity_type": "model",
    "formats": [
      "chat",
      "messages"
    ],
    "id": "glm-4v-plus",
    "input": [
      "text"
    ],
    "kind": "text",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": 0,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every choice and its content/tool calls/reasoning. In SSE assemble deltas by choice/tool index, retain the final finish reason and usage.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "errors": [
              {
                "code": null,
                "condition": "Érvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték",
                "http_status": 400,
                "recovery": "Javítsa a jelzett mezőket egy új létrehozási kérés előtt.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [
              "Model context is not an output cap.",
              "A model-dependent field needs the exact published model profile; unspecified defaults/enums are not guessed.",
              "Tool calls propose actions; the client application returns actual observations with the returned call ID.",
              "Guarded canonical keys must occur once; duplicate or case-varied model/tools/cap fields are rejected."
            ],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/chat/completions"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "Őrizze meg a kérés-/válaszazonosítókat és a fejléceket. Nincs megadva általános URL a szöveges feladatok lekéréséhez."
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "messages[].content",
                "required_material": "UTF8 szöveg"
              }
            ],
            "operation_modes": [
              "conversation",
              "function_tool_continuation",
              "streaming"
            ],
            "outputs": {
              "all_results": "Őrizze meg az összes válaszváltozatot és azok tartalmát/eszközhívásait/gondolkodási tartalmát. SSE esetén válaszváltozat- és eszközindex szerint állítsa össze a részleges frissítéseket, és tartsa meg a végső befejezési okot és a használati adatokat.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "choices[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "choices[].message.content",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "choices[].message.tool_calls",
                  "type": "tool_call[]"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_content",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_details",
                  "type": "object|array"
                },
                {
                  "description": null,
                  "name": "choices[].finish_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json vagy SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "glm-4v-plus"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "model_dependent",
                "conditions": "Ezeket a szerepeket a forráskód kompatibilitási típusai kifejezetten reprezentálják; a pontos szerepkészlet továbbra is modellspecifikus.",
                "default": null,
                "default_known": false,
                "enum": [
                  "system",
                  "user",
                  "assistant",
                  "tool",
                  "function"
                ],
                "enum_exhaustive": false,
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": false,
                "type": "string|content_part[]|null"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].tool_calls",
                "required": false,
                "type": "tool_call[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].tool_call_id",
                "required": false,
                "type": "string",
                "when": "role=tool; használja a ténylegesen visszaadott ID-t"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].name",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].reasoning_content",
                "required": false,
                "type": "string",
                "when": "Küldje vissza a ténylegesen visszaadott gondolkodási tartalmat, ha ez a modell használja"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].reasoning_details",
                "required": false,
                "type": "object|array"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "max_tokens",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "max_completion_tokens",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "stream_options.include_usage",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "temperature",
                "required": false,
                "type": "number"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "top_p",
                "required": false,
                "type": "number"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "stop",
                "required": false,
                "type": "string|string[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools",
                "required": false,
                "type": "function_tool[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": [
                  "function"
                ],
                "enum_known": true,
                "name": "tools[].type",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.name",
                "required": true,
                "type": "string",
                "when": "Függvényeszköz megadva"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.description",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.parameters",
                "required": false,
                "type": "JSON_schema"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tool_choice",
                "required": false,
                "type": "string|object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "parallel_tool_calls",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "response_format",
                "required": false,
                "type": "object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "reasoning_effort",
                "required": false,
                "type": "string"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "reasoning",
                "required": false,
                "type": "object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "service_tier",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_compatibility",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "instructions",
                "required": false,
                "type": "string"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "functions",
                "required": false,
                "type": "function[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "function_call",
                "required": false,
                "type": "string|object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "prompt_cache_options",
                "required": false,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "text"
                ],
                "enum_known": true,
                "name": "modalities",
                "required": false,
                "type": "string[]"
              },
              {
                "availability": "source_interface",
                "conditions": "A provider.options elutasításra kerül ezen az Ultra szöveges útvonalon",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "conditions": "Az 1h elutasításra kerül a tényleges prompt-gyorsítótárazási helyeken",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "cache_control.ttl",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "additional models/models list",
              "plugins",
              "route",
              "hosted tools; ordinary client function tools remain separate",
              "non-text output modalities",
              "provider.options overrides",
              "one-hour prompt-cache TTL"
            ]
          },
          "hints": [
            "Küldje el a pontos modellazonosítót a messages mellett.",
            "A kontextushossz nem kimeneti felső korlát.",
            "Egy szövegfájl szó szerinti szöveget adhat meg; a kép-/hang-/fájlobjektum-bemenetek pontos hozzárendelést igényelnek."
          ],
          "input": {
            "content_type": "application/json",
            "control_scope": "modellspecifikus; a felhasználói függvényeszközök eltérnek a hosztolt eszközöktől",
            "file_material": "a tényleges UTF-8 dokumentum szó szerinti szövegként beillesztve; nincs kikövetkeztetett fájlazonosító",
            "hosted_operations": false,
            "material_types": [
              "text"
            ],
            "messages": "üzenettömb role/content szerkezettel",
            "multimodal_input_binding": null,
            "optional_controls": [
              "stream",
              "temperature",
              "top_p",
              "stop",
              "max_tokens",
              "max_completion_tokens",
              "reasoning",
              "response_format",
              "tools",
              "tool_choice"
            ],
            "output_modalities": [
              "text"
            ],
            "required": [
              "model",
              "messages"
            ]
          },
          "lifecycle": {
            "mode": "synchronous_or_streamed",
            "unknown": "preserve original request id; no generic chat job retrieval path"
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/chat/completions"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_chat"
          ],
          "output": {
            "content": "choices[].message.content or stream delta",
            "family": "text",
            "format": "json or supported SSE",
            "tool_calls": "retain actual returned function calls"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Tokenenkénti alapárak",
            "units": [
              {
                "amount": "0.0028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000028",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000028",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"glm-4v-plus\", \"messages\": [{\"role\": \"user\", \"content\": \"Explain the difference between an observation and a hypothesis in three sentences.\"}]}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"result.json\").read_text())\nfor x in r.get(\"choices\",[]):\n    if x.get(\"message\",{}).get(\"content\"): print(x[\"message\"][\"content\"])\nPY_RESULT\n",
            "label": "curl · retained exact creation",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.chat.completions.create(model='glm-4v-plus',messages=[{\"role\":\"user\",\"content\":\"Explain observations and hypotheses in three sentences.\"}])\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=\"result\"):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + \".json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b\"-_\", validate=True)\n        ext = \"png\" if raw.startswith(b\"\\x89PNG\\r\\n\\x1a\\n\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4] == b\"RIFF\" and raw[8:12] == b\"WEBP\" else suffix\n        file = Path(stem + \"-\" + label + \".\" + ext)\n        file.write_bytes(raw)\n        print(\"Saved\", file)\n    for index, block in enumerate(data.get(\"content\") or []):\n        print(\"Content\", index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(\"choices\") or []:\n        print(\"Choice\", choice.get(\"index\"), json.dumps(choice.get(\"message\", choice.get(\"delta\", {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(\"output\") or []):\n        print(\"Output\", index, json.dumps(item, ensure_ascii=False))\n        if item.get(\"type\") == \"image_generation_call\" and item.get(\"result\"):\n            save_blob(item[\"result\"], item.get(\"output_format\") or \"bin\", \"output-\" + str(index))\n    for ci, candidate in enumerate(data.get(\"candidates\") or []):\n        for pi, part in enumerate((candidate.get(\"content\") or {}).get(\"parts\") or []):\n            print(\"Candidate/part\", ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(\"inlineData\") or part.get(\"inline_data\")\n            if blob and blob.get(\"data\"):\n                mime = blob.get(\"mimeType\") or blob.get(\"mime_type\")\n                suffix = {\"image/png\":\"png\", \"image/jpeg\":\"jpg\", \"image/webp\":\"webp\", \"audio/wav\":\"wav\", \"audio/mpeg\":\"mp3\", \"video/mp4\":\"mp4\"}.get(mime, \"bin\")\n                save_blob(blob[\"data\"], suffix, \"candidate-\" + str(ci) + \"-part-\" + str(pi))\n\nsave_result(result.to_dict(mode=\"json\"))\n",
            "label": "Python SDK · all choices",
            "language": "python"
          },
          {
            "code": "from openai import OpenAI\nimport os\nfrom pathlib import Path\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=\"result\"):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + \".json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b\"-_\", validate=True)\n        ext = \"png\" if raw.startswith(b\"\\x89PNG\\r\\n\\x1a\\n\") else \"jpg\" if raw.startswith(b\"\\xff\\xd8\") else \"webp\" if raw[:4] == b\"RIFF\" and raw[8:12] == b\"WEBP\" else suffix\n        file = Path(stem + \"-\" + label + \".\" + ext)\n        file.write_bytes(raw)\n        print(\"Saved\", file)\n    for index, block in enumerate(data.get(\"content\") or []):\n        print(\"Content\", index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(\"choices\") or []:\n        print(\"Choice\", choice.get(\"index\"), json.dumps(choice.get(\"message\", choice.get(\"delta\", {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(\"output\") or []):\n        print(\"Output\", index, json.dumps(item, ensure_ascii=False))\n        if item.get(\"type\") == \"image_generation_call\" and item.get(\"result\"):\n            save_blob(item[\"result\"], item.get(\"output_format\") or \"bin\", \"output-\" + str(index))\n    for ci, candidate in enumerate(data.get(\"candidates\") or []):\n        for pi, part in enumerate((candidate.get(\"content\") or {}).get(\"parts\") or []):\n            print(\"Candidate/part\", ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(\"inlineData\") or part.get(\"inline_data\")\n            if blob and blob.get(\"data\"):\n                mime = blob.get(\"mimeType\") or blob.get(\"mime_type\")\n                suffix = {\"image/png\":\"png\", \"image/jpeg\":\"jpg\", \"image/webp\":\"webp\", \"audio/wav\":\"wav\", \"audio/mpeg\":\"mp3\", \"video/mp4\":\"mp4\"}.get(mime, \"bin\")\n                save_blob(blob[\"data\"], suffix, \"candidate-\" + str(ci) + \"-part-\" + str(pi))\n\nwith client.chat.completions.stream(model='glm-4v-plus',messages=[{\"role\":\"user\",\"content\":\"Explain observations and hypotheses in three sentences.\"}]) as stream:\n    with Path(\"stream-events.jsonl\").open(\"w\",encoding=\"utf-8\") as log:\n        for event in stream:\n            payload=event.to_dict(mode=\"json\")\n            log.write(json.dumps(payload,ensure_ascii=False)+\"\\n\"); log.flush()\n            print(json.dumps(payload,ensure_ascii=False))\n    final=stream.get_final_completion()\n    save_result(final.to_dict(mode=\"json\"),\"stream-result\")\n",
            "label": "Python SDK streaming · all events",
            "language": "python"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "chat",
        "hints": [
          "Send exact model ID with messages.",
          "Context length is not an output cap.",
          "A text file may supply literal text; image/audio/file-object inputs need exact binding."
        ],
        "http": "POST",
        "in": 2.8,
        "input": [
          "text"
        ],
        "label": "OpenAI Chat",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": 2.8,
        "output": [
          "text"
        ],
        "path": "/v1/chat/completions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000028",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000028",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "glm-4v-plus",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0028000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000028",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0028000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000028",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      },
      {
        "available": null,
        "cache_read": 0,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "headers": [
                "Authorization: Bearer",
                "x-api-key",
                "anthropic-version"
              ],
              "version_example": "2023-06-01"
            },
            "errors": [
              {
                "code": null,
                "condition": "Érvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték",
                "http_status": 400,
                "recovery": "Javítsa a jelzett mezőket egy új létrehozási kérés előtt.",
                "type": "invalid_request_error"
              }
            ],
            "example_body": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "glm-4v-plus",
              "stream": false
            },
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/messages"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "Őrizze meg a kérés-/válaszazonosítókat és a fejléceket. Nincs megadva általános URL a szöveges feladatok lekéréséhez."
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "messages[].content karakterlánc",
                "required_material": "UTF-8 szöveg"
              }
            ],
            "operation_modes": [
              "synchronous_json",
              "streamed_SSE"
            ],
            "outputs": {
              "all_results": "Őrizze meg az összes tartalomblokkot, a gondolkodási tartalom aláírásait és a tényleges eszközhasználati ID-kat. Állítsa össze az összes SSE-blokk részleges frissítését; az első szövegblokk nem a teljes kimenet.",
              "family": "protocol",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "content[]",
                  "type": "text|thinking|tool_use|other content block"
                },
                {
                  "description": null,
                  "name": "stop_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "JSON vagy SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "glm-4v-plus"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "user",
                  "assistant"
                ],
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "max_tokens",
                "required": true,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Documented current stock Messages bridge; optional model capabilities are separate from this minimal text request.",
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "max_tokens": {
                  "minimum": 1,
                  "type": "integer"
                },
                "messages": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "content": {
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "items": {
                              "oneOf": [
                                {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "const": "text"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "source": {
                                      "oneOf": [
                                        {
                                          "properties": {
                                            "type": {
                                              "const": "url"
                                            },
                                            "url": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "url"
                                          ],
                                          "type": "object"
                                        },
                                        {
                                          "properties": {
                                            "data": {
                                              "type": "string"
                                            },
                                            "media_type": {
                                              "type": "string"
                                            },
                                            "type": {
                                              "const": "base64"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "media_type",
                                            "data"
                                          ],
                                          "type": "object"
                                        }
                                      ]
                                    },
                                    "type": {
                                      "const": "image"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "source"
                                  ],
                                  "type": "object"
                                }
                              ]
                            },
                            "type": "array"
                          }
                        ]
                      },
                      "role": {
                        "enum": [
                          "user",
                          "assistant"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "role",
                      "content"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "glm-4v-plus"
                  ],
                  "type": "string"
                },
                "stream": {
                  "default": false,
                  "type": "boolean"
                }
              },
              "required": [
                "model",
                "messages",
                "max_tokens"
              ],
              "type": "object"
            },
            "schema_template": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "glm-4v-plus",
              "stream": false
            },
            "unsupported": [
              "No query API key.",
              "Hosted/server-side tools and model-specific optional controls are not part of this minimal family example."
            ]
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": [
              "stream"
            ],
            "required": [
              "model",
              "messages",
              "max_tokens"
            ],
            "text_file_material": "Olvassa el a tényleges UTF-8 dokumentumot, és tegye a szövegét a jelzett bemeneti karakterláncba vagy az üzenettartalom karakterláncába."
          },
          "lifecycle": {
            "create": {
              "http": "POST",
              "path": "/v1/messages"
            },
            "job_read": null,
            "mode": "synchronous_or_streamed",
            "unknown": "Keep request/response IDs and headers. No generic text job retrieval URL is supplied."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/messages"
          },
          "output": {
            "all_results": "Keep all content blocks, thinking signatures and actual tool-use IDs. Assemble all SSE block deltas; a first text block is not the complete output.",
            "family": "protocol",
            "format": "JSON or SSE"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Tokenenkénti alapárak",
            "units": [
              {
                "amount": "0.0028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000028",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000028",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "{\n  \"model\": \"glm-4v-plus\",\n  \"max_tokens\": 128,\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": \"Summarize the incident report.\"\n    }\n  ],\n  \"stream\": false\n}",
            "label": "Complete minimal JSON body",
            "language": "json"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'glm-4v-plus', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nPath('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \\\n  -H \"x-api-key: $AILOOT_API_KEY\" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\nPY_RESULT\n",
            "label": "curl · use your UTF-8 document",
            "language": "bash"
          },
          {
            "code": "import json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'glm-4v-plus', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nfrom urllib.request import Request, urlopen\nfrom urllib.error import HTTPError\n\napi_key = os.environ['AILOOT_API_KEY']\nif not api_key.strip():\n    raise SystemExit('Set AILOOT_API_KEY before making a request')\nheaders = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}\nheaders['x-api-key'] = api_key\nrequest = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')\ntry:\n    with urlopen(request, timeout=120) as response:\n        raw = response.read()\n        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')\nexcept HTTPError as error:\n    Path('result.json').write_bytes(error.read())\n    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')\n    raise\nPath('result.json').write_bytes(raw)\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\n",
            "label": "Python · save the complete result",
            "language": "python"
          }
        ],
        "family": "anthropic",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "messages",
        "http": "POST",
        "in": 2.8,
        "input": [
          "text"
        ],
        "label": "Anthropic Messages",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": 2.8,
        "output": [
          "json",
          "sse"
        ],
        "path": "/v1/messages",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000028",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.0028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0000028",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "glm-4v-plus",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0028000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000028",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0028000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000028",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "glm-4v-plus",
        "request_model_id": "glm-4v-plus",
        "route_label": "Ultra"
      }
    ],
    "name": "GLM-4V-Plus",
    "price": {
      "in": 2.8,
      "in_label": null,
      "out": 2.8,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 2.8,
      "sort_out": 2.8,
      "varies": false
    },
    "pricing_profiles": [
      {
        "dimensions": {
          "regime": "base"
        },
        "label": "OpenAI Chat · Base token rates",
        "units": [
          {
            "amount": "0.0028000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000028",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0028000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000028",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      },
      {
        "dimensions": {
          "regime": "base"
        },
        "label": "Anthropic Messages · Base token rates",
        "units": [
          {
            "amount": "0.0028000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000028",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.0028000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0000028",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    ],
    "public_id": "glm-4v-plus",
    "short": "A GLM-4V-Plus a Zhipu AI modellje képek vagy videó szöveges prompttal együtt történő értelmezéséhez és írásos válasz visszaadásához. Eseménysor összefoglalásához vagy a bemutatott cselekvés írásos magyarázatához a videót támogató Plus profilt válassza."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        },
        {
          "contract_json_pointer": "/methods/1/rawMethod/contract",
          "html_json_pointer": "/methods/1/html",
          "method_ordinal": 1
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod",
        "/methods/1/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "A GLM-4V-Plus a Zhipu AI modellje képek vagy videó szöveges prompttal együtt történő értelmezéséhez és írásos válasz visszaadásához. Eseménysor összefoglalásához vagy a bemutatott cselekvés írásos magyarázatához a videót támogató Plus profilt válassza.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "64c32b58752c15a987cc2f95c03de27672ca17f933a729bb691b54e16b07c069",
    "renderer_sha256": "59b0e30a0b251f9d98bf0bafcc7ef50440c33057c2bf9c9fadabbcaeefffb5bb"
  },
  "sourceRevision": "5e5948c84dd09844a089676c1cee181c3524a2d345e26ddb3205ba55fd2a01d4"
}
