Source: https://ailoot.ai/models/hu/glm-5-3/
Canonical: https://ailoot.ai/models/hu/glm-5-3/
Language: hu

# Z.ai: GLM 5.3

[Markdown](https://ailoot.ai/models/hu/glm-5-3/index.md) · [JSON](https://ailoot.ai/models/hu/glm-5-3/facts.json)

## [Z.ai: GLM 5.3](https://ailoot.ai/models/hu/glm-5-3/)

A Z.ai GLM 5.3 szöveges következtető modell összetett szoftverfejlesztéshez, terminálmunkához és hosszú távú ügynökfeladatokhoz. A gyártó által dokumentált 1M tokenes kontextust, legfeljebb 128K kimeneti tokent, függvényhívást és low/high/max következtetési ráfordítást támogat, folyamatosan bekapcsolt következtetéssel.

- [**Ailoot · Anthropic Messages** `POST /v1/messages` `glm-5.3`](https://ailoot.ai/models/hu/glm-5-3/#method-0)
- [**Ailoot · OpenAI Responses** `POST /v1/responses` `glm-5.3`](https://ailoot.ai/models/hu/glm-5-3/#method-1)
- [**Ailoot · OpenAI Chat** `POST /v1/chat/completions` `glm-5.3`](https://ailoot.ai/models/hu/glm-5-3/#method-2)
- [**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `glm-5.3`](https://ailoot.ai/models/hu/glm-5-3/#method-3)
- [**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `glm-5.3`](https://ailoot.ai/models/hu/glm-5-3/#method-4)
- [**Ailoot · Anthropic Messages** `POST /v1/messages` `glm`](https://ailoot.ai/models/hu/glm-5-3/#method-5)
- [**Ailoot · OpenAI Responses** `POST /v1/responses` `glm`](https://ailoot.ai/models/hu/glm-5-3/#method-6)
- [**Ailoot · OpenAI Chat** `POST /v1/chat/completions` `glm`](https://ailoot.ai/models/hu/glm-5-3/#method-7)
- [**Ailoot · Anthropic Messages** `POST /v1/messages` `glm-5`](https://ailoot.ai/models/hu/glm-5-3/#method-8)
- [**Ailoot · OpenAI Responses** `POST /v1/responses` `glm-5`](https://ailoot.ai/models/hu/glm-5-3/#method-9)
- [**Ailoot · OpenAI Chat** `POST /v1/chat/completions` `glm-5`](https://ailoot.ai/models/hu/glm-5-3/#method-10)
- [**Ailoot · Anthropic Messages** `POST /v1/messages` `glm-5.1`](https://ailoot.ai/models/hu/glm-5-3/#method-11)
- [**Ailoot · OpenAI Responses** `POST /v1/responses` `glm-5.1`](https://ailoot.ai/models/hu/glm-5-3/#method-12)
- [**Ailoot · OpenAI Chat** `POST /v1/chat/completions` `glm-5.1`](https://ailoot.ai/models/hu/glm-5-3/#method-13)
- [**Ailoot · Anthropic Messages** `POST /v1/messages` `glm-5.2`](https://ailoot.ai/models/hu/glm-5-3/#method-14)
- [**Ailoot · OpenAI Responses** `POST /v1/responses` `glm-5.2`](https://ailoot.ai/models/hu/glm-5-3/#method-15)
- [**Ailoot · OpenAI Chat** `POST /v1/chat/completions` `glm-5.2`](https://ailoot.ai/models/hu/glm-5-3/#method-16)
- [**Ailoot · Anthropic Messages** `POST /v1/messages` `glm-latest`](https://ailoot.ai/models/hu/glm-5-3/#method-17)
- [**Ailoot · OpenAI Responses** `POST /v1/responses` `glm-latest`](https://ailoot.ai/models/hu/glm-5-3/#method-18)
- [**Ailoot · OpenAI Chat** `POST /v1/chat/completions` `glm-latest`](https://ailoot.ai/models/hu/glm-5-3/#method-19)
- [**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `z-ai/glm-5.3`](https://ailoot.ai/models/hu/glm-5-3/#method-20)
- [**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `z-ai/glm-5.3`](https://ailoot.ai/models/hu/glm-5-3/#method-21)
- [**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `~z-ai/glm-latest`](https://ailoot.ai/models/hu/glm-5-3/#method-22)
- [**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `~z-ai/glm-latest`](https://ailoot.ai/models/hu/glm-5-3/#method-23)

A modellről

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.

A Z.ai GLM 5.3 nagyméretű szöveges következtető modell, amelyet összetett szoftverfejlesztéshez és hosszú távú ügynökmunkához terveztek. A gyártó szerint ugyanazt az alapmodellt használja, mint a GLM 5.2, az új előrelépések pedig az utótanításból származnak. A kiadás az erősebb programozásra, terminálműveletekre és több egymástól függő lépést tartalmazó, tágabb feladatokra összpontosít. Szöveget fogad és szöveget állít elő, beleértve a kódot, magyarázatokat, terveket és eszközhívási kéréseket egy eszközökhöz kapcsolt alkalmazásban.

A dokumentált következtetési mód mindig be van kapcsolva. A GLM 5.3 három ráfordítási szintet kínál: low, high és max; az alapértelmezett a max. A gyártó összetett programozási munkához a max értéket javasolja; a low az egyszerűbb lépésekhez könnyebb következtetési lehetőséget ad. A kiválasztott szint mellett határozza meg egyértelműen az elkészítendő végső anyagot és a teljesítési kritériumokat. Például: „Vizsgálja meg ezeket a fájlokat és sikertelen eredményeket, kövesse végig az okot az érintett modulokon, javasoljon a nyilvános felületet megőrző javítást, és magyarázza el, mely ellenőrzések igazolják a regresszió megszüntetését.”

A gyártó 1M tokenes kontextusablakot és 128K tokenes maximális kimeneti hosszt ad meg. Rendezze a hosszú anyagot a modell által vizsgálandó összefüggés köré. Őrizze meg a fájlneveket, releváns definíciókat, forráscímkéket és a megfigyelések sorrendjét, és hagyjon helyet a következtetésnek és a végső válasznak a vonatkozó munkakontextusban. A nagy ablak modulok közötti függőségekhez vagy ügynökmegfigyelések hosszú sorozatához hasznos; nem teszi jól meghatározott feladattá a nem kapcsolódó anyagok irány nélküli archívumát.

Kódtári munkához adja meg az elvárt működést, a releváns forráskódot, a függőségek verzióit és a tényleges hibakimenetet. Kérje, hogy a modell a javítás javaslata előtt azonosítsa az érintett működést. Átszervezésnél nevezze meg az épen tartandó felületet és invariánsokat. A hasznos válasz tartalmazza a módosított kódot, azt, hogy a változtatás miért kezeli a megfigyelt problémát, valamint az eredmény ellenőrzéséhez szükséges eseteket. A tényleges eredményeket táplálja vissza az eszközökhöz kapcsolt munkafolyamatba, hogy a következő lépés a megváltozott állapotra épüljön, ne a korábbi javaslatra.

Teljesítményjavításhoz adjon munkaterhelést, kiindulási alapot és méréseket, például futási időket, profilokat vagy allokációs feljegyzéseket. A Z.ai szűk keresztmetszetek diagnosztizálását, optimalizálást, kísérleteket és helyességet megőrző eredményeket tartalmazó tanítási feladatokat ír le. Gyakorlati kérés lehet: „E profil alapján azonosítsa a legjelentősebb szűk keresztmetszetet, javasoljon egy mérhető változtatást, és magyarázza el, milyen eredmény indokolná annak megtartását.” Különítse el a teljesítményre vonatkozó hipotézist a rögzített javulástól. Az eredmény vizsgálatakor őrizze meg ugyanazt a munkaterhelést és a releváns körülményeket.

A kiadás a sérülékenységelemzési képességet is fejleszti. Védekező forráskód-ellenőrzéshez adja meg a releváns kódot, annak tervezett bizalmi határait és futási körülményeit. Kérjen olyan megállapítást, amely összekapcsolja a feltételezett problémát az érintett bemenettel, működéssel és célzott javítással. Válassza külön a lehetséges gyengeséget a reprodukált hibától, és őrizze meg az ellenőrzéséhez használt megfigyelést. A jelentés hasznosabb, ha konkrét bizonyítékokat és javasolt javításokat rangsorol, ahelyett, hogy minden gyanús mintát igazolt sérülékenységként kezelne.

A függvényhívás lehetővé teszi, hogy a környező alkalmazás külső műveleteket tegyen elérhetővé a modellnek. Határozza meg minden eszköz célját, argumentumait és várható eredményét, majd adja vissza a tényleges eszközmegfigyelést a következő lépéshez. A modell következtethet az eredmény alapján, és eldöntheti, hogyan változtatja meg az a feladatot. A javasolt műveletek, végrehajtott műveletek és lezáratlan ellenőrzések maradjanak megkülönböztethetők. A gyártó adatfolyamos válaszokat is dokumentál, amelyek külön adják vissza a következtetés és a válasz töredékeit; állítsa össze a teljes választ, mielőtt végső jelentésként vagy kódmagyarázatként kezeli.

A helyi modelladatlap konkrét előzménykezelési részletet közöl: csevegési sablonja alapértelmezés szerint megtartja a gondolkodást, a gyártó viszont a szokásos csevegési helyzetekben a régi gondolkodás kifejezett törlését javasolja. Alkalmazza a felhasználási esetnek megfelelő beszélgetésszerkezetet, megtartva a folytatáshoz szükséges tényleges, befejezett válaszokat és eszközeredményeket. Ne kezelje a GLM 5.2 vagy a különálló GLM 5.3 Flash kiadások következtetési beállításait e modell low/high/max vezérlőivel felcserélhetőként.

Strukturált eredményhez adja meg az elvárt mezőket, típusokat és forrásszabályokat. Hasznos anyag lehet egy hibatáblázat, változtatási terv vagy a megfigyeléseket összefoglaló JSON-objektum. A szerkezetet és az értékeket is ellenőrizze, mielőtt az alkalmazás felhasználja őket. A végső eredmény azonosítsa a választ vagy módosított anyagot, az azt alátámasztó bizonyítékot és a fennmaradó feltételezéseket. A nagyobb következtetési ráfordítás nem bizonyítja, hogy egy eszköz lefutott, egy javasolt javítás átment az ellenőrzéseken, vagy egy tényállításnak van alátámasztása a megadott anyagon túl.

Gyakorlati feladat

### Gyakorlati feladat

Technikai példa angolul

```
Target a measured bottleneck

Profile P1 for one import: parsing 0.4 s, per-row database lookups 8.1 s, writing 0.8 s. The import handles 10,000 rows, including repeated customer IDs. Propose one correctness-preserving optimization, describe what lookup behavior must remain identical and define a same-workload check before claiming an improvement.
```

#### Várt eredmény

```
A bottleneck hypothesis, one proposed change and a correctness plus timing comparison plan.
```

#### Az eredmény ellenőrzése

```
The proposal must use P1 without inventing an observed speedup or losing missing-customer behavior.
```

**Ailoot · Anthropic Messages** `POST /v1/messages` `glm-5.3`

[`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=messages)

Z.ai /`glm-5.3`

Modell ID-ja

- `glm-5.3`
- `glm`
- `glm-5`
- `glm-5.1`
- `glm-5.2`
- `glm-latest`

### Kezdő lépések

A Z.ai GLM 5.3 szöveges következtető modell összetett szoftverfejlesztéshez, terminálmunkához és hosszú távú ügynökfeladatokhoz. A gyártó által dokumentált 1M tokenes kontextust, legfeljebb 128K kimeneti tokent, függvényhívást és low/high/max következtetési ráfordítást támogat, folyamatosan bekapcsolt következtetéssel.

Elfogadott bemenetek

Szöveg

Eredmények

Szöveg

### Elérhető az Ailootban · bemenetek és metódusok

**Ailoot · Anthropic Messages** `POST /v1/messages`

Bemenet

`text`

Kimenet

`text`

Kontextus

1 000 000 tokens

Maximális kimenet

131 072 tokens

Kimeneti formátum

json vagy SSE

| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
| --- | --- | --- | --- | --- |
| Mező`model` | Típus`string` | KövetelményKötelező | Értékek és korlátok glm-5.3 | Alapértelmezett— |
| Mező`messages` | Típus`message[]` | KövetelményKötelező | Értékek és korlátok Minimális elemszám: 1 | Alapértelmezett— |
| Mező`messages[].role` | Típus`string` | KövetelményKötelező | Értékek és korlátok user, assistant | Alapértelmezett— |
| Mező`messages[].content` | Típus`string\|content_block[]` | KövetelményKötelező | Értékek és korlátok | Alapértelmezett— |
| Mező`system` | Típus`string\|content_block[]` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`max_tokens` | Típus`integer` | KövetelményKötelező | Értékek és korlátok Minimum: 1 A korlát erre vonatkozik: a kiválasztott modell/kártya pontos felső korlátja | Alapértelmezett— |
| Mező`stream` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezettfalse |
| Mező`temperature` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`top_p` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`stop_sequences` | Típus`string[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools` | Típus`tool[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools[].name` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: Eszköz megadva | Alapértelmezett— |
| Mező`tools[].description` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tools[].input_schema` | Típus`JSON_schema` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tool_choice` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`thinking.type` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`thinking.budget_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`output_config.effort` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`metadata` | Típus`object` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`cache_control` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |

Bemeneti anyagok kombinációi

**Szöveg** · UTF8 szöveg

`messages[].content vagy type=text blokk`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`material_types` | Szerződéstext |
| Paraméter`required` | Szerződésmodel, messages, max\_tokens |
| Paraméter`optional_controls` | Szerződésnull |
| Paraméter`content_type` | Szerződésapplication/json |
| Paraméter`text_file_material` | Szerződésa tényleges UTF-8 tartalom szövegként beillesztve; a fájlazonosítók/URLs külön, pontos támogatást igényelnek |

Életciklus: `exact retained published method`

A metódusok szerkezete és azonosítói pontosak; a beszállítói képesség különbözik a kérelmek befogadásától.

### Díjcsomagok

#### Ailoot-metódusok díjai

Bemenet

0,0014 USD */ 1K*

Kimenet

0,0044 USD */ 1K*

Gyorsítótár olvasása

≈0,00026 USD */ 1K*

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 foglalás és az elszámolás működése →](https://ailoot.ai/docs/hu/billing/reserve/)

#### A referencia-díjszabás részletei

A modellszintű referenciatáblázatok nem módosítják a metódusválasztást, az árajánlatokat vagy a díjakat. A tényleges díjak a kiválasztott Ailoot-metódus díjtételeit használják.

Modell referenciatáblázatai

#### Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

| Beállítás | Díjtáblázat | Kontextustokenek, több mint | Kontextustokenek, legfeljebb | Díj |
| --- | --- | --- | --- | --- |
| BeállításOpenAI Chat · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításOpenAI Chat · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |

### Példakérések

#### Ailoot · Anthropic Messages

Szöveges példaPython SDKNode.js SDKPython-adatfolyam

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "glm-5.3", "max_tokens": 1024, "messages": []}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["messages"]=[{"role":"user","content":"Summarize this material and quote supporting source passages.\n\n"+text}]
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
```

```python
import anthropic
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = anthropic.Anthropic(base_url="https://api.ailoot.ai", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
msg = client.messages.create(
    model="glm-5.3",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}],
)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(msg.to_dict(mode="json"))
```

```js
import Anthropic from "@anthropic-ai/sdk";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new Anthropic({ baseURL: "https://api.ailoot.ai", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const msg = await client.messages.create({
  model: "glm-5.3",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Explain the difference between an observation and a hypothesis in three sentences." }],
});
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(msg);
```

```python
import anthropic,os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=anthropic.Anthropic(base_url="https://api.ailoot.ai",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.messages.stream(model='glm-5.3',max_tokens=1024,messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_message()
    save_result(final.to_dict(mode="json"),"stream-result")
```

### Eredmények fogadása és mentése

#### Ailoot · Anthropic Messages

json vagy SSE

##### Őrizzen meg minden elkészült eredményt

Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.

Ő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.

##### Ha az eredeti választ ellenőrizni kell

Ő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.

Válaszmezők

| Mező | Típus |
| --- | --- |
| Mező`id` | Típusstring |
| Mező`model` | Típusstring |
| Mező`content[]` | Típustext\|thinking\|tool\_use\|other content block |
| Mező`stop_reason` | Típusstring\|null |
| Mező`usage` | Típusobject |

Hibák és következő lépések

| Válasz | Feltétel | Következő lépés |
| --- | --- | --- |
| Válasz400 · `invalid_request_error` | FeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték | Következő lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt. |

### Álnevek

#### Modell álnevei

<strong>Ailoot</strong> [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=messages), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=messages), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=messages), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=messages), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=messages), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=messages)
**Ailoot Ultra** [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=messages), [`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=messages), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=messages)

#### Metódusútvonalak álnevei

`/chat/completions`

#### Kapcsolódó modellazonosítók

[`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=messages), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=messages), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=messages), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=messages), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=messages), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=messages), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=messages), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=messages), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=messages)

**Ailoot · OpenAI Responses** `POST /v1/responses` `glm-5.3`

[`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=responses)

Z.ai /`glm-5.3`

Modell ID-ja

- `glm-5.3`
- `glm`
- `glm-5`
- `glm-5.1`
- `glm-5.2`
- `glm-latest`

### Kezdő lépések

A Z.ai GLM 5.3 szöveges következtető modell összetett szoftverfejlesztéshez, terminálmunkához és hosszú távú ügynökfeladatokhoz. A gyártó által dokumentált 1M tokenes kontextust, legfeljebb 128K kimeneti tokent, függvényhívást és low/high/max következtetési ráfordítást támogat, folyamatosan bekapcsolt következtetéssel.

Elfogadott bemenetek

Szöveg

Eredmények

Szöveg

### Elérhető az Ailootban · bemenetek és metódusok

**Ailoot · OpenAI Responses** `POST /v1/responses`

Bemenet

`text`

Kimenet

`text`

Kontextus

1 000 000 tokens

Maximális kimenet

131 072 tokens

Kimeneti formátum

json vagy SSE

| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
| --- | --- | --- | --- | --- |
| Mező`model` | Típus`string` | KövetelményKötelező | Értékek és korlátok glm-5.3 | Alapértelmezett— |
| Mező`input` | Típus`string\|input_item[]` | KövetelményKötelező | Értékek és korlátok | Alapértelmezett— |
| Mező`instructions` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`input[].type` | Típus`string` | KövetelményOpcionális | Értékek és korlátok message, reasoning, function\_call, function\_call\_output | Alapértelmezett— |
| Mező`input[].content` | Típus`string\|content_part[]` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`input[].call_id` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: function\_call\_output; őrizze meg a ténylegesen visszaadott call\_id értéket | Alapértelmezett— |
| Mező`input[].output` | Típus`string\|content_part[]` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: function\_call\_output | Alapértelmezett— |
| Mező`max_output_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Modelltől függ | Alapértelmezett— |
| Mező`stream` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezettfalse |
| Mező`temperature` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`top_p` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools` | Típus`tool[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tool_choice` | Típus`string\|object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`parallel_tool_calls` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning.effort` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning.summary` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`text.format` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`text.verbosity` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`include` | Típus`string[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`store` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`previous_response_id` | Típus`string` | KövetelményOpcionális | Értékek és korlátok ID-követelmény: Csak támogatott folytatásból származó tényleges válaszazonosító Modelltől függ | Alapértelmezett— |
| Mező`service_tier` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`prompt_cache_key` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`prompt_cache_options` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |

Bemeneti anyagok kombinációi

**Szöveg** · UTF8 szöveg

`bemeneti szöveg vagy input_text rész`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`material_types` | Szerződéstext |
| Paraméter`required` | Szerződésmodel, input |
| Paraméter`optional_controls` | Szerződésnull |
| Paraméter`content_type` | Szerződésapplication/json |
| Paraméter`text_file_material` | Szerződésa tényleges UTF-8 tartalom szövegként beillesztve; a fájlazonosítók/URLs külön, pontos támogatást igényelnek |

Életciklus: `exact retained published method`

A metódusok szerkezete és azonosítói pontosak; a beszállítói képesség különbözik a kérelmek befogadásától.

### Díjcsomagok

#### Ailoot-metódusok díjai

Bemenet

0,0014 USD */ 1K*

Kimenet

0,0044 USD */ 1K*

Gyorsítótár olvasása

≈0,00026 USD */ 1K*

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 foglalás és az elszámolás működése →](https://ailoot.ai/docs/hu/billing/reserve/)

#### A referencia-díjszabás részletei

A modellszintű referenciatáblázatok nem módosítják a metódusválasztást, az árajánlatokat vagy a díjakat. A tényleges díjak a kiválasztott Ailoot-metódus díjtételeit használják.

Modell referenciatáblázatai

#### Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

| Beállítás | Díjtáblázat | Kontextustokenek, több mint | Kontextustokenek, legfeljebb | Díj |
| --- | --- | --- | --- | --- |
| BeállításOpenAI Chat · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításOpenAI Chat · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |

### Példakérések

#### Ailoot · OpenAI Responses

Szöveges példaPython SDKNode.js SDKPython-adatfolyam

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "glm-5.3", "input": ""}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["input"]="Summarize this material and quote supporting source passages.\n\n"+text
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/responses \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(json.loads(Path("result.json").read_text(encoding="utf-8")))
PY_RESULT
```

```python
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = OpenAI(base_url="https://api.ailoot.ai/v1", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
resp = client.responses.create(model="glm-5.3", input="Explain the difference between an observation and a hypothesis in three sentences.")
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(resp.to_dict(mode="json"))
```

```js
import OpenAI from "openai";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new OpenAI({ baseURL: "https://api.ailoot.ai/v1", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const resp = await client.responses.create({ model: "glm-5.3", input: "Explain the difference between an observation and a hypothesis in three sentences." });
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(resp);
```

```python
from openai import OpenAI
import os
from pathlib import Path
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
with client.responses.stream(model="glm-5.3", input="Explain the difference between an observation and a hypothesis in three sentences.") as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_response()
    save_result(final.to_dict(mode="json"),"stream-result")
```

### Eredmények fogadása és mentése

#### Ailoot · OpenAI Responses

json vagy SSE

##### Őrizzen meg minden elkészült eredményt

Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.

Őrizzen meg minden kimeneti elemet és tartalomrészt, a tényleges függvényhívási call\_id értéket, a titkosított gondolkodási tartalmat és a használati adatokat. Folyamatos átvitelkor őrizze meg az események és elemek összes azonosítóadatát.

##### Ha az eredeti választ ellenőrizni kell

Ő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.

Válaszmezők

| Mező | Típus |
| --- | --- |
| Mező`id` | Típusstring |
| Mező`status` | Típusstring |
| Mező`output[]` | Típusmessage\|reasoning\|function\_call\|other item |
| Mező`output[].content[]` | Típuscontent part |
| Mező`usage` | Típusobject |

Hibák és következő lépések

| Válasz | Feltétel | Következő lépés |
| --- | --- | --- |
| Válasz400 · `invalid_request_error` | FeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték | Következő lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt. |

### Álnevek

#### Modell álnevei

<strong>Ailoot</strong> [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=responses), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=responses), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=responses), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=responses), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=responses), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=responses)
**Ailoot Ultra** [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3), [`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest)

#### Metódusútvonalak álnevei

`/chat/completions`

#### Kapcsolódó modellazonosítók

[`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=responses), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=responses), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=responses), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=responses), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=responses), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=responses), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3)

**Ailoot · OpenAI Chat** `POST /v1/chat/completions` `glm-5.3`

[`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=chat)

Z.ai /`glm-5.3`

Modell ID-ja

- `glm-5.3`
- `glm`
- `glm-5`
- `glm-5.1`
- `glm-5.2`
- `glm-latest`

### Kezdő lépések

A Z.ai GLM 5.3 szöveges következtető modell összetett szoftverfejlesztéshez, terminálmunkához és hosszú távú ügynökfeladatokhoz. A gyártó által dokumentált 1M tokenes kontextust, legfeljebb 128K kimeneti tokent, függvényhívást és low/high/max következtetési ráfordítást támogat, folyamatosan bekapcsolt következtetéssel.

Elfogadott bemenetek

Szöveg

Eredmények

Szöveg

### Elérhető az Ailootban · bemenetek és metódusok

**Ailoot · OpenAI Chat** `POST /v1/chat/completions`

Bemenet

`text`

Kimenet

`text`

Kontextus

1 000 000 tokens

Maximális kimenet

131 072 tokens

Kimeneti formátum

json vagy SSE

| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
| --- | --- | --- | --- | --- |
| Mező`model` | Típus`string` | KövetelményKötelező | Értékek és korlátok glm-5.3 | Alapértelmezett— |
| Mező`messages` | Típus`message[]` | KövetelményKötelező | Értékek és korlátok Minimális elemszám: 1 | Alapértelmezett— |
| Mező`messages[].role` | Típus`string` | KövetelményKötelező | Értékek és korlátok Példák: system, user, assistant, tool, function 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. Modelltől függ | Alapértelmezett— |
| Mező`messages[].content` | Típus`string\|content_part[]\|null` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].tool_calls` | Típus`tool_call[]` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].tool_call_id` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: role=tool; használja a ténylegesen visszaadott ID-t | Alapértelmezett— |
| Mező`messages[].name` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].reasoning_content` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: Küldje vissza a ténylegesen visszaadott gondolkodási tartalmat, ha ez a modell használja | Alapértelmezett— |
| Mező`messages[].reasoning_details` | Típus`object\|array` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`max_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Modelltől függ | Alapértelmezett— |
| Mező`max_completion_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Modelltől függ | Alapértelmezett— |
| Mező`stream` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezettfalse |
| Mező`stream_options.include_usage` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`temperature` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`top_p` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`stop` | Típus`string\|string[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools` | Típus`function_tool[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools[].type` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools[].function.name` | Típus`string` | KövetelményKötelező | Értékek és korlátok Akkor alkalmazandó, ha: Függvényeszköz megadva | Alapértelmezett— |
| Mező`tools[].function.description` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tools[].function.parameters` | Típus`JSON_schema` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tool_choice` | Típus`string\|object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`parallel_tool_calls` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`response_format` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning_effort` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`service_tier` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`instructions` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Kompatibilitási mező | Alapértelmezett— |
| Mező`functions` | Típus`function[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`function_call` | Típus`string\|object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`prompt_cache_options` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |

Bemeneti anyagok kombinációi

**Szöveg** · UTF8 szöveg

`messages[].content`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`material_types` | Szerződéstext |
| Paraméter`required` | Szerződésmodel, messages |
| Paraméter`optional_controls` | Szerződésnull |
| Paraméter`content_type` | Szerződésapplication/json |
| Paraméter`text_file_material` | Szerződésa tényleges UTF-8 tartalom szövegként beillesztve; a fájlazonosítók/URLs külön, pontos támogatást igényelnek |

Életciklus: `exact retained published method`

A metódusok szerkezete és azonosítói pontosak; a beszállítói képesség különbözik a kérelmek befogadásától.

### Díjcsomagok

#### Ailoot-metódusok díjai

Bemenet

0,0014 USD */ 1K*

Kimenet

0,0044 USD */ 1K*

Gyorsítótár olvasása

≈0,00026 USD */ 1K*

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 foglalás és az elszámolás működése →](https://ailoot.ai/docs/hu/billing/reserve/)

#### A referencia-díjszabás részletei

A modellszintű referenciatáblázatok nem módosítják a metódusválasztást, az árajánlatokat vagy a díjakat. A tényleges díjak a kiválasztott Ailoot-metódus díjtételeit használják.

Modell referenciatáblázatai

#### Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

| Beállítás | Díjtáblázat | Kontextustokenek, több mint | Kontextustokenek, legfeljebb | Díj |
| --- | --- | --- | --- | --- |
| BeállításOpenAI Chat · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításOpenAI Chat · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |

### Példakérések

#### Ailoot · OpenAI Chat

Szöveges példaPython SDKNode.js SDKPython-adatfolyam

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "glm-5.3", "messages": []}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["messages"]=[{"role":"user","content":"Summarize this material and quote supporting source passages.\n\n"+text}]
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
```

```python
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = OpenAI(base_url="https://api.ailoot.ai/v1", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
resp = client.chat.completions.create(
    model="glm-5.3",
    messages=[{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}],
)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(resp.to_dict(mode="json"))
```

```js
import OpenAI from "openai";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new OpenAI({ baseURL: "https://api.ailoot.ai/v1", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const resp = await client.chat.completions.create({
  model: "glm-5.3",
  messages: [{ role: "user", content: "Explain the difference between an observation and a hypothesis in three sentences." }],
});
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(resp);
```

```python
from openai import OpenAI
import os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.chat.completions.stream(model='glm-5.3',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_completion()
    save_result(final.to_dict(mode="json"),"stream-result")
```

### Eredmények fogadása és mentése

#### Ailoot · OpenAI Chat

json vagy SSE

##### Őrizzen meg minden elkészült eredményt

Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.

Ő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.

##### Ha az eredeti választ ellenőrizni kell

Ő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.

Válaszmezők

| Mező | Típus |
| --- | --- |
| Mező`choices[].index` | Típusinteger |
| Mező`choices[].message.content` | Típusstring\|null |
| Mező`choices[].message.tool_calls` | Típustool\_call\[\] |
| Mező`choices[].message.reasoning_content` | Típusstring |
| Mező`choices[].message.reasoning_details` | Típusobject\|array |
| Mező`choices[].finish_reason` | Típusstring\|null |
| Mező`usage` | Típusobject |

Hibák és következő lépések

| Válasz | Feltétel | Következő lépés |
| --- | --- | --- |
| Válasz400 · `invalid_request_error` | FeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték | Következő lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt. |

### Álnevek

#### Modell álnevei

<strong>Ailoot</strong> [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=chat), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=chat), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=chat), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=chat), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=chat), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=chat)
**Ailoot Ultra** [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=chat), [`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=chat), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=chat)

#### Metódusútvonalak álnevei

`/chat/completions`

#### Kapcsolódó modellazonosítók

[`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=chat), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=chat), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=chat), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=chat), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=chat), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=chat), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=chat), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=chat), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=chat)

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `glm-5.3`

[`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=chat)

Z.ai /`glm-5.3`

Modell ID-ja

- `glm-5.3`
- `z-ai/glm-5.3`
- `~z-ai/glm-latest`

### Kezdő lépések

A Z.ai GLM 5.3 szöveges következtető modell összetett szoftverfejlesztéshez, terminálmunkához és hosszú távú ügynökfeladatokhoz. A gyártó által dokumentált 1M tokenes kontextust, legfeljebb 128K kimeneti tokent, függvényhívást és low/high/max következtetési ráfordítást támogat, folyamatosan bekapcsolt következtetéssel.

Elfogadott bemenetek

Szöveg

Eredmények

Szöveg

### Elérhető az Ailootban · bemenetek és metódusok

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions`

Bemenet

`text`

Kimenet

`text`

Kimeneti formátum

json vagy SSE

| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
| --- | --- | --- | --- | --- |
| Mező`model` | Típus`string` | KövetelményKötelező | Értékek és korlátok glm-5.3 | Alapértelmezett— |
| Mező`messages` | Típus`message[]` | KövetelményKötelező | Értékek és korlátok Minimális elemszám: 1 | Alapértelmezett— |
| Mező`messages[].role` | Típus`string` | KövetelményKötelező | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`messages[].content` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: Szöveges beszélgetés | Alapértelmezett— |
| Mező`stream` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezettfalse |

Bemeneti anyagok kombinációi

**Szöveg** · UTF8 szöveg

`messages[].content`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`content_type` | Szerződésapplication/json |
| Paraméter`required` | Szerződésmodel, messages |
| Paraméter`material_types` | Szerződéstext |
| Paraméter`messages` | Szerződésüzenettömb role/content szerkezettel |
| Paraméter`file_material` | Szerződésa tényleges UTF-8 dokumentum szó szerinti szövegként beillesztve; nincs kikövetkeztetett fájlazonosító |
| Paraméter`optional_controls` | Szerződésstream |
| Paraméter`control_scope` | SzerződésSzöveges beszélgetés; a stream logikai érték, alapértéke false. |
| Paraméter`output_modalities` | Szerződéstext |
| Paraméter`hosted_operations` | Szerződésfalse |
| Paraméter`multimodal_input_binding` | Szerződésnull |

Metódus álnevei: `/chat/completions`

Életciklus: `synchronous_or_streamed`

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.

### Díjcsomagok

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.

Gyors mód

Normál díjszabás Ha a gyors mód van kiválasztva

Flex mód

Normál díjszabás Ha a flex mód van kiválasztva

Maximális gondolkodási ráfordítás

Normál díjszabás Ha a maximális gondolkodási ráfordításra a default beállításhoz tartozó korrekció vonatkozik

Gondolkodási ráfordítás · high

Normál díjszabás Ha a gondolkodási ráfordítás értéke high

Gondolkodási ráfordítás · low

Normál díjszabás Ha a gondolkodási ráfordítás értéke low

Gondolkodási ráfordítás · max

Normál díjszabás Ha a gondolkodási ráfordítás értéke max

#### Ailoot-díjak

#### Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

| Beállítás | Díjtáblázat | Kontextustokenek, több mint | Kontextustokenek, legfeljebb | Díj |
| --- | --- | --- | --- | --- |
| BeállításTokenenkénti alapárak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításA kéréshossz szerinti 1. ársáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |

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 foglalás és az elszámolás működése →](https://ailoot.ai/docs/hu/billing/reserve/)

### Példakérések

#### Ailoot Ultra · OpenAI Chat

curlPython SDK

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model":"glm-5.3","messages":[{"role":"user","content":"hello"}],"stream":false}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
    if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
```

```python
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model="glm-5.3", messages=[{"role":"user","content":"hello"}], stream=False)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(result.to_dict(mode="json"))
```

### Eredmények fogadása és mentése

#### Ailoot Ultra · OpenAI Chat

json vagy SSE

##### Őrizzen meg minden elkészült eredményt

Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.

Ő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.

##### Ha az eredeti választ ellenőrizni kell

Ő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.

Válaszmezők

| Mező | Típus |
| --- | --- |
| Mező`choices[].index` | Típusinteger |
| Mező`choices[].message.content` | Típusstring\|null |
| Mező`choices[].message.tool_calls` | Típustool\_call\[\] |
| Mező`choices[].message.reasoning_content` | Típusstring |
| Mező`choices[].message.reasoning_details` | Típusobject\|array |
| Mező`choices[].finish_reason` | Típusstring\|null |
| Mező`usage` | Típusobject |

Hibák és következő lépések

| Válasz | Feltétel | Következő lépés |
| --- | --- | --- |
| Válasz400 · `invalid_request_error` | FeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték | Következő lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt. |

### Álnevek

#### Modell álnevei

<strong>Ailoot</strong> [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=chat), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=chat), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=chat), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=chat), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=chat), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=chat)
**Ailoot Ultra** [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=chat), [`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=chat), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=chat)

#### Metódusútvonalak álnevei

`/chat/completions`

#### Kapcsolódó modellazonosítók

[`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=chat), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=chat), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=chat), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=chat), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=chat), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=chat), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=chat), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=chat), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=chat)

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `glm-5.3`

[`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=messages)

Z.ai /`glm-5.3`

Modell ID-ja

- `glm-5.3`
- `z-ai/glm-5.3`
- `~z-ai/glm-latest`

### Kezdő lépések

A Z.ai GLM 5.3 szöveges következtető modell összetett szoftverfejlesztéshez, terminálmunkához és hosszú távú ügynökfeladatokhoz. A gyártó által dokumentált 1M tokenes kontextust, legfeljebb 128K kimeneti tokent, függvényhívást és low/high/max következtetési ráfordítást támogat, folyamatosan bekapcsolt következtetéssel.

Elfogadott bemenetek

Szöveg

Eredmények

json · sse

### Elérhető az Ailootban · bemenetek és metódusok

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages`

Bemenet

`text`

Kimenet

`json`, `sse`

Kimeneti formátum

JSON vagy SSE

| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
| --- | --- | --- | --- | --- |
| Mező`model` | Típus`string` | KövetelményKötelező | Értékek és korlátok glm-5.3 | Alapértelmezett— |
| Mező`messages` | Típus`message[]` | KövetelményKötelező | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].role` | Típus`string` | KövetelményKötelező | Értékek és korlátok user, assistant | Alapértelmezett— |
| Mező`messages[].content` | Típus`string` | KövetelményKötelező | Értékek és korlátok | Alapértelmezett— |
| Mező`max_tokens` | Típus`integer` | KövetelményKötelező | Értékek és korlátok | Alapértelmezett— |
| Mező`stream` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezettfalse |

Bemeneti anyagok kombinációi

**Szöveg** · UTF-8 szöveg

`messages[].content karakterlánc`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`content_type` | Szerződésapplication/json |
| Paraméter`required` | Szerződésmodel, messages, max\_tokens |
| Paraméter`optional_controls` | Szerződésstream |
| Paraméter`material_types` | Szerződéstext |
| Paraméter`text_file_material` | SzerződésOlvassa el a tényleges UTF-8 dokumentumot, és tegye a szövegét a jelzett bemeneti karakterláncba vagy az üzenettartalom karakterláncába. |

Életciklus: `synchronous_or_streamed`

### Díjcsomagok

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.

Gyors mód

Normál díjszabás Ha a gyors mód van kiválasztva

Flex mód

Normál díjszabás Ha a flex mód van kiválasztva

Maximális gondolkodási ráfordítás

Normál díjszabás Ha a maximális gondolkodási ráfordításra a default beállításhoz tartozó korrekció vonatkozik

Gondolkodási ráfordítás · high

Normál díjszabás Ha a gondolkodási ráfordítás értéke high

Gondolkodási ráfordítás · low

Normál díjszabás Ha a gondolkodási ráfordítás értéke low

Gondolkodási ráfordítás · max

Normál díjszabás Ha a gondolkodási ráfordítás értéke max

#### Ailoot-díjak

#### Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

| Beállítás | Díjtáblázat | Kontextustokenek, több mint | Kontextustokenek, legfeljebb | Díj |
| --- | --- | --- | --- | --- |
| BeállításTokenenkénti alapárak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításA kéréshossz szerinti 1. ársáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |

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 foglalás és az elszámolás működése →](https://ailoot.ai/docs/hu/billing/reserve/)

### Példakérések

#### Ailoot Ultra · Anthropic Messages

Teljes, minimális JSON-törzscurl · használd a saját UTF-8-dokumentumodatPython · mentsd el a teljes eredményt

```json
{
  "model": "glm-5.3",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
```

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'glm-5.3', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
```

```python
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'glm-5.3', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
```

### Eredmények fogadása és mentése

#### Ailoot Ultra · Anthropic Messages

JSON vagy SSE

##### Őrizzen meg minden elkészült eredményt

Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.

Ő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.

##### Ha az eredeti választ ellenőrizni kell

Ő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.

Válaszmezők

| Mező | Típus |
| --- | --- |
| Mező`id` | Típusstring |
| Mező`model` | Típusstring |
| Mező`content[]` | Típustext\|thinking\|tool\_use\|other content block |
| Mező`stop_reason` | Típusstring\|null |
| Mező`usage` | Típusobject |

Hibák és következő lépések

| Válasz | Feltétel | Következő lépés |
| --- | --- | --- |
| Válasz400 · `invalid_request_error` | FeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték | Következő lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt. |

### Álnevek

#### Modell álnevei

<strong>Ailoot</strong> [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=messages), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=messages), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=messages), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=messages), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=messages), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=messages)
**Ailoot Ultra** [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=messages), [`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=messages), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=messages)

#### Metódusútvonalak álnevei

`/chat/completions`

#### Kapcsolódó modellazonosítók

[`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=messages), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=messages), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=messages), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=messages), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=messages), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=messages), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=messages), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=messages), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=messages)

**Ailoot · Anthropic Messages** `POST /v1/messages` `glm`

[`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=messages)

Z.ai /`glm`

Modell ID-ja

- `glm-5.3`
- `glm`
- `glm-5`
- `glm-5.1`
- `glm-5.2`
- `glm-latest`

### Kezdő lépések

A Z.ai GLM 5.3 szöveges következtető modell összetett szoftverfejlesztéshez, terminálmunkához és hosszú távú ügynökfeladatokhoz. A gyártó által dokumentált 1M tokenes kontextust, legfeljebb 128K kimeneti tokent, függvényhívást és low/high/max következtetési ráfordítást támogat, folyamatosan bekapcsolt következtetéssel.

Elfogadott bemenetek

Szöveg

Eredmények

Szöveg

### Elérhető az Ailootban · bemenetek és metódusok

**Ailoot · Anthropic Messages** `POST /v1/messages`

Bemenet

`text`

Kimenet

`text`

Kontextus

1 000 000 tokens

Maximális kimenet

131 072 tokens

Kimeneti formátum

json vagy SSE

| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
| --- | --- | --- | --- | --- |
| Mező`model` | Típus`string` | KövetelményKötelező | Értékek és korlátok glm | Alapértelmezett— |
| Mező`messages` | Típus`message[]` | KövetelményKötelező | Értékek és korlátok Minimális elemszám: 1 | Alapértelmezett— |
| Mező`messages[].role` | Típus`string` | KövetelményKötelező | Értékek és korlátok user, assistant | Alapértelmezett— |
| Mező`messages[].content` | Típus`string\|content_block[]` | KövetelményKötelező | Értékek és korlátok | Alapértelmezett— |
| Mező`system` | Típus`string\|content_block[]` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`max_tokens` | Típus`integer` | KövetelményKötelező | Értékek és korlátok Minimum: 1 A korlát erre vonatkozik: a kiválasztott modell/kártya pontos felső korlátja | Alapértelmezett— |
| Mező`stream` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezettfalse |
| Mező`temperature` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`top_p` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`stop_sequences` | Típus`string[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools` | Típus`tool[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools[].name` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: Eszköz megadva | Alapértelmezett— |
| Mező`tools[].description` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tools[].input_schema` | Típus`JSON_schema` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tool_choice` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`thinking.type` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`thinking.budget_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`output_config.effort` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`metadata` | Típus`object` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`cache_control` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |

Bemeneti anyagok kombinációi

**Szöveg** · UTF8 szöveg

`messages[].content vagy type=text blokk`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`material_types` | Szerződéstext |
| Paraméter`required` | Szerződésmodel, messages, max\_tokens |
| Paraméter`optional_controls` | Szerződésnull |
| Paraméter`content_type` | Szerződésapplication/json |
| Paraméter`text_file_material` | Szerződésa tényleges UTF-8 tartalom szövegként beillesztve; a fájlazonosítók/URLs külön, pontos támogatást igényelnek |

Életciklus: `exact retained published method`

A metódusok szerkezete és azonosítói pontosak; a beszállítói képesség különbözik a kérelmek befogadásától.

### Díjcsomagok

#### Ailoot-metódusok díjai

Bemenet

0,0014 USD */ 1K*

Kimenet

0,0044 USD */ 1K*

Gyorsítótár olvasása

≈0,00026 USD */ 1K*

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 foglalás és az elszámolás működése →](https://ailoot.ai/docs/hu/billing/reserve/)

#### A referencia-díjszabás részletei

A modellszintű referenciatáblázatok nem módosítják a metódusválasztást, az árajánlatokat vagy a díjakat. A tényleges díjak a kiválasztott Ailoot-metódus díjtételeit használják.

Modell referenciatáblázatai

#### Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

| Beállítás | Díjtáblázat | Kontextustokenek, több mint | Kontextustokenek, legfeljebb | Díj |
| --- | --- | --- | --- | --- |
| BeállításOpenAI Chat · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításOpenAI Chat · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |

### Példakérések

#### Ailoot · Anthropic Messages

Szöveges példaPython SDKNode.js SDKPython-adatfolyam

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "glm", "max_tokens": 1024, "messages": []}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["messages"]=[{"role":"user","content":"Summarize this material and quote supporting source passages.\n\n"+text}]
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
```

```python
import anthropic
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = anthropic.Anthropic(base_url="https://api.ailoot.ai", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
msg = client.messages.create(
    model="glm",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}],
)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(msg.to_dict(mode="json"))
```

```js
import Anthropic from "@anthropic-ai/sdk";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new Anthropic({ baseURL: "https://api.ailoot.ai", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const msg = await client.messages.create({
  model: "glm",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Explain the difference between an observation and a hypothesis in three sentences." }],
});
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(msg);
```

```python
import anthropic,os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=anthropic.Anthropic(base_url="https://api.ailoot.ai",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.messages.stream(model='glm',max_tokens=1024,messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_message()
    save_result(final.to_dict(mode="json"),"stream-result")
```

### Eredmények fogadása és mentése

#### Ailoot · Anthropic Messages

json vagy SSE

##### Őrizzen meg minden elkészült eredményt

Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.

Ő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.

##### Ha az eredeti választ ellenőrizni kell

Ő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.

Válaszmezők

| Mező | Típus |
| --- | --- |
| Mező`id` | Típusstring |
| Mező`model` | Típusstring |
| Mező`content[]` | Típustext\|thinking\|tool\_use\|other content block |
| Mező`stop_reason` | Típusstring\|null |
| Mező`usage` | Típusobject |

Hibák és következő lépések

| Válasz | Feltétel | Következő lépés |
| --- | --- | --- |
| Válasz400 · `invalid_request_error` | FeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték | Következő lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt. |

### Álnevek

#### Modell álnevei

<strong>Ailoot</strong> [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=messages), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=messages), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=messages), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=messages), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=messages), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=messages)
**Ailoot Ultra** [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=messages), [`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=messages), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=messages)

#### Metódusútvonalak álnevei

`/chat/completions`

#### Kapcsolódó modellazonosítók

[`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=messages), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=messages), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=messages), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=messages), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=messages), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=messages), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=messages), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=messages), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=messages)

**Ailoot · OpenAI Responses** `POST /v1/responses` `glm`

[`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=responses)

Z.ai /`glm`

Modell ID-ja

- `glm-5.3`
- `glm`
- `glm-5`
- `glm-5.1`
- `glm-5.2`
- `glm-latest`

### Kezdő lépések

A Z.ai GLM 5.3 szöveges következtető modell összetett szoftverfejlesztéshez, terminálmunkához és hosszú távú ügynökfeladatokhoz. A gyártó által dokumentált 1M tokenes kontextust, legfeljebb 128K kimeneti tokent, függvényhívást és low/high/max következtetési ráfordítást támogat, folyamatosan bekapcsolt következtetéssel.

Elfogadott bemenetek

Szöveg

Eredmények

Szöveg

### Elérhető az Ailootban · bemenetek és metódusok

**Ailoot · OpenAI Responses** `POST /v1/responses`

Bemenet

`text`

Kimenet

`text`

Kontextus

1 000 000 tokens

Maximális kimenet

131 072 tokens

Kimeneti formátum

json vagy SSE

| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
| --- | --- | --- | --- | --- |
| Mező`model` | Típus`string` | KövetelményKötelező | Értékek és korlátok glm | Alapértelmezett— |
| Mező`input` | Típus`string\|input_item[]` | KövetelményKötelező | Értékek és korlátok | Alapértelmezett— |
| Mező`instructions` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`input[].type` | Típus`string` | KövetelményOpcionális | Értékek és korlátok message, reasoning, function\_call, function\_call\_output | Alapértelmezett— |
| Mező`input[].content` | Típus`string\|content_part[]` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`input[].call_id` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: function\_call\_output; őrizze meg a ténylegesen visszaadott call\_id értéket | Alapértelmezett— |
| Mező`input[].output` | Típus`string\|content_part[]` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: function\_call\_output | Alapértelmezett— |
| Mező`max_output_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Modelltől függ | Alapértelmezett— |
| Mező`stream` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezettfalse |
| Mező`temperature` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`top_p` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools` | Típus`tool[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tool_choice` | Típus`string\|object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`parallel_tool_calls` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning.effort` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning.summary` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`text.format` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`text.verbosity` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`include` | Típus`string[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`store` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`previous_response_id` | Típus`string` | KövetelményOpcionális | Értékek és korlátok ID-követelmény: Csak támogatott folytatásból származó tényleges válaszazonosító Modelltől függ | Alapértelmezett— |
| Mező`service_tier` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`prompt_cache_key` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`prompt_cache_options` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |

Bemeneti anyagok kombinációi

**Szöveg** · UTF8 szöveg

`bemeneti szöveg vagy input_text rész`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`material_types` | Szerződéstext |
| Paraméter`required` | Szerződésmodel, input |
| Paraméter`optional_controls` | Szerződésnull |
| Paraméter`content_type` | Szerződésapplication/json |
| Paraméter`text_file_material` | Szerződésa tényleges UTF-8 tartalom szövegként beillesztve; a fájlazonosítók/URLs külön, pontos támogatást igényelnek |

Életciklus: `exact retained published method`

A metódusok szerkezete és azonosítói pontosak; a beszállítói képesség különbözik a kérelmek befogadásától.

### Díjcsomagok

#### Ailoot-metódusok díjai

Bemenet

0,0014 USD */ 1K*

Kimenet

0,0044 USD */ 1K*

Gyorsítótár olvasása

≈0,00026 USD */ 1K*

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 foglalás és az elszámolás működése →](https://ailoot.ai/docs/hu/billing/reserve/)

#### A referencia-díjszabás részletei

A modellszintű referenciatáblázatok nem módosítják a metódusválasztást, az árajánlatokat vagy a díjakat. A tényleges díjak a kiválasztott Ailoot-metódus díjtételeit használják.

Modell referenciatáblázatai

#### Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

| Beállítás | Díjtáblázat | Kontextustokenek, több mint | Kontextustokenek, legfeljebb | Díj |
| --- | --- | --- | --- | --- |
| BeállításOpenAI Chat · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításOpenAI Chat · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |

### Példakérések

#### Ailoot · OpenAI Responses

Szöveges példaPython SDKNode.js SDKPython-adatfolyam

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "glm", "input": ""}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["input"]="Summarize this material and quote supporting source passages.\n\n"+text
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/responses \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(json.loads(Path("result.json").read_text(encoding="utf-8")))
PY_RESULT
```

```python
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = OpenAI(base_url="https://api.ailoot.ai/v1", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
resp = client.responses.create(model="glm", input="Explain the difference between an observation and a hypothesis in three sentences.")
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(resp.to_dict(mode="json"))
```

```js
import OpenAI from "openai";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new OpenAI({ baseURL: "https://api.ailoot.ai/v1", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const resp = await client.responses.create({ model: "glm", input: "Explain the difference between an observation and a hypothesis in three sentences." });
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(resp);
```

```python
from openai import OpenAI
import os
from pathlib import Path
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
with client.responses.stream(model="glm", input="Explain the difference between an observation and a hypothesis in three sentences.") as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_response()
    save_result(final.to_dict(mode="json"),"stream-result")
```

### Eredmények fogadása és mentése

#### Ailoot · OpenAI Responses

json vagy SSE

##### Őrizzen meg minden elkészült eredményt

Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.

Őrizzen meg minden kimeneti elemet és tartalomrészt, a tényleges függvényhívási call\_id értéket, a titkosított gondolkodási tartalmat és a használati adatokat. Folyamatos átvitelkor őrizze meg az események és elemek összes azonosítóadatát.

##### Ha az eredeti választ ellenőrizni kell

Ő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.

Válaszmezők

| Mező | Típus |
| --- | --- |
| Mező`id` | Típusstring |
| Mező`status` | Típusstring |
| Mező`output[]` | Típusmessage\|reasoning\|function\_call\|other item |
| Mező`output[].content[]` | Típuscontent part |
| Mező`usage` | Típusobject |

Hibák és következő lépések

| Válasz | Feltétel | Következő lépés |
| --- | --- | --- |
| Válasz400 · `invalid_request_error` | FeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték | Következő lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt. |

### Álnevek

#### Modell álnevei

<strong>Ailoot</strong> [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=responses), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=responses), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=responses), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=responses), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=responses), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=responses)
**Ailoot Ultra** [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3), [`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest)

#### Metódusútvonalak álnevei

`/chat/completions`

#### Kapcsolódó modellazonosítók

[`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=responses), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=responses), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=responses), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=responses), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=responses), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=responses), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3)

**Ailoot · OpenAI Chat** `POST /v1/chat/completions` `glm`

[`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=chat)

Z.ai /`glm`

Modell ID-ja

- `glm-5.3`
- `glm`
- `glm-5`
- `glm-5.1`
- `glm-5.2`
- `glm-latest`

### Kezdő lépések

A Z.ai GLM 5.3 szöveges következtető modell összetett szoftverfejlesztéshez, terminálmunkához és hosszú távú ügynökfeladatokhoz. A gyártó által dokumentált 1M tokenes kontextust, legfeljebb 128K kimeneti tokent, függvényhívást és low/high/max következtetési ráfordítást támogat, folyamatosan bekapcsolt következtetéssel.

Elfogadott bemenetek

Szöveg

Eredmények

Szöveg

### Elérhető az Ailootban · bemenetek és metódusok

**Ailoot · OpenAI Chat** `POST /v1/chat/completions`

Bemenet

`text`

Kimenet

`text`

Kontextus

1 000 000 tokens

Maximális kimenet

131 072 tokens

Kimeneti formátum

json vagy SSE

| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
| --- | --- | --- | --- | --- |
| Mező`model` | Típus`string` | KövetelményKötelező | Értékek és korlátok glm | Alapértelmezett— |
| Mező`messages` | Típus`message[]` | KövetelményKötelező | Értékek és korlátok Minimális elemszám: 1 | Alapértelmezett— |
| Mező`messages[].role` | Típus`string` | KövetelményKötelező | Értékek és korlátok Példák: system, user, assistant, tool, function 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. Modelltől függ | Alapértelmezett— |
| Mező`messages[].content` | Típus`string\|content_part[]\|null` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].tool_calls` | Típus`tool_call[]` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].tool_call_id` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: role=tool; használja a ténylegesen visszaadott ID-t | Alapértelmezett— |
| Mező`messages[].name` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].reasoning_content` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: Küldje vissza a ténylegesen visszaadott gondolkodási tartalmat, ha ez a modell használja | Alapértelmezett— |
| Mező`messages[].reasoning_details` | Típus`object\|array` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`max_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Modelltől függ | Alapértelmezett— |
| Mező`max_completion_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Modelltől függ | Alapértelmezett— |
| Mező`stream` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezettfalse |
| Mező`stream_options.include_usage` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`temperature` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`top_p` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`stop` | Típus`string\|string[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools` | Típus`function_tool[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools[].type` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools[].function.name` | Típus`string` | KövetelményKötelező | Értékek és korlátok Akkor alkalmazandó, ha: Függvényeszköz megadva | Alapértelmezett— |
| Mező`tools[].function.description` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tools[].function.parameters` | Típus`JSON_schema` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tool_choice` | Típus`string\|object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`parallel_tool_calls` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`response_format` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning_effort` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`service_tier` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`instructions` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Kompatibilitási mező | Alapértelmezett— |
| Mező`functions` | Típus`function[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`function_call` | Típus`string\|object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`prompt_cache_options` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |

Bemeneti anyagok kombinációi

**Szöveg** · UTF8 szöveg

`messages[].content`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`material_types` | Szerződéstext |
| Paraméter`required` | Szerződésmodel, messages |
| Paraméter`optional_controls` | Szerződésnull |
| Paraméter`content_type` | Szerződésapplication/json |
| Paraméter`text_file_material` | Szerződésa tényleges UTF-8 tartalom szövegként beillesztve; a fájlazonosítók/URLs külön, pontos támogatást igényelnek |

Életciklus: `exact retained published method`

A metódusok szerkezete és azonosítói pontosak; a beszállítói képesség különbözik a kérelmek befogadásától.

### Díjcsomagok

#### Ailoot-metódusok díjai

Bemenet

0,0014 USD */ 1K*

Kimenet

0,0044 USD */ 1K*

Gyorsítótár olvasása

≈0,00026 USD */ 1K*

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 foglalás és az elszámolás működése →](https://ailoot.ai/docs/hu/billing/reserve/)

#### A referencia-díjszabás részletei

A modellszintű referenciatáblázatok nem módosítják a metódusválasztást, az árajánlatokat vagy a díjakat. A tényleges díjak a kiválasztott Ailoot-metódus díjtételeit használják.

Modell referenciatáblázatai

#### Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

| Beállítás | Díjtáblázat | Kontextustokenek, több mint | Kontextustokenek, legfeljebb | Díj |
| --- | --- | --- | --- | --- |
| BeállításOpenAI Chat · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításOpenAI Chat · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |

### Példakérések

#### Ailoot · OpenAI Chat

Szöveges példaPython SDKNode.js SDKPython-adatfolyam

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "glm", "messages": []}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["messages"]=[{"role":"user","content":"Summarize this material and quote supporting source passages.\n\n"+text}]
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
```

```python
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = OpenAI(base_url="https://api.ailoot.ai/v1", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
resp = client.chat.completions.create(
    model="glm",
    messages=[{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}],
)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(resp.to_dict(mode="json"))
```

```js
import OpenAI from "openai";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new OpenAI({ baseURL: "https://api.ailoot.ai/v1", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const resp = await client.chat.completions.create({
  model: "glm",
  messages: [{ role: "user", content: "Explain the difference between an observation and a hypothesis in three sentences." }],
});
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(resp);
```

```python
from openai import OpenAI
import os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.chat.completions.stream(model='glm',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_completion()
    save_result(final.to_dict(mode="json"),"stream-result")
```

### Eredmények fogadása és mentése

#### Ailoot · OpenAI Chat

json vagy SSE

##### Őrizzen meg minden elkészült eredményt

Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.

Ő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.

##### Ha az eredeti választ ellenőrizni kell

Ő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.

Válaszmezők

| Mező | Típus |
| --- | --- |
| Mező`choices[].index` | Típusinteger |
| Mező`choices[].message.content` | Típusstring\|null |
| Mező`choices[].message.tool_calls` | Típustool\_call\[\] |
| Mező`choices[].message.reasoning_content` | Típusstring |
| Mező`choices[].message.reasoning_details` | Típusobject\|array |
| Mező`choices[].finish_reason` | Típusstring\|null |
| Mező`usage` | Típusobject |

Hibák és következő lépések

| Válasz | Feltétel | Következő lépés |
| --- | --- | --- |
| Válasz400 · `invalid_request_error` | FeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték | Következő lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt. |

### Álnevek

#### Modell álnevei

<strong>Ailoot</strong> [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=chat), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=chat), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=chat), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=chat), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=chat), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=chat)
**Ailoot Ultra** [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=chat), [`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=chat), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=chat)

#### Metódusútvonalak álnevei

`/chat/completions`

#### Kapcsolódó modellazonosítók

[`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=chat), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=chat), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=chat), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=chat), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=chat), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=chat), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=chat), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=chat), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=chat)

**Ailoot · Anthropic Messages** `POST /v1/messages` `glm-5`

[`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=messages)

Z.ai /`glm-5`

Modell ID-ja

- `glm-5.3`
- `glm`
- `glm-5`
- `glm-5.1`
- `glm-5.2`
- `glm-latest`

### Kezdő lépések

A Z.ai GLM 5.3 szöveges következtető modell összetett szoftverfejlesztéshez, terminálmunkához és hosszú távú ügynökfeladatokhoz. A gyártó által dokumentált 1M tokenes kontextust, legfeljebb 128K kimeneti tokent, függvényhívást és low/high/max következtetési ráfordítást támogat, folyamatosan bekapcsolt következtetéssel.

Elfogadott bemenetek

Szöveg

Eredmények

Szöveg

### Elérhető az Ailootban · bemenetek és metódusok

**Ailoot · Anthropic Messages** `POST /v1/messages`

Bemenet

`text`

Kimenet

`text`

Kontextus

1 000 000 tokens

Maximális kimenet

131 072 tokens

Kimeneti formátum

json vagy SSE

| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
| --- | --- | --- | --- | --- |
| Mező`model` | Típus`string` | KövetelményKötelező | Értékek és korlátok glm-5 | Alapértelmezett— |
| Mező`messages` | Típus`message[]` | KövetelményKötelező | Értékek és korlátok Minimális elemszám: 1 | Alapértelmezett— |
| Mező`messages[].role` | Típus`string` | KövetelményKötelező | Értékek és korlátok user, assistant | Alapértelmezett— |
| Mező`messages[].content` | Típus`string\|content_block[]` | KövetelményKötelező | Értékek és korlátok | Alapértelmezett— |
| Mező`system` | Típus`string\|content_block[]` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`max_tokens` | Típus`integer` | KövetelményKötelező | Értékek és korlátok Minimum: 1 A korlát erre vonatkozik: a kiválasztott modell/kártya pontos felső korlátja | Alapértelmezett— |
| Mező`stream` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezettfalse |
| Mező`temperature` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`top_p` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`stop_sequences` | Típus`string[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools` | Típus`tool[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools[].name` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: Eszköz megadva | Alapértelmezett— |
| Mező`tools[].description` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tools[].input_schema` | Típus`JSON_schema` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tool_choice` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`thinking.type` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`thinking.budget_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`output_config.effort` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`metadata` | Típus`object` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`cache_control` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |

Bemeneti anyagok kombinációi

**Szöveg** · UTF8 szöveg

`messages[].content vagy type=text blokk`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`material_types` | Szerződéstext |
| Paraméter`required` | Szerződésmodel, messages, max\_tokens |
| Paraméter`optional_controls` | Szerződésnull |
| Paraméter`content_type` | Szerződésapplication/json |
| Paraméter`text_file_material` | Szerződésa tényleges UTF-8 tartalom szövegként beillesztve; a fájlazonosítók/URLs külön, pontos támogatást igényelnek |

Életciklus: `exact retained published method`

A metódusok szerkezete és azonosítói pontosak; a beszállítói képesség különbözik a kérelmek befogadásától.

### Díjcsomagok

#### Ailoot-metódusok díjai

Bemenet

0,0014 USD */ 1K*

Kimenet

0,0044 USD */ 1K*

Gyorsítótár olvasása

≈0,00026 USD */ 1K*

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 foglalás és az elszámolás működése →](https://ailoot.ai/docs/hu/billing/reserve/)

#### A referencia-díjszabás részletei

A modellszintű referenciatáblázatok nem módosítják a metódusválasztást, az árajánlatokat vagy a díjakat. A tényleges díjak a kiválasztott Ailoot-metódus díjtételeit használják.

Modell referenciatáblázatai

#### Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

| Beállítás | Díjtáblázat | Kontextustokenek, több mint | Kontextustokenek, legfeljebb | Díj |
| --- | --- | --- | --- | --- |
| BeállításOpenAI Chat · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításOpenAI Chat · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |

### Példakérések

#### Ailoot · Anthropic Messages

Szöveges példaPython SDKNode.js SDKPython-adatfolyam

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "glm-5", "max_tokens": 1024, "messages": []}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["messages"]=[{"role":"user","content":"Summarize this material and quote supporting source passages.\n\n"+text}]
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
```

```python
import anthropic
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = anthropic.Anthropic(base_url="https://api.ailoot.ai", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
msg = client.messages.create(
    model="glm-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}],
)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(msg.to_dict(mode="json"))
```

```js
import Anthropic from "@anthropic-ai/sdk";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new Anthropic({ baseURL: "https://api.ailoot.ai", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const msg = await client.messages.create({
  model: "glm-5",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Explain the difference between an observation and a hypothesis in three sentences." }],
});
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(msg);
```

```python
import anthropic,os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=anthropic.Anthropic(base_url="https://api.ailoot.ai",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.messages.stream(model='glm-5',max_tokens=1024,messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_message()
    save_result(final.to_dict(mode="json"),"stream-result")
```

### Eredmények fogadása és mentése

#### Ailoot · Anthropic Messages

json vagy SSE

##### Őrizzen meg minden elkészült eredményt

Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.

Ő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.

##### Ha az eredeti választ ellenőrizni kell

Ő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.

Válaszmezők

| Mező | Típus |
| --- | --- |
| Mező`id` | Típusstring |
| Mező`model` | Típusstring |
| Mező`content[]` | Típustext\|thinking\|tool\_use\|other content block |
| Mező`stop_reason` | Típusstring\|null |
| Mező`usage` | Típusobject |

Hibák és következő lépések

| Válasz | Feltétel | Következő lépés |
| --- | --- | --- |
| Válasz400 · `invalid_request_error` | FeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték | Következő lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt. |

### Álnevek

#### Modell álnevei

<strong>Ailoot</strong> [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=messages), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=messages), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=messages), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=messages), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=messages), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=messages)
**Ailoot Ultra** [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=messages), [`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=messages), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=messages)

#### Metódusútvonalak álnevei

`/chat/completions`

#### Kapcsolódó modellazonosítók

[`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=messages), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=messages), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=messages), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=messages), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=messages), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=messages), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=messages), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=messages), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=messages)

**Ailoot · OpenAI Responses** `POST /v1/responses` `glm-5`

[`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=responses)

Z.ai /`glm-5`

Modell ID-ja

- `glm-5.3`
- `glm`
- `glm-5`
- `glm-5.1`
- `glm-5.2`
- `glm-latest`

### Kezdő lépések

A Z.ai GLM 5.3 szöveges következtető modell összetett szoftverfejlesztéshez, terminálmunkához és hosszú távú ügynökfeladatokhoz. A gyártó által dokumentált 1M tokenes kontextust, legfeljebb 128K kimeneti tokent, függvényhívást és low/high/max következtetési ráfordítást támogat, folyamatosan bekapcsolt következtetéssel.

Elfogadott bemenetek

Szöveg

Eredmények

Szöveg

### Elérhető az Ailootban · bemenetek és metódusok

**Ailoot · OpenAI Responses** `POST /v1/responses`

Bemenet

`text`

Kimenet

`text`

Kontextus

1 000 000 tokens

Maximális kimenet

131 072 tokens

Kimeneti formátum

json vagy SSE

| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
| --- | --- | --- | --- | --- |
| Mező`model` | Típus`string` | KövetelményKötelező | Értékek és korlátok glm-5 | Alapértelmezett— |
| Mező`input` | Típus`string\|input_item[]` | KövetelményKötelező | Értékek és korlátok | Alapértelmezett— |
| Mező`instructions` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`input[].type` | Típus`string` | KövetelményOpcionális | Értékek és korlátok message, reasoning, function\_call, function\_call\_output | Alapértelmezett— |
| Mező`input[].content` | Típus`string\|content_part[]` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`input[].call_id` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: function\_call\_output; őrizze meg a ténylegesen visszaadott call\_id értéket | Alapértelmezett— |
| Mező`input[].output` | Típus`string\|content_part[]` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: function\_call\_output | Alapértelmezett— |
| Mező`max_output_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Modelltől függ | Alapértelmezett— |
| Mező`stream` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezettfalse |
| Mező`temperature` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`top_p` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools` | Típus`tool[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tool_choice` | Típus`string\|object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`parallel_tool_calls` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning.effort` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning.summary` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`text.format` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`text.verbosity` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`include` | Típus`string[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`store` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`previous_response_id` | Típus`string` | KövetelményOpcionális | Értékek és korlátok ID-követelmény: Csak támogatott folytatásból származó tényleges válaszazonosító Modelltől függ | Alapértelmezett— |
| Mező`service_tier` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`prompt_cache_key` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`prompt_cache_options` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |

Bemeneti anyagok kombinációi

**Szöveg** · UTF8 szöveg

`bemeneti szöveg vagy input_text rész`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`material_types` | Szerződéstext |
| Paraméter`required` | Szerződésmodel, input |
| Paraméter`optional_controls` | Szerződésnull |
| Paraméter`content_type` | Szerződésapplication/json |
| Paraméter`text_file_material` | Szerződésa tényleges UTF-8 tartalom szövegként beillesztve; a fájlazonosítók/URLs külön, pontos támogatást igényelnek |

Életciklus: `exact retained published method`

A metódusok szerkezete és azonosítói pontosak; a beszállítói képesség különbözik a kérelmek befogadásától.

### Díjcsomagok

#### Ailoot-metódusok díjai

Bemenet

0,0014 USD */ 1K*

Kimenet

0,0044 USD */ 1K*

Gyorsítótár olvasása

≈0,00026 USD */ 1K*

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 foglalás és az elszámolás működése →](https://ailoot.ai/docs/hu/billing/reserve/)

#### A referencia-díjszabás részletei

A modellszintű referenciatáblázatok nem módosítják a metódusválasztást, az árajánlatokat vagy a díjakat. A tényleges díjak a kiválasztott Ailoot-metódus díjtételeit használják.

Modell referenciatáblázatai

#### Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

| Beállítás | Díjtáblázat | Kontextustokenek, több mint | Kontextustokenek, legfeljebb | Díj |
| --- | --- | --- | --- | --- |
| BeállításOpenAI Chat · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításOpenAI Chat · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |

### Példakérések

#### Ailoot · OpenAI Responses

Szöveges példaPython SDKNode.js SDKPython-adatfolyam

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "glm-5", "input": ""}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["input"]="Summarize this material and quote supporting source passages.\n\n"+text
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/responses \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(json.loads(Path("result.json").read_text(encoding="utf-8")))
PY_RESULT
```

```python
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = OpenAI(base_url="https://api.ailoot.ai/v1", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
resp = client.responses.create(model="glm-5", input="Explain the difference between an observation and a hypothesis in three sentences.")
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(resp.to_dict(mode="json"))
```

```js
import OpenAI from "openai";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new OpenAI({ baseURL: "https://api.ailoot.ai/v1", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const resp = await client.responses.create({ model: "glm-5", input: "Explain the difference between an observation and a hypothesis in three sentences." });
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(resp);
```

```python
from openai import OpenAI
import os
from pathlib import Path
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
with client.responses.stream(model="glm-5", input="Explain the difference between an observation and a hypothesis in three sentences.") as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_response()
    save_result(final.to_dict(mode="json"),"stream-result")
```

### Eredmények fogadása és mentése

#### Ailoot · OpenAI Responses

json vagy SSE

##### Őrizzen meg minden elkészült eredményt

Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.

Őrizzen meg minden kimeneti elemet és tartalomrészt, a tényleges függvényhívási call\_id értéket, a titkosított gondolkodási tartalmat és a használati adatokat. Folyamatos átvitelkor őrizze meg az események és elemek összes azonosítóadatát.

##### Ha az eredeti választ ellenőrizni kell

Ő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.

Válaszmezők

| Mező | Típus |
| --- | --- |
| Mező`id` | Típusstring |
| Mező`status` | Típusstring |
| Mező`output[]` | Típusmessage\|reasoning\|function\_call\|other item |
| Mező`output[].content[]` | Típuscontent part |
| Mező`usage` | Típusobject |

Hibák és következő lépések

| Válasz | Feltétel | Következő lépés |
| --- | --- | --- |
| Válasz400 · `invalid_request_error` | FeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték | Következő lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt. |

### Álnevek

#### Modell álnevei

<strong>Ailoot</strong> [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=responses), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=responses), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=responses), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=responses), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=responses), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=responses)
**Ailoot Ultra** [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3), [`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest)

#### Metódusútvonalak álnevei

`/chat/completions`

#### Kapcsolódó modellazonosítók

[`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=responses), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=responses), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=responses), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=responses), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=responses), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=responses), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3)

**Ailoot · OpenAI Chat** `POST /v1/chat/completions` `glm-5`

[`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=chat)

Z.ai /`glm-5`

Modell ID-ja

- `glm-5.3`
- `glm`
- `glm-5`
- `glm-5.1`
- `glm-5.2`
- `glm-latest`

### Kezdő lépések

A Z.ai GLM 5.3 szöveges következtető modell összetett szoftverfejlesztéshez, terminálmunkához és hosszú távú ügynökfeladatokhoz. A gyártó által dokumentált 1M tokenes kontextust, legfeljebb 128K kimeneti tokent, függvényhívást és low/high/max következtetési ráfordítást támogat, folyamatosan bekapcsolt következtetéssel.

Elfogadott bemenetek

Szöveg

Eredmények

Szöveg

### Elérhető az Ailootban · bemenetek és metódusok

**Ailoot · OpenAI Chat** `POST /v1/chat/completions`

Bemenet

`text`

Kimenet

`text`

Kontextus

1 000 000 tokens

Maximális kimenet

131 072 tokens

Kimeneti formátum

json vagy SSE

| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
| --- | --- | --- | --- | --- |
| Mező`model` | Típus`string` | KövetelményKötelező | Értékek és korlátok glm-5 | Alapértelmezett— |
| Mező`messages` | Típus`message[]` | KövetelményKötelező | Értékek és korlátok Minimális elemszám: 1 | Alapértelmezett— |
| Mező`messages[].role` | Típus`string` | KövetelményKötelező | Értékek és korlátok Példák: system, user, assistant, tool, function 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. Modelltől függ | Alapértelmezett— |
| Mező`messages[].content` | Típus`string\|content_part[]\|null` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].tool_calls` | Típus`tool_call[]` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].tool_call_id` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: role=tool; használja a ténylegesen visszaadott ID-t | Alapértelmezett— |
| Mező`messages[].name` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].reasoning_content` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: Küldje vissza a ténylegesen visszaadott gondolkodási tartalmat, ha ez a modell használja | Alapértelmezett— |
| Mező`messages[].reasoning_details` | Típus`object\|array` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`max_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Modelltől függ | Alapértelmezett— |
| Mező`max_completion_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Modelltől függ | Alapértelmezett— |
| Mező`stream` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezettfalse |
| Mező`stream_options.include_usage` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`temperature` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`top_p` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`stop` | Típus`string\|string[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools` | Típus`function_tool[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools[].type` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools[].function.name` | Típus`string` | KövetelményKötelező | Értékek és korlátok Akkor alkalmazandó, ha: Függvényeszköz megadva | Alapértelmezett— |
| Mező`tools[].function.description` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tools[].function.parameters` | Típus`JSON_schema` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tool_choice` | Típus`string\|object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`parallel_tool_calls` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`response_format` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning_effort` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`service_tier` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`instructions` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Kompatibilitási mező | Alapértelmezett— |
| Mező`functions` | Típus`function[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`function_call` | Típus`string\|object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`prompt_cache_options` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |

Bemeneti anyagok kombinációi

**Szöveg** · UTF8 szöveg

`messages[].content`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`material_types` | Szerződéstext |
| Paraméter`required` | Szerződésmodel, messages |
| Paraméter`optional_controls` | Szerződésnull |
| Paraméter`content_type` | Szerződésapplication/json |
| Paraméter`text_file_material` | Szerződésa tényleges UTF-8 tartalom szövegként beillesztve; a fájlazonosítók/URLs külön, pontos támogatást igényelnek |

Életciklus: `exact retained published method`

A metódusok szerkezete és azonosítói pontosak; a beszállítói képesség különbözik a kérelmek befogadásától.

### Díjcsomagok

#### Ailoot-metódusok díjai

Bemenet

0,0014 USD */ 1K*

Kimenet

0,0044 USD */ 1K*

Gyorsítótár olvasása

≈0,00026 USD */ 1K*

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 foglalás és az elszámolás működése →](https://ailoot.ai/docs/hu/billing/reserve/)

#### A referencia-díjszabás részletei

A modellszintű referenciatáblázatok nem módosítják a metódusválasztást, az árajánlatokat vagy a díjakat. A tényleges díjak a kiválasztott Ailoot-metódus díjtételeit használják.

Modell referenciatáblázatai

#### Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

| Beállítás | Díjtáblázat | Kontextustokenek, több mint | Kontextustokenek, legfeljebb | Díj |
| --- | --- | --- | --- | --- |
| BeállításOpenAI Chat · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításOpenAI Chat · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |

### Példakérések

#### Ailoot · OpenAI Chat

Szöveges példaPython SDKNode.js SDKPython-adatfolyam

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "glm-5", "messages": []}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["messages"]=[{"role":"user","content":"Summarize this material and quote supporting source passages.\n\n"+text}]
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
```

```python
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = OpenAI(base_url="https://api.ailoot.ai/v1", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
resp = client.chat.completions.create(
    model="glm-5",
    messages=[{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}],
)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(resp.to_dict(mode="json"))
```

```js
import OpenAI from "openai";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new OpenAI({ baseURL: "https://api.ailoot.ai/v1", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const resp = await client.chat.completions.create({
  model: "glm-5",
  messages: [{ role: "user", content: "Explain the difference between an observation and a hypothesis in three sentences." }],
});
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(resp);
```

```python
from openai import OpenAI
import os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.chat.completions.stream(model='glm-5',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_completion()
    save_result(final.to_dict(mode="json"),"stream-result")
```

### Eredmények fogadása és mentése

#### Ailoot · OpenAI Chat

json vagy SSE

##### Őrizzen meg minden elkészült eredményt

Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.

Ő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.

##### Ha az eredeti választ ellenőrizni kell

Ő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.

Válaszmezők

| Mező | Típus |
| --- | --- |
| Mező`choices[].index` | Típusinteger |
| Mező`choices[].message.content` | Típusstring\|null |
| Mező`choices[].message.tool_calls` | Típustool\_call\[\] |
| Mező`choices[].message.reasoning_content` | Típusstring |
| Mező`choices[].message.reasoning_details` | Típusobject\|array |
| Mező`choices[].finish_reason` | Típusstring\|null |
| Mező`usage` | Típusobject |

Hibák és következő lépések

| Válasz | Feltétel | Következő lépés |
| --- | --- | --- |
| Válasz400 · `invalid_request_error` | FeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték | Következő lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt. |

### Álnevek

#### Modell álnevei

<strong>Ailoot</strong> [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=chat), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=chat), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=chat), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=chat), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=chat), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=chat)
**Ailoot Ultra** [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=chat), [`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=chat), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=chat)

#### Metódusútvonalak álnevei

`/chat/completions`

#### Kapcsolódó modellazonosítók

[`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=chat), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=chat), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=chat), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=chat), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=chat), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=chat), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=chat), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=chat), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=chat)

**Ailoot · Anthropic Messages** `POST /v1/messages` `glm-5.1`

[`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=messages)

Z.ai /`glm-5.1`

Modell ID-ja

- `glm-5.3`
- `glm`
- `glm-5`
- `glm-5.1`
- `glm-5.2`
- `glm-latest`

### Kezdő lépések

A Z.ai GLM 5.3 szöveges következtető modell összetett szoftverfejlesztéshez, terminálmunkához és hosszú távú ügynökfeladatokhoz. A gyártó által dokumentált 1M tokenes kontextust, legfeljebb 128K kimeneti tokent, függvényhívást és low/high/max következtetési ráfordítást támogat, folyamatosan bekapcsolt következtetéssel.

Elfogadott bemenetek

Szöveg

Eredmények

Szöveg

### Elérhető az Ailootban · bemenetek és metódusok

**Ailoot · Anthropic Messages** `POST /v1/messages`

Bemenet

`text`

Kimenet

`text`

Kontextus

1 000 000 tokens

Maximális kimenet

131 072 tokens

Kimeneti formátum

json vagy SSE

| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
| --- | --- | --- | --- | --- |
| Mező`model` | Típus`string` | KövetelményKötelező | Értékek és korlátok glm-5.1 | Alapértelmezett— |
| Mező`messages` | Típus`message[]` | KövetelményKötelező | Értékek és korlátok Minimális elemszám: 1 | Alapértelmezett— |
| Mező`messages[].role` | Típus`string` | KövetelményKötelező | Értékek és korlátok user, assistant | Alapértelmezett— |
| Mező`messages[].content` | Típus`string\|content_block[]` | KövetelményKötelező | Értékek és korlátok | Alapértelmezett— |
| Mező`system` | Típus`string\|content_block[]` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`max_tokens` | Típus`integer` | KövetelményKötelező | Értékek és korlátok Minimum: 1 A korlát erre vonatkozik: a kiválasztott modell/kártya pontos felső korlátja | Alapértelmezett— |
| Mező`stream` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezettfalse |
| Mező`temperature` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`top_p` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`stop_sequences` | Típus`string[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools` | Típus`tool[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools[].name` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: Eszköz megadva | Alapértelmezett— |
| Mező`tools[].description` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tools[].input_schema` | Típus`JSON_schema` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tool_choice` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`thinking.type` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`thinking.budget_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`output_config.effort` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`metadata` | Típus`object` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`cache_control` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |

Bemeneti anyagok kombinációi

**Szöveg** · UTF8 szöveg

`messages[].content vagy type=text blokk`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`material_types` | Szerződéstext |
| Paraméter`required` | Szerződésmodel, messages, max\_tokens |
| Paraméter`optional_controls` | Szerződésnull |
| Paraméter`content_type` | Szerződésapplication/json |
| Paraméter`text_file_material` | Szerződésa tényleges UTF-8 tartalom szövegként beillesztve; a fájlazonosítók/URLs külön, pontos támogatást igényelnek |

Életciklus: `exact retained published method`

A metódusok szerkezete és azonosítói pontosak; a beszállítói képesség különbözik a kérelmek befogadásától.

### Díjcsomagok

#### Ailoot-metódusok díjai

Bemenet

0,0014 USD */ 1K*

Kimenet

0,0044 USD */ 1K*

Gyorsítótár olvasása

≈0,00026 USD */ 1K*

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 foglalás és az elszámolás működése →](https://ailoot.ai/docs/hu/billing/reserve/)

#### A referencia-díjszabás részletei

A modellszintű referenciatáblázatok nem módosítják a metódusválasztást, az árajánlatokat vagy a díjakat. A tényleges díjak a kiválasztott Ailoot-metódus díjtételeit használják.

Modell referenciatáblázatai

#### Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

| Beállítás | Díjtáblázat | Kontextustokenek, több mint | Kontextustokenek, legfeljebb | Díj |
| --- | --- | --- | --- | --- |
| BeállításOpenAI Chat · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításOpenAI Chat · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |

### Példakérések

#### Ailoot · Anthropic Messages

Szöveges példaPython SDKNode.js SDKPython-adatfolyam

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "glm-5.1", "max_tokens": 1024, "messages": []}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["messages"]=[{"role":"user","content":"Summarize this material and quote supporting source passages.\n\n"+text}]
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
```

```python
import anthropic
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = anthropic.Anthropic(base_url="https://api.ailoot.ai", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
msg = client.messages.create(
    model="glm-5.1",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}],
)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(msg.to_dict(mode="json"))
```

```js
import Anthropic from "@anthropic-ai/sdk";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new Anthropic({ baseURL: "https://api.ailoot.ai", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const msg = await client.messages.create({
  model: "glm-5.1",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Explain the difference between an observation and a hypothesis in three sentences." }],
});
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(msg);
```

```python
import anthropic,os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=anthropic.Anthropic(base_url="https://api.ailoot.ai",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.messages.stream(model='glm-5.1',max_tokens=1024,messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_message()
    save_result(final.to_dict(mode="json"),"stream-result")
```

### Eredmények fogadása és mentése

#### Ailoot · Anthropic Messages

json vagy SSE

##### Őrizzen meg minden elkészült eredményt

Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.

Ő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.

##### Ha az eredeti választ ellenőrizni kell

Ő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.

Válaszmezők

| Mező | Típus |
| --- | --- |
| Mező`id` | Típusstring |
| Mező`model` | Típusstring |
| Mező`content[]` | Típustext\|thinking\|tool\_use\|other content block |
| Mező`stop_reason` | Típusstring\|null |
| Mező`usage` | Típusobject |

Hibák és következő lépések

| Válasz | Feltétel | Következő lépés |
| --- | --- | --- |
| Válasz400 · `invalid_request_error` | FeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték | Következő lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt. |

### Álnevek

#### Modell álnevei

<strong>Ailoot</strong> [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=messages), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=messages), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=messages), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=messages), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=messages), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=messages)
**Ailoot Ultra** [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=messages), [`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=messages), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=messages)

#### Metódusútvonalak álnevei

`/chat/completions`

#### Kapcsolódó modellazonosítók

[`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=messages), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=messages), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=messages), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=messages), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=messages), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=messages), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=messages), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=messages), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=messages)

**Ailoot · OpenAI Responses** `POST /v1/responses` `glm-5.1`

[`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=responses)

Z.ai /`glm-5.1`

Modell ID-ja

- `glm-5.3`
- `glm`
- `glm-5`
- `glm-5.1`
- `glm-5.2`
- `glm-latest`

### Kezdő lépések

A Z.ai GLM 5.3 szöveges következtető modell összetett szoftverfejlesztéshez, terminálmunkához és hosszú távú ügynökfeladatokhoz. A gyártó által dokumentált 1M tokenes kontextust, legfeljebb 128K kimeneti tokent, függvényhívást és low/high/max következtetési ráfordítást támogat, folyamatosan bekapcsolt következtetéssel.

Elfogadott bemenetek

Szöveg

Eredmények

Szöveg

### Elérhető az Ailootban · bemenetek és metódusok

**Ailoot · OpenAI Responses** `POST /v1/responses`

Bemenet

`text`

Kimenet

`text`

Kontextus

1 000 000 tokens

Maximális kimenet

131 072 tokens

Kimeneti formátum

json vagy SSE

| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
| --- | --- | --- | --- | --- |
| Mező`model` | Típus`string` | KövetelményKötelező | Értékek és korlátok glm-5.1 | Alapértelmezett— |
| Mező`input` | Típus`string\|input_item[]` | KövetelményKötelező | Értékek és korlátok | Alapértelmezett— |
| Mező`instructions` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`input[].type` | Típus`string` | KövetelményOpcionális | Értékek és korlátok message, reasoning, function\_call, function\_call\_output | Alapértelmezett— |
| Mező`input[].content` | Típus`string\|content_part[]` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`input[].call_id` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: function\_call\_output; őrizze meg a ténylegesen visszaadott call\_id értéket | Alapértelmezett— |
| Mező`input[].output` | Típus`string\|content_part[]` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: function\_call\_output | Alapértelmezett— |
| Mező`max_output_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Modelltől függ | Alapértelmezett— |
| Mező`stream` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezettfalse |
| Mező`temperature` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`top_p` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools` | Típus`tool[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tool_choice` | Típus`string\|object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`parallel_tool_calls` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning.effort` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning.summary` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`text.format` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`text.verbosity` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`include` | Típus`string[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`store` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`previous_response_id` | Típus`string` | KövetelményOpcionális | Értékek és korlátok ID-követelmény: Csak támogatott folytatásból származó tényleges válaszazonosító Modelltől függ | Alapértelmezett— |
| Mező`service_tier` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`prompt_cache_key` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`prompt_cache_options` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |

Bemeneti anyagok kombinációi

**Szöveg** · UTF8 szöveg

`bemeneti szöveg vagy input_text rész`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`material_types` | Szerződéstext |
| Paraméter`required` | Szerződésmodel, input |
| Paraméter`optional_controls` | Szerződésnull |
| Paraméter`content_type` | Szerződésapplication/json |
| Paraméter`text_file_material` | Szerződésa tényleges UTF-8 tartalom szövegként beillesztve; a fájlazonosítók/URLs külön, pontos támogatást igényelnek |

Életciklus: `exact retained published method`

A metódusok szerkezete és azonosítói pontosak; a beszállítói képesség különbözik a kérelmek befogadásától.

### Díjcsomagok

#### Ailoot-metódusok díjai

Bemenet

0,0014 USD */ 1K*

Kimenet

0,0044 USD */ 1K*

Gyorsítótár olvasása

≈0,00026 USD */ 1K*

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 foglalás és az elszámolás működése →](https://ailoot.ai/docs/hu/billing/reserve/)

#### A referencia-díjszabás részletei

A modellszintű referenciatáblázatok nem módosítják a metódusválasztást, az árajánlatokat vagy a díjakat. A tényleges díjak a kiválasztott Ailoot-metódus díjtételeit használják.

Modell referenciatáblázatai

#### Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

| Beállítás | Díjtáblázat | Kontextustokenek, több mint | Kontextustokenek, legfeljebb | Díj |
| --- | --- | --- | --- | --- |
| BeállításOpenAI Chat · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításOpenAI Chat · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |

### Példakérések

#### Ailoot · OpenAI Responses

Szöveges példaPython SDKNode.js SDKPython-adatfolyam

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "glm-5.1", "input": ""}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["input"]="Summarize this material and quote supporting source passages.\n\n"+text
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/responses \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(json.loads(Path("result.json").read_text(encoding="utf-8")))
PY_RESULT
```

```python
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = OpenAI(base_url="https://api.ailoot.ai/v1", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
resp = client.responses.create(model="glm-5.1", input="Explain the difference between an observation and a hypothesis in three sentences.")
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(resp.to_dict(mode="json"))
```

```js
import OpenAI from "openai";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new OpenAI({ baseURL: "https://api.ailoot.ai/v1", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const resp = await client.responses.create({ model: "glm-5.1", input: "Explain the difference between an observation and a hypothesis in three sentences." });
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(resp);
```

```python
from openai import OpenAI
import os
from pathlib import Path
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
with client.responses.stream(model="glm-5.1", input="Explain the difference between an observation and a hypothesis in three sentences.") as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_response()
    save_result(final.to_dict(mode="json"),"stream-result")
```

### Eredmények fogadása és mentése

#### Ailoot · OpenAI Responses

json vagy SSE

##### Őrizzen meg minden elkészült eredményt

Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.

Őrizzen meg minden kimeneti elemet és tartalomrészt, a tényleges függvényhívási call\_id értéket, a titkosított gondolkodási tartalmat és a használati adatokat. Folyamatos átvitelkor őrizze meg az események és elemek összes azonosítóadatát.

##### Ha az eredeti választ ellenőrizni kell

Ő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.

Válaszmezők

| Mező | Típus |
| --- | --- |
| Mező`id` | Típusstring |
| Mező`status` | Típusstring |
| Mező`output[]` | Típusmessage\|reasoning\|function\_call\|other item |
| Mező`output[].content[]` | Típuscontent part |
| Mező`usage` | Típusobject |

Hibák és következő lépések

| Válasz | Feltétel | Következő lépés |
| --- | --- | --- |
| Válasz400 · `invalid_request_error` | FeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték | Következő lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt. |

### Álnevek

#### Modell álnevei

<strong>Ailoot</strong> [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=responses), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=responses), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=responses), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=responses), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=responses), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=responses)
**Ailoot Ultra** [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3), [`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest)

#### Metódusútvonalak álnevei

`/chat/completions`

#### Kapcsolódó modellazonosítók

[`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=responses), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=responses), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=responses), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=responses), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=responses), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=responses), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3)

**Ailoot · OpenAI Chat** `POST /v1/chat/completions` `glm-5.1`

[`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=chat)

Z.ai /`glm-5.1`

Modell ID-ja

- `glm-5.3`
- `glm`
- `glm-5`
- `glm-5.1`
- `glm-5.2`
- `glm-latest`

### Kezdő lépések

A Z.ai GLM 5.3 szöveges következtető modell összetett szoftverfejlesztéshez, terminálmunkához és hosszú távú ügynökfeladatokhoz. A gyártó által dokumentált 1M tokenes kontextust, legfeljebb 128K kimeneti tokent, függvényhívást és low/high/max következtetési ráfordítást támogat, folyamatosan bekapcsolt következtetéssel.

Elfogadott bemenetek

Szöveg

Eredmények

Szöveg

### Elérhető az Ailootban · bemenetek és metódusok

**Ailoot · OpenAI Chat** `POST /v1/chat/completions`

Bemenet

`text`

Kimenet

`text`

Kontextus

1 000 000 tokens

Maximális kimenet

131 072 tokens

Kimeneti formátum

json vagy SSE

| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
| --- | --- | --- | --- | --- |
| Mező`model` | Típus`string` | KövetelményKötelező | Értékek és korlátok glm-5.1 | Alapértelmezett— |
| Mező`messages` | Típus`message[]` | KövetelményKötelező | Értékek és korlátok Minimális elemszám: 1 | Alapértelmezett— |
| Mező`messages[].role` | Típus`string` | KövetelményKötelező | Értékek és korlátok Példák: system, user, assistant, tool, function 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. Modelltől függ | Alapértelmezett— |
| Mező`messages[].content` | Típus`string\|content_part[]\|null` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].tool_calls` | Típus`tool_call[]` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].tool_call_id` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: role=tool; használja a ténylegesen visszaadott ID-t | Alapértelmezett— |
| Mező`messages[].name` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].reasoning_content` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: Küldje vissza a ténylegesen visszaadott gondolkodási tartalmat, ha ez a modell használja | Alapértelmezett— |
| Mező`messages[].reasoning_details` | Típus`object\|array` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`max_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Modelltől függ | Alapértelmezett— |
| Mező`max_completion_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Modelltől függ | Alapértelmezett— |
| Mező`stream` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezettfalse |
| Mező`stream_options.include_usage` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`temperature` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`top_p` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`stop` | Típus`string\|string[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools` | Típus`function_tool[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools[].type` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools[].function.name` | Típus`string` | KövetelményKötelező | Értékek és korlátok Akkor alkalmazandó, ha: Függvényeszköz megadva | Alapértelmezett— |
| Mező`tools[].function.description` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tools[].function.parameters` | Típus`JSON_schema` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tool_choice` | Típus`string\|object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`parallel_tool_calls` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`response_format` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning_effort` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`service_tier` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`instructions` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Kompatibilitási mező | Alapértelmezett— |
| Mező`functions` | Típus`function[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`function_call` | Típus`string\|object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`prompt_cache_options` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |

Bemeneti anyagok kombinációi

**Szöveg** · UTF8 szöveg

`messages[].content`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`material_types` | Szerződéstext |
| Paraméter`required` | Szerződésmodel, messages |
| Paraméter`optional_controls` | Szerződésnull |
| Paraméter`content_type` | Szerződésapplication/json |
| Paraméter`text_file_material` | Szerződésa tényleges UTF-8 tartalom szövegként beillesztve; a fájlazonosítók/URLs külön, pontos támogatást igényelnek |

Életciklus: `exact retained published method`

A metódusok szerkezete és azonosítói pontosak; a beszállítói képesség különbözik a kérelmek befogadásától.

### Díjcsomagok

#### Ailoot-metódusok díjai

Bemenet

0,0014 USD */ 1K*

Kimenet

0,0044 USD */ 1K*

Gyorsítótár olvasása

≈0,00026 USD */ 1K*

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 foglalás és az elszámolás működése →](https://ailoot.ai/docs/hu/billing/reserve/)

#### A referencia-díjszabás részletei

A modellszintű referenciatáblázatok nem módosítják a metódusválasztást, az árajánlatokat vagy a díjakat. A tényleges díjak a kiválasztott Ailoot-metódus díjtételeit használják.

Modell referenciatáblázatai

#### Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

| Beállítás | Díjtáblázat | Kontextustokenek, több mint | Kontextustokenek, legfeljebb | Díj |
| --- | --- | --- | --- | --- |
| BeállításOpenAI Chat · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításOpenAI Chat · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |

### Példakérések

#### Ailoot · OpenAI Chat

Szöveges példaPython SDKNode.js SDKPython-adatfolyam

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "glm-5.1", "messages": []}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["messages"]=[{"role":"user","content":"Summarize this material and quote supporting source passages.\n\n"+text}]
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
```

```python
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = OpenAI(base_url="https://api.ailoot.ai/v1", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
resp = client.chat.completions.create(
    model="glm-5.1",
    messages=[{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}],
)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(resp.to_dict(mode="json"))
```

```js
import OpenAI from "openai";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new OpenAI({ baseURL: "https://api.ailoot.ai/v1", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const resp = await client.chat.completions.create({
  model: "glm-5.1",
  messages: [{ role: "user", content: "Explain the difference between an observation and a hypothesis in three sentences." }],
});
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(resp);
```

```python
from openai import OpenAI
import os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.chat.completions.stream(model='glm-5.1',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_completion()
    save_result(final.to_dict(mode="json"),"stream-result")
```

### Eredmények fogadása és mentése

#### Ailoot · OpenAI Chat

json vagy SSE

##### Őrizzen meg minden elkészült eredményt

Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.

Ő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.

##### Ha az eredeti választ ellenőrizni kell

Ő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.

Válaszmezők

| Mező | Típus |
| --- | --- |
| Mező`choices[].index` | Típusinteger |
| Mező`choices[].message.content` | Típusstring\|null |
| Mező`choices[].message.tool_calls` | Típustool\_call\[\] |
| Mező`choices[].message.reasoning_content` | Típusstring |
| Mező`choices[].message.reasoning_details` | Típusobject\|array |
| Mező`choices[].finish_reason` | Típusstring\|null |
| Mező`usage` | Típusobject |

Hibák és következő lépések

| Válasz | Feltétel | Következő lépés |
| --- | --- | --- |
| Válasz400 · `invalid_request_error` | FeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték | Következő lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt. |

### Álnevek

#### Modell álnevei

<strong>Ailoot</strong> [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=chat), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=chat), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=chat), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=chat), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=chat), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=chat)
**Ailoot Ultra** [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=chat), [`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=chat), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=chat)

#### Metódusútvonalak álnevei

`/chat/completions`

#### Kapcsolódó modellazonosítók

[`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=chat), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=chat), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=chat), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=chat), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=chat), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=chat), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=chat), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=chat), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=chat)

**Ailoot · Anthropic Messages** `POST /v1/messages` `glm-5.2`

[`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=messages)

Z.ai /`glm-5.2`

Modell ID-ja

- `glm-5.3`
- `glm`
- `glm-5`
- `glm-5.1`
- `glm-5.2`
- `glm-latest`

### Kezdő lépések

A Z.ai GLM 5.3 szöveges következtető modell összetett szoftverfejlesztéshez, terminálmunkához és hosszú távú ügynökfeladatokhoz. A gyártó által dokumentált 1M tokenes kontextust, legfeljebb 128K kimeneti tokent, függvényhívást és low/high/max következtetési ráfordítást támogat, folyamatosan bekapcsolt következtetéssel.

Elfogadott bemenetek

Szöveg

Eredmények

Szöveg

### Elérhető az Ailootban · bemenetek és metódusok

**Ailoot · Anthropic Messages** `POST /v1/messages`

Bemenet

`text`

Kimenet

`text`

Kontextus

1 000 000 tokens

Maximális kimenet

131 072 tokens

Kimeneti formátum

json vagy SSE

| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
| --- | --- | --- | --- | --- |
| Mező`model` | Típus`string` | KövetelményKötelező | Értékek és korlátok glm-5.2 | Alapértelmezett— |
| Mező`messages` | Típus`message[]` | KövetelményKötelező | Értékek és korlátok Minimális elemszám: 1 | Alapértelmezett— |
| Mező`messages[].role` | Típus`string` | KövetelményKötelező | Értékek és korlátok user, assistant | Alapértelmezett— |
| Mező`messages[].content` | Típus`string\|content_block[]` | KövetelményKötelező | Értékek és korlátok | Alapértelmezett— |
| Mező`system` | Típus`string\|content_block[]` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`max_tokens` | Típus`integer` | KövetelményKötelező | Értékek és korlátok Minimum: 1 A korlát erre vonatkozik: a kiválasztott modell/kártya pontos felső korlátja | Alapértelmezett— |
| Mező`stream` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezettfalse |
| Mező`temperature` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`top_p` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`stop_sequences` | Típus`string[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools` | Típus`tool[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools[].name` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: Eszköz megadva | Alapértelmezett— |
| Mező`tools[].description` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tools[].input_schema` | Típus`JSON_schema` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tool_choice` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`thinking.type` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`thinking.budget_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`output_config.effort` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`metadata` | Típus`object` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`cache_control` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |

Bemeneti anyagok kombinációi

**Szöveg** · UTF8 szöveg

`messages[].content vagy type=text blokk`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`material_types` | Szerződéstext |
| Paraméter`required` | Szerződésmodel, messages, max\_tokens |
| Paraméter`optional_controls` | Szerződésnull |
| Paraméter`content_type` | Szerződésapplication/json |
| Paraméter`text_file_material` | Szerződésa tényleges UTF-8 tartalom szövegként beillesztve; a fájlazonosítók/URLs külön, pontos támogatást igényelnek |

Életciklus: `exact retained published method`

A metódusok szerkezete és azonosítói pontosak; a beszállítói képesség különbözik a kérelmek befogadásától.

### Díjcsomagok

#### Ailoot-metódusok díjai

Bemenet

0,0014 USD */ 1K*

Kimenet

0,0044 USD */ 1K*

Gyorsítótár olvasása

≈0,00026 USD */ 1K*

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 foglalás és az elszámolás működése →](https://ailoot.ai/docs/hu/billing/reserve/)

#### A referencia-díjszabás részletei

A modellszintű referenciatáblázatok nem módosítják a metódusválasztást, az árajánlatokat vagy a díjakat. A tényleges díjak a kiválasztott Ailoot-metódus díjtételeit használják.

Modell referenciatáblázatai

#### Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

| Beállítás | Díjtáblázat | Kontextustokenek, több mint | Kontextustokenek, legfeljebb | Díj |
| --- | --- | --- | --- | --- |
| BeállításOpenAI Chat · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításOpenAI Chat · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |

### Példakérések

#### Ailoot · Anthropic Messages

Szöveges példaPython SDKNode.js SDKPython-adatfolyam

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "glm-5.2", "max_tokens": 1024, "messages": []}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["messages"]=[{"role":"user","content":"Summarize this material and quote supporting source passages.\n\n"+text}]
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
```

```python
import anthropic
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = anthropic.Anthropic(base_url="https://api.ailoot.ai", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
msg = client.messages.create(
    model="glm-5.2",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}],
)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(msg.to_dict(mode="json"))
```

```js
import Anthropic from "@anthropic-ai/sdk";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new Anthropic({ baseURL: "https://api.ailoot.ai", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const msg = await client.messages.create({
  model: "glm-5.2",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Explain the difference between an observation and a hypothesis in three sentences." }],
});
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(msg);
```

```python
import anthropic,os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=anthropic.Anthropic(base_url="https://api.ailoot.ai",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.messages.stream(model='glm-5.2',max_tokens=1024,messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_message()
    save_result(final.to_dict(mode="json"),"stream-result")
```

### Eredmények fogadása és mentése

#### Ailoot · Anthropic Messages

json vagy SSE

##### Őrizzen meg minden elkészült eredményt

Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.

Ő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.

##### Ha az eredeti választ ellenőrizni kell

Ő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.

Válaszmezők

| Mező | Típus |
| --- | --- |
| Mező`id` | Típusstring |
| Mező`model` | Típusstring |
| Mező`content[]` | Típustext\|thinking\|tool\_use\|other content block |
| Mező`stop_reason` | Típusstring\|null |
| Mező`usage` | Típusobject |

Hibák és következő lépések

| Válasz | Feltétel | Következő lépés |
| --- | --- | --- |
| Válasz400 · `invalid_request_error` | FeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték | Következő lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt. |

### Álnevek

#### Modell álnevei

<strong>Ailoot</strong> [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=messages), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=messages), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=messages), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=messages), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=messages), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=messages)
**Ailoot Ultra** [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=messages), [`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=messages), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=messages)

#### Metódusútvonalak álnevei

`/chat/completions`

#### Kapcsolódó modellazonosítók

[`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=messages), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=messages), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=messages), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=messages), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=messages), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=messages), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=messages), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=messages), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=messages)

**Ailoot · OpenAI Responses** `POST /v1/responses` `glm-5.2`

[`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=responses)

Z.ai /`glm-5.2`

Modell ID-ja

- `glm-5.3`
- `glm`
- `glm-5`
- `glm-5.1`
- `glm-5.2`
- `glm-latest`

### Kezdő lépések

A Z.ai GLM 5.3 szöveges következtető modell összetett szoftverfejlesztéshez, terminálmunkához és hosszú távú ügynökfeladatokhoz. A gyártó által dokumentált 1M tokenes kontextust, legfeljebb 128K kimeneti tokent, függvényhívást és low/high/max következtetési ráfordítást támogat, folyamatosan bekapcsolt következtetéssel.

Elfogadott bemenetek

Szöveg

Eredmények

Szöveg

### Elérhető az Ailootban · bemenetek és metódusok

**Ailoot · OpenAI Responses** `POST /v1/responses`

Bemenet

`text`

Kimenet

`text`

Kontextus

1 000 000 tokens

Maximális kimenet

131 072 tokens

Kimeneti formátum

json vagy SSE

| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
| --- | --- | --- | --- | --- |
| Mező`model` | Típus`string` | KövetelményKötelező | Értékek és korlátok glm-5.2 | Alapértelmezett— |
| Mező`input` | Típus`string\|input_item[]` | KövetelményKötelező | Értékek és korlátok | Alapértelmezett— |
| Mező`instructions` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`input[].type` | Típus`string` | KövetelményOpcionális | Értékek és korlátok message, reasoning, function\_call, function\_call\_output | Alapértelmezett— |
| Mező`input[].content` | Típus`string\|content_part[]` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`input[].call_id` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: function\_call\_output; őrizze meg a ténylegesen visszaadott call\_id értéket | Alapértelmezett— |
| Mező`input[].output` | Típus`string\|content_part[]` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: function\_call\_output | Alapértelmezett— |
| Mező`max_output_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Modelltől függ | Alapértelmezett— |
| Mező`stream` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezettfalse |
| Mező`temperature` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`top_p` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools` | Típus`tool[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tool_choice` | Típus`string\|object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`parallel_tool_calls` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning.effort` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning.summary` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`text.format` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`text.verbosity` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`include` | Típus`string[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`store` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`previous_response_id` | Típus`string` | KövetelményOpcionális | Értékek és korlátok ID-követelmény: Csak támogatott folytatásból származó tényleges válaszazonosító Modelltől függ | Alapértelmezett— |
| Mező`service_tier` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`prompt_cache_key` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`prompt_cache_options` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |

Bemeneti anyagok kombinációi

**Szöveg** · UTF8 szöveg

`bemeneti szöveg vagy input_text rész`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`material_types` | Szerződéstext |
| Paraméter`required` | Szerződésmodel, input |
| Paraméter`optional_controls` | Szerződésnull |
| Paraméter`content_type` | Szerződésapplication/json |
| Paraméter`text_file_material` | Szerződésa tényleges UTF-8 tartalom szövegként beillesztve; a fájlazonosítók/URLs külön, pontos támogatást igényelnek |

Életciklus: `exact retained published method`

A metódusok szerkezete és azonosítói pontosak; a beszállítói képesség különbözik a kérelmek befogadásától.

### Díjcsomagok

#### Ailoot-metódusok díjai

Bemenet

0,0014 USD */ 1K*

Kimenet

0,0044 USD */ 1K*

Gyorsítótár olvasása

≈0,00026 USD */ 1K*

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 foglalás és az elszámolás működése →](https://ailoot.ai/docs/hu/billing/reserve/)

#### A referencia-díjszabás részletei

A modellszintű referenciatáblázatok nem módosítják a metódusválasztást, az árajánlatokat vagy a díjakat. A tényleges díjak a kiválasztott Ailoot-metódus díjtételeit használják.

Modell referenciatáblázatai

#### Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

| Beállítás | Díjtáblázat | Kontextustokenek, több mint | Kontextustokenek, legfeljebb | Díj |
| --- | --- | --- | --- | --- |
| BeállításOpenAI Chat · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításOpenAI Chat · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |

### Példakérések

#### Ailoot · OpenAI Responses

Szöveges példaPython SDKNode.js SDKPython-adatfolyam

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "glm-5.2", "input": ""}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["input"]="Summarize this material and quote supporting source passages.\n\n"+text
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/responses \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(json.loads(Path("result.json").read_text(encoding="utf-8")))
PY_RESULT
```

```python
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = OpenAI(base_url="https://api.ailoot.ai/v1", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
resp = client.responses.create(model="glm-5.2", input="Explain the difference between an observation and a hypothesis in three sentences.")
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(resp.to_dict(mode="json"))
```

```js
import OpenAI from "openai";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new OpenAI({ baseURL: "https://api.ailoot.ai/v1", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const resp = await client.responses.create({ model: "glm-5.2", input: "Explain the difference between an observation and a hypothesis in three sentences." });
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(resp);
```

```python
from openai import OpenAI
import os
from pathlib import Path
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
with client.responses.stream(model="glm-5.2", input="Explain the difference between an observation and a hypothesis in three sentences.") as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_response()
    save_result(final.to_dict(mode="json"),"stream-result")
```

### Eredmények fogadása és mentése

#### Ailoot · OpenAI Responses

json vagy SSE

##### Őrizzen meg minden elkészült eredményt

Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.

Őrizzen meg minden kimeneti elemet és tartalomrészt, a tényleges függvényhívási call\_id értéket, a titkosított gondolkodási tartalmat és a használati adatokat. Folyamatos átvitelkor őrizze meg az események és elemek összes azonosítóadatát.

##### Ha az eredeti választ ellenőrizni kell

Ő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.

Válaszmezők

| Mező | Típus |
| --- | --- |
| Mező`id` | Típusstring |
| Mező`status` | Típusstring |
| Mező`output[]` | Típusmessage\|reasoning\|function\_call\|other item |
| Mező`output[].content[]` | Típuscontent part |
| Mező`usage` | Típusobject |

Hibák és következő lépések

| Válasz | Feltétel | Következő lépés |
| --- | --- | --- |
| Válasz400 · `invalid_request_error` | FeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték | Következő lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt. |

### Álnevek

#### Modell álnevei

<strong>Ailoot</strong> [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=responses), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=responses), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=responses), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=responses), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=responses), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=responses)
**Ailoot Ultra** [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3), [`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest)

#### Metódusútvonalak álnevei

`/chat/completions`

#### Kapcsolódó modellazonosítók

[`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=responses), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=responses), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=responses), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=responses), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=responses), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=responses), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3)

**Ailoot · OpenAI Chat** `POST /v1/chat/completions` `glm-5.2`

[`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=chat)

Z.ai /`glm-5.2`

Modell ID-ja

- `glm-5.3`
- `glm`
- `glm-5`
- `glm-5.1`
- `glm-5.2`
- `glm-latest`

### Kezdő lépések

A Z.ai GLM 5.3 szöveges következtető modell összetett szoftverfejlesztéshez, terminálmunkához és hosszú távú ügynökfeladatokhoz. A gyártó által dokumentált 1M tokenes kontextust, legfeljebb 128K kimeneti tokent, függvényhívást és low/high/max következtetési ráfordítást támogat, folyamatosan bekapcsolt következtetéssel.

Elfogadott bemenetek

Szöveg

Eredmények

Szöveg

### Elérhető az Ailootban · bemenetek és metódusok

**Ailoot · OpenAI Chat** `POST /v1/chat/completions`

Bemenet

`text`

Kimenet

`text`

Kontextus

1 000 000 tokens

Maximális kimenet

131 072 tokens

Kimeneti formátum

json vagy SSE

| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
| --- | --- | --- | --- | --- |
| Mező`model` | Típus`string` | KövetelményKötelező | Értékek és korlátok glm-5.2 | Alapértelmezett— |
| Mező`messages` | Típus`message[]` | KövetelményKötelező | Értékek és korlátok Minimális elemszám: 1 | Alapértelmezett— |
| Mező`messages[].role` | Típus`string` | KövetelményKötelező | Értékek és korlátok Példák: system, user, assistant, tool, function 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. Modelltől függ | Alapértelmezett— |
| Mező`messages[].content` | Típus`string\|content_part[]\|null` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].tool_calls` | Típus`tool_call[]` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].tool_call_id` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: role=tool; használja a ténylegesen visszaadott ID-t | Alapértelmezett— |
| Mező`messages[].name` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].reasoning_content` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: Küldje vissza a ténylegesen visszaadott gondolkodási tartalmat, ha ez a modell használja | Alapértelmezett— |
| Mező`messages[].reasoning_details` | Típus`object\|array` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`max_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Modelltől függ | Alapértelmezett— |
| Mező`max_completion_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Modelltől függ | Alapértelmezett— |
| Mező`stream` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezettfalse |
| Mező`stream_options.include_usage` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`temperature` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`top_p` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`stop` | Típus`string\|string[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools` | Típus`function_tool[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools[].type` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools[].function.name` | Típus`string` | KövetelményKötelező | Értékek és korlátok Akkor alkalmazandó, ha: Függvényeszköz megadva | Alapértelmezett— |
| Mező`tools[].function.description` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tools[].function.parameters` | Típus`JSON_schema` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tool_choice` | Típus`string\|object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`parallel_tool_calls` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`response_format` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning_effort` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`service_tier` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`instructions` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Kompatibilitási mező | Alapértelmezett— |
| Mező`functions` | Típus`function[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`function_call` | Típus`string\|object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`prompt_cache_options` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |

Bemeneti anyagok kombinációi

**Szöveg** · UTF8 szöveg

`messages[].content`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`material_types` | Szerződéstext |
| Paraméter`required` | Szerződésmodel, messages |
| Paraméter`optional_controls` | Szerződésnull |
| Paraméter`content_type` | Szerződésapplication/json |
| Paraméter`text_file_material` | Szerződésa tényleges UTF-8 tartalom szövegként beillesztve; a fájlazonosítók/URLs külön, pontos támogatást igényelnek |

Életciklus: `exact retained published method`

A metódusok szerkezete és azonosítói pontosak; a beszállítói képesség különbözik a kérelmek befogadásától.

### Díjcsomagok

#### Ailoot-metódusok díjai

Bemenet

0,0014 USD */ 1K*

Kimenet

0,0044 USD */ 1K*

Gyorsítótár olvasása

≈0,00026 USD */ 1K*

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 foglalás és az elszámolás működése →](https://ailoot.ai/docs/hu/billing/reserve/)

#### A referencia-díjszabás részletei

A modellszintű referenciatáblázatok nem módosítják a metódusválasztást, az árajánlatokat vagy a díjakat. A tényleges díjak a kiválasztott Ailoot-metódus díjtételeit használják.

Modell referenciatáblázatai

#### Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

| Beállítás | Díjtáblázat | Kontextustokenek, több mint | Kontextustokenek, legfeljebb | Díj |
| --- | --- | --- | --- | --- |
| BeállításOpenAI Chat · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításOpenAI Chat · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |

### Példakérések

#### Ailoot · OpenAI Chat

Szöveges példaPython SDKNode.js SDKPython-adatfolyam

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "glm-5.2", "messages": []}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["messages"]=[{"role":"user","content":"Summarize this material and quote supporting source passages.\n\n"+text}]
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
```

```python
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = OpenAI(base_url="https://api.ailoot.ai/v1", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
resp = client.chat.completions.create(
    model="glm-5.2",
    messages=[{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}],
)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(resp.to_dict(mode="json"))
```

```js
import OpenAI from "openai";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new OpenAI({ baseURL: "https://api.ailoot.ai/v1", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const resp = await client.chat.completions.create({
  model: "glm-5.2",
  messages: [{ role: "user", content: "Explain the difference between an observation and a hypothesis in three sentences." }],
});
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(resp);
```

```python
from openai import OpenAI
import os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.chat.completions.stream(model='glm-5.2',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_completion()
    save_result(final.to_dict(mode="json"),"stream-result")
```

### Eredmények fogadása és mentése

#### Ailoot · OpenAI Chat

json vagy SSE

##### Őrizzen meg minden elkészült eredményt

Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.

Ő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.

##### Ha az eredeti választ ellenőrizni kell

Ő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.

Válaszmezők

| Mező | Típus |
| --- | --- |
| Mező`choices[].index` | Típusinteger |
| Mező`choices[].message.content` | Típusstring\|null |
| Mező`choices[].message.tool_calls` | Típustool\_call\[\] |
| Mező`choices[].message.reasoning_content` | Típusstring |
| Mező`choices[].message.reasoning_details` | Típusobject\|array |
| Mező`choices[].finish_reason` | Típusstring\|null |
| Mező`usage` | Típusobject |

Hibák és következő lépések

| Válasz | Feltétel | Következő lépés |
| --- | --- | --- |
| Válasz400 · `invalid_request_error` | FeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték | Következő lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt. |

### Álnevek

#### Modell álnevei

<strong>Ailoot</strong> [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=chat), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=chat), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=chat), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=chat), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=chat), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=chat)
**Ailoot Ultra** [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=chat), [`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=chat), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=chat)

#### Metódusútvonalak álnevei

`/chat/completions`

#### Kapcsolódó modellazonosítók

[`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=chat), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=chat), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=chat), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=chat), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=chat), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=chat), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=chat), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=chat), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=chat)

**Ailoot · Anthropic Messages** `POST /v1/messages` `glm-latest`

[`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=messages)

Z.ai /`glm-latest`

Modell ID-ja

- `glm-5.3`
- `glm`
- `glm-5`
- `glm-5.1`
- `glm-5.2`
- `glm-latest`

### Kezdő lépések

A Z.ai GLM 5.3 szöveges következtető modell összetett szoftverfejlesztéshez, terminálmunkához és hosszú távú ügynökfeladatokhoz. A gyártó által dokumentált 1M tokenes kontextust, legfeljebb 128K kimeneti tokent, függvényhívást és low/high/max következtetési ráfordítást támogat, folyamatosan bekapcsolt következtetéssel.

Elfogadott bemenetek

Szöveg

Eredmények

Szöveg

### Elérhető az Ailootban · bemenetek és metódusok

**Ailoot · Anthropic Messages** `POST /v1/messages`

Bemenet

`text`

Kimenet

`text`

Kontextus

1 000 000 tokens

Maximális kimenet

131 072 tokens

Kimeneti formátum

json vagy SSE

| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
| --- | --- | --- | --- | --- |
| Mező`model` | Típus`string` | KövetelményKötelező | Értékek és korlátok glm-latest | Alapértelmezett— |
| Mező`messages` | Típus`message[]` | KövetelményKötelező | Értékek és korlátok Minimális elemszám: 1 | Alapértelmezett— |
| Mező`messages[].role` | Típus`string` | KövetelményKötelező | Értékek és korlátok user, assistant | Alapértelmezett— |
| Mező`messages[].content` | Típus`string\|content_block[]` | KövetelményKötelező | Értékek és korlátok | Alapértelmezett— |
| Mező`system` | Típus`string\|content_block[]` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`max_tokens` | Típus`integer` | KövetelményKötelező | Értékek és korlátok Minimum: 1 A korlát erre vonatkozik: a kiválasztott modell/kártya pontos felső korlátja | Alapértelmezett— |
| Mező`stream` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezettfalse |
| Mező`temperature` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`top_p` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`stop_sequences` | Típus`string[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools` | Típus`tool[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools[].name` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: Eszköz megadva | Alapértelmezett— |
| Mező`tools[].description` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tools[].input_schema` | Típus`JSON_schema` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tool_choice` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`thinking.type` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`thinking.budget_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`output_config.effort` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`metadata` | Típus`object` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`cache_control` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |

Bemeneti anyagok kombinációi

**Szöveg** · UTF8 szöveg

`messages[].content vagy type=text blokk`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`material_types` | Szerződéstext |
| Paraméter`required` | Szerződésmodel, messages, max\_tokens |
| Paraméter`optional_controls` | Szerződésnull |
| Paraméter`content_type` | Szerződésapplication/json |
| Paraméter`text_file_material` | Szerződésa tényleges UTF-8 tartalom szövegként beillesztve; a fájlazonosítók/URLs külön, pontos támogatást igényelnek |

Életciklus: `exact retained published method`

A metódusok szerkezete és azonosítói pontosak; a beszállítói képesség különbözik a kérelmek befogadásától.

### Díjcsomagok

#### Ailoot-metódusok díjai

Bemenet

0,0014 USD */ 1K*

Kimenet

0,0044 USD */ 1K*

Gyorsítótár olvasása

≈0,00026 USD */ 1K*

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 foglalás és az elszámolás működése →](https://ailoot.ai/docs/hu/billing/reserve/)

#### A referencia-díjszabás részletei

A modellszintű referenciatáblázatok nem módosítják a metódusválasztást, az árajánlatokat vagy a díjakat. A tényleges díjak a kiválasztott Ailoot-metódus díjtételeit használják.

Modell referenciatáblázatai

#### Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

| Beállítás | Díjtáblázat | Kontextustokenek, több mint | Kontextustokenek, legfeljebb | Díj |
| --- | --- | --- | --- | --- |
| BeállításOpenAI Chat · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításOpenAI Chat · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |

### Példakérések

#### Ailoot · Anthropic Messages

Szöveges példaPython SDKNode.js SDKPython-adatfolyam

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "glm-latest", "max_tokens": 1024, "messages": []}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["messages"]=[{"role":"user","content":"Summarize this material and quote supporting source passages.\n\n"+text}]
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
```

```python
import anthropic
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = anthropic.Anthropic(base_url="https://api.ailoot.ai", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
msg = client.messages.create(
    model="glm-latest",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}],
)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(msg.to_dict(mode="json"))
```

```js
import Anthropic from "@anthropic-ai/sdk";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new Anthropic({ baseURL: "https://api.ailoot.ai", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const msg = await client.messages.create({
  model: "glm-latest",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Explain the difference between an observation and a hypothesis in three sentences." }],
});
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(msg);
```

```python
import anthropic,os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=anthropic.Anthropic(base_url="https://api.ailoot.ai",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.messages.stream(model='glm-latest',max_tokens=1024,messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_message()
    save_result(final.to_dict(mode="json"),"stream-result")
```

### Eredmények fogadása és mentése

#### Ailoot · Anthropic Messages

json vagy SSE

##### Őrizzen meg minden elkészült eredményt

Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.

Ő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.

##### Ha az eredeti választ ellenőrizni kell

Ő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.

Válaszmezők

| Mező | Típus |
| --- | --- |
| Mező`id` | Típusstring |
| Mező`model` | Típusstring |
| Mező`content[]` | Típustext\|thinking\|tool\_use\|other content block |
| Mező`stop_reason` | Típusstring\|null |
| Mező`usage` | Típusobject |

Hibák és következő lépések

| Válasz | Feltétel | Következő lépés |
| --- | --- | --- |
| Válasz400 · `invalid_request_error` | FeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték | Következő lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt. |

### Álnevek

#### Modell álnevei

<strong>Ailoot</strong> [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=messages), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=messages), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=messages), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=messages), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=messages), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=messages)
**Ailoot Ultra** [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=messages), [`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=messages), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=messages)

#### Metódusútvonalak álnevei

`/chat/completions`

#### Kapcsolódó modellazonosítók

[`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=messages), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=messages), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=messages), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=messages), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=messages), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=messages), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=messages), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=messages), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=messages)

**Ailoot · OpenAI Responses** `POST /v1/responses` `glm-latest`

[`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=responses)

Z.ai /`glm-latest`

Modell ID-ja

- `glm-5.3`
- `glm`
- `glm-5`
- `glm-5.1`
- `glm-5.2`
- `glm-latest`

### Kezdő lépések

A Z.ai GLM 5.3 szöveges következtető modell összetett szoftverfejlesztéshez, terminálmunkához és hosszú távú ügynökfeladatokhoz. A gyártó által dokumentált 1M tokenes kontextust, legfeljebb 128K kimeneti tokent, függvényhívást és low/high/max következtetési ráfordítást támogat, folyamatosan bekapcsolt következtetéssel.

Elfogadott bemenetek

Szöveg

Eredmények

Szöveg

### Elérhető az Ailootban · bemenetek és metódusok

**Ailoot · OpenAI Responses** `POST /v1/responses`

Bemenet

`text`

Kimenet

`text`

Kontextus

1 000 000 tokens

Maximális kimenet

131 072 tokens

Kimeneti formátum

json vagy SSE

| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
| --- | --- | --- | --- | --- |
| Mező`model` | Típus`string` | KövetelményKötelező | Értékek és korlátok glm-latest | Alapértelmezett— |
| Mező`input` | Típus`string\|input_item[]` | KövetelményKötelező | Értékek és korlátok | Alapértelmezett— |
| Mező`instructions` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`input[].type` | Típus`string` | KövetelményOpcionális | Értékek és korlátok message, reasoning, function\_call, function\_call\_output | Alapértelmezett— |
| Mező`input[].content` | Típus`string\|content_part[]` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`input[].call_id` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: function\_call\_output; őrizze meg a ténylegesen visszaadott call\_id értéket | Alapértelmezett— |
| Mező`input[].output` | Típus`string\|content_part[]` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: function\_call\_output | Alapértelmezett— |
| Mező`max_output_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Modelltől függ | Alapértelmezett— |
| Mező`stream` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezettfalse |
| Mező`temperature` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`top_p` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools` | Típus`tool[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tool_choice` | Típus`string\|object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`parallel_tool_calls` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning.effort` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning.summary` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`text.format` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`text.verbosity` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`include` | Típus`string[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`store` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`previous_response_id` | Típus`string` | KövetelményOpcionális | Értékek és korlátok ID-követelmény: Csak támogatott folytatásból származó tényleges válaszazonosító Modelltől függ | Alapértelmezett— |
| Mező`service_tier` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`prompt_cache_key` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`prompt_cache_options` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |

Bemeneti anyagok kombinációi

**Szöveg** · UTF8 szöveg

`bemeneti szöveg vagy input_text rész`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`material_types` | Szerződéstext |
| Paraméter`required` | Szerződésmodel, input |
| Paraméter`optional_controls` | Szerződésnull |
| Paraméter`content_type` | Szerződésapplication/json |
| Paraméter`text_file_material` | Szerződésa tényleges UTF-8 tartalom szövegként beillesztve; a fájlazonosítók/URLs külön, pontos támogatást igényelnek |

Életciklus: `exact retained published method`

A metódusok szerkezete és azonosítói pontosak; a beszállítói képesség különbözik a kérelmek befogadásától.

### Díjcsomagok

#### Ailoot-metódusok díjai

Bemenet

0,0014 USD */ 1K*

Kimenet

0,0044 USD */ 1K*

Gyorsítótár olvasása

≈0,00026 USD */ 1K*

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 foglalás és az elszámolás működése →](https://ailoot.ai/docs/hu/billing/reserve/)

#### A referencia-díjszabás részletei

A modellszintű referenciatáblázatok nem módosítják a metódusválasztást, az árajánlatokat vagy a díjakat. A tényleges díjak a kiválasztott Ailoot-metódus díjtételeit használják.

Modell referenciatáblázatai

#### Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

| Beállítás | Díjtáblázat | Kontextustokenek, több mint | Kontextustokenek, legfeljebb | Díj |
| --- | --- | --- | --- | --- |
| BeállításOpenAI Chat · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításOpenAI Chat · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |

### Példakérések

#### Ailoot · OpenAI Responses

Szöveges példaPython SDKNode.js SDKPython-adatfolyam

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "glm-latest", "input": ""}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["input"]="Summarize this material and quote supporting source passages.\n\n"+text
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/responses \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(json.loads(Path("result.json").read_text(encoding="utf-8")))
PY_RESULT
```

```python
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = OpenAI(base_url="https://api.ailoot.ai/v1", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
resp = client.responses.create(model="glm-latest", input="Explain the difference between an observation and a hypothesis in three sentences.")
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(resp.to_dict(mode="json"))
```

```js
import OpenAI from "openai";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new OpenAI({ baseURL: "https://api.ailoot.ai/v1", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const resp = await client.responses.create({ model: "glm-latest", input: "Explain the difference between an observation and a hypothesis in three sentences." });
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(resp);
```

```python
from openai import OpenAI
import os
from pathlib import Path
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
with client.responses.stream(model="glm-latest", input="Explain the difference between an observation and a hypothesis in three sentences.") as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_response()
    save_result(final.to_dict(mode="json"),"stream-result")
```

### Eredmények fogadása és mentése

#### Ailoot · OpenAI Responses

json vagy SSE

##### Őrizzen meg minden elkészült eredményt

Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.

Őrizzen meg minden kimeneti elemet és tartalomrészt, a tényleges függvényhívási call\_id értéket, a titkosított gondolkodási tartalmat és a használati adatokat. Folyamatos átvitelkor őrizze meg az események és elemek összes azonosítóadatát.

##### Ha az eredeti választ ellenőrizni kell

Ő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.

Válaszmezők

| Mező | Típus |
| --- | --- |
| Mező`id` | Típusstring |
| Mező`status` | Típusstring |
| Mező`output[]` | Típusmessage\|reasoning\|function\_call\|other item |
| Mező`output[].content[]` | Típuscontent part |
| Mező`usage` | Típusobject |

Hibák és következő lépések

| Válasz | Feltétel | Következő lépés |
| --- | --- | --- |
| Válasz400 · `invalid_request_error` | FeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték | Következő lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt. |

### Álnevek

#### Modell álnevei

<strong>Ailoot</strong> [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=responses), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=responses), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=responses), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=responses), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=responses), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=responses)
**Ailoot Ultra** [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3), [`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest)

#### Metódusútvonalak álnevei

`/chat/completions`

#### Kapcsolódó modellazonosítók

[`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=responses), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=responses), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=responses), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=responses), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=responses), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=responses), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3)

**Ailoot · OpenAI Chat** `POST /v1/chat/completions` `glm-latest`

[`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=chat)

Z.ai /`glm-latest`

Modell ID-ja

- `glm-5.3`
- `glm`
- `glm-5`
- `glm-5.1`
- `glm-5.2`
- `glm-latest`

### Kezdő lépések

A Z.ai GLM 5.3 szöveges következtető modell összetett szoftverfejlesztéshez, terminálmunkához és hosszú távú ügynökfeladatokhoz. A gyártó által dokumentált 1M tokenes kontextust, legfeljebb 128K kimeneti tokent, függvényhívást és low/high/max következtetési ráfordítást támogat, folyamatosan bekapcsolt következtetéssel.

Elfogadott bemenetek

Szöveg

Eredmények

Szöveg

### Elérhető az Ailootban · bemenetek és metódusok

**Ailoot · OpenAI Chat** `POST /v1/chat/completions`

Bemenet

`text`

Kimenet

`text`

Kontextus

1 000 000 tokens

Maximális kimenet

131 072 tokens

Kimeneti formátum

json vagy SSE

| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
| --- | --- | --- | --- | --- |
| Mező`model` | Típus`string` | KövetelményKötelező | Értékek és korlátok glm-latest | Alapértelmezett— |
| Mező`messages` | Típus`message[]` | KövetelményKötelező | Értékek és korlátok Minimális elemszám: 1 | Alapértelmezett— |
| Mező`messages[].role` | Típus`string` | KövetelményKötelező | Értékek és korlátok Példák: system, user, assistant, tool, function 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. Modelltől függ | Alapértelmezett— |
| Mező`messages[].content` | Típus`string\|content_part[]\|null` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].tool_calls` | Típus`tool_call[]` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].tool_call_id` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: role=tool; használja a ténylegesen visszaadott ID-t | Alapértelmezett— |
| Mező`messages[].name` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].reasoning_content` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: Küldje vissza a ténylegesen visszaadott gondolkodási tartalmat, ha ez a modell használja | Alapértelmezett— |
| Mező`messages[].reasoning_details` | Típus`object\|array` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`max_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Modelltől függ | Alapértelmezett— |
| Mező`max_completion_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Modelltől függ | Alapértelmezett— |
| Mező`stream` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezettfalse |
| Mező`stream_options.include_usage` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`temperature` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`top_p` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`stop` | Típus`string\|string[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools` | Típus`function_tool[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools[].type` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools[].function.name` | Típus`string` | KövetelményKötelező | Értékek és korlátok Akkor alkalmazandó, ha: Függvényeszköz megadva | Alapértelmezett— |
| Mező`tools[].function.description` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tools[].function.parameters` | Típus`JSON_schema` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tool_choice` | Típus`string\|object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`parallel_tool_calls` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`response_format` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning_effort` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`service_tier` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`instructions` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Kompatibilitási mező | Alapértelmezett— |
| Mező`functions` | Típus`function[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`function_call` | Típus`string\|object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`prompt_cache_options` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |

Bemeneti anyagok kombinációi

**Szöveg** · UTF8 szöveg

`messages[].content`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`material_types` | Szerződéstext |
| Paraméter`required` | Szerződésmodel, messages |
| Paraméter`optional_controls` | Szerződésnull |
| Paraméter`content_type` | Szerződésapplication/json |
| Paraméter`text_file_material` | Szerződésa tényleges UTF-8 tartalom szövegként beillesztve; a fájlazonosítók/URLs külön, pontos támogatást igényelnek |

Életciklus: `exact retained published method`

A metódusok szerkezete és azonosítói pontosak; a beszállítói képesség különbözik a kérelmek befogadásától.

### Díjcsomagok

#### Ailoot-metódusok díjai

Bemenet

0,0014 USD */ 1K*

Kimenet

0,0044 USD */ 1K*

Gyorsítótár olvasása

≈0,00026 USD */ 1K*

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 foglalás és az elszámolás működése →](https://ailoot.ai/docs/hu/billing/reserve/)

#### A referencia-díjszabás részletei

A modellszintű referenciatáblázatok nem módosítják a metódusválasztást, az árajánlatokat vagy a díjakat. A tényleges díjak a kiválasztott Ailoot-metódus díjtételeit használják.

Modell referenciatáblázatai

#### Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

| Beállítás | Díjtáblázat | Kontextustokenek, több mint | Kontextustokenek, legfeljebb | Díj |
| --- | --- | --- | --- | --- |
| BeállításOpenAI Chat · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításOpenAI Chat · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Alap tokendíjak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításAnthropic Messages · Kéréshossz szerinti 1. díjsáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |

### Példakérések

#### Ailoot · OpenAI Chat

Szöveges példaPython SDKNode.js SDKPython-adatfolyam

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "glm-latest", "messages": []}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["messages"]=[{"role":"user","content":"Summarize this material and quote supporting source passages.\n\n"+text}]
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
```

```python
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = OpenAI(base_url="https://api.ailoot.ai/v1", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
resp = client.chat.completions.create(
    model="glm-latest",
    messages=[{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}],
)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(resp.to_dict(mode="json"))
```

```js
import OpenAI from "openai";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new OpenAI({ baseURL: "https://api.ailoot.ai/v1", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const resp = await client.chat.completions.create({
  model: "glm-latest",
  messages: [{ role: "user", content: "Explain the difference between an observation and a hypothesis in three sentences." }],
});
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(resp);
```

```python
from openai import OpenAI
import os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.chat.completions.stream(model='glm-latest',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_completion()
    save_result(final.to_dict(mode="json"),"stream-result")
```

### Eredmények fogadása és mentése

#### Ailoot · OpenAI Chat

json vagy SSE

##### Őrizzen meg minden elkészült eredményt

Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.

Ő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.

##### Ha az eredeti választ ellenőrizni kell

Ő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.

Válaszmezők

| Mező | Típus |
| --- | --- |
| Mező`choices[].index` | Típusinteger |
| Mező`choices[].message.content` | Típusstring\|null |
| Mező`choices[].message.tool_calls` | Típustool\_call\[\] |
| Mező`choices[].message.reasoning_content` | Típusstring |
| Mező`choices[].message.reasoning_details` | Típusobject\|array |
| Mező`choices[].finish_reason` | Típusstring\|null |
| Mező`usage` | Típusobject |

Hibák és következő lépések

| Válasz | Feltétel | Következő lépés |
| --- | --- | --- |
| Válasz400 · `invalid_request_error` | FeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték | Következő lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt. |

### Álnevek

#### Modell álnevei

<strong>Ailoot</strong> [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=chat), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=chat), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=chat), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=chat), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=chat), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=chat)
**Ailoot Ultra** [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=chat), [`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=chat), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=chat)

#### Metódusútvonalak álnevei

`/chat/completions`

#### Kapcsolódó modellazonosítók

[`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=chat), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=chat), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=chat), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=chat), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=chat), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=chat), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=chat), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=chat), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=chat)

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `z-ai/glm-5.3`

[`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=chat)

Z.ai /`z-ai/glm-5.3`

Modell ID-ja

- `glm-5.3`
- `z-ai/glm-5.3`
- `~z-ai/glm-latest`

### Kezdő lépések

A Z.ai GLM 5.3 szöveges következtető modell összetett szoftverfejlesztéshez, terminálmunkához és hosszú távú ügynökfeladatokhoz. A gyártó által dokumentált 1M tokenes kontextust, legfeljebb 128K kimeneti tokent, függvényhívást és low/high/max következtetési ráfordítást támogat, folyamatosan bekapcsolt következtetéssel.

Elfogadott bemenetek

Szöveg

Eredmények

Szöveg

### Elérhető az Ailootban · bemenetek és metódusok

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions`

Bemenet

`text`

Kimenet

`text`

Kimeneti formátum

json vagy SSE

| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
| --- | --- | --- | --- | --- |
| Mező`model` | Típus`string` | KövetelményKötelező | Értékek és korlátok z-ai/glm-5.3 | Alapértelmezett— |
| Mező`messages` | Típus`message[]` | KövetelményKötelező | Értékek és korlátok Minimális elemszám: 1 | Alapértelmezett— |
| Mező`messages[].role` | Típus`string` | KövetelményKötelező | Értékek és korlátok Példák: system, user, assistant, tool, function 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. Modelltől függ | Alapértelmezett— |
| Mező`messages[].content` | Típus`string\|content_part[]\|null` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].tool_calls` | Típus`tool_call[]` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].tool_call_id` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: role=tool; használja a ténylegesen visszaadott ID-t | Alapértelmezett— |
| Mező`messages[].name` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].reasoning_content` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: Küldje vissza a ténylegesen visszaadott gondolkodási tartalmat, ha ez a modell használja | Alapértelmezett— |
| Mező`messages[].reasoning_details` | Típus`object\|array` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`max_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Modelltől függ | Alapértelmezett— |
| Mező`max_completion_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Modelltől függ | Alapértelmezett— |
| Mező`stream` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezettfalse |
| Mező`stream_options.include_usage` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`temperature` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`top_p` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`stop` | Típus`string\|string[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools` | Típus`function_tool[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools[].type` | Típus`string` | KövetelményOpcionális | Értékek és korlátok function Modelltől függ | Alapértelmezett— |
| Mező`tools[].function.name` | Típus`string` | KövetelményKötelező | Értékek és korlátok Akkor alkalmazandó, ha: Függvényeszköz megadva | Alapértelmezett— |
| Mező`tools[].function.description` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tools[].function.parameters` | Típus`JSON_schema` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tool_choice` | Típus`string\|object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`parallel_tool_calls` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`response_format` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning_effort` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`service_tier` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`instructions` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Kompatibilitási mező | Alapértelmezett— |
| Mező`functions` | Típus`function[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`function_call` | Típus`string\|object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`prompt_cache_options` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`modalities` | Típus`string[]` | KövetelményOpcionális | Értékek és korlátok text | Alapértelmezett— |
| Mező`provider` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Feltételek: A provider.options elutasításra kerül ezen az Ultra szöveges útvonalon | Alapértelmezett— |
| Mező`cache_control.ttl` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Feltételek: Az 1h elutasításra kerül a tényleges prompt-gyorsítótárazási helyeken | Alapértelmezett— |

Bemeneti anyagok kombinációi

**Szöveg** · UTF8 szöveg

`messages[].content`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`content_type` | Szerződésapplication/json |
| Paraméter`required` | Szerződésmodel, messages |
| Paraméter`material_types` | Szerződéstext |
| Paraméter`messages` | Szerződésüzenettömb role/content szerkezettel |
| Paraméter`file_material` | Szerződésa tényleges UTF-8 dokumentum szó szerinti szövegként beillesztve; nincs kikövetkeztetett fájlazonosító |
| Paraméter`optional_controls` | Szerződésstream, temperature, top\_p, stop, max\_tokens, max\_completion\_tokens, reasoning, response\_format, tools, tool\_choice |
| Paraméter`control_scope` | Szerződésmodellspecifikus; a felhasználói függvényeszközök eltérnek a hosztolt eszközöktől |
| Paraméter`output_modalities` | Szerződéstext |
| Paraméter`hosted_operations` | Szerződésfalse |
| Paraméter`multimodal_input_binding` | Szerződésnull |

Életciklus: `synchronous_or_streamed`

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.

### Díjcsomagok

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.

Gyors mód

Normál díjszabás Ha a gyors mód van kiválasztva

Flex mód

Normál díjszabás Ha a flex mód van kiválasztva

Maximális gondolkodási ráfordítás

Normál díjszabás Ha a maximális gondolkodási ráfordításra a default beállításhoz tartozó korrekció vonatkozik

Gondolkodási ráfordítás · high

Normál díjszabás Ha a gondolkodási ráfordítás értéke high

Gondolkodási ráfordítás · low

Normál díjszabás Ha a gondolkodási ráfordítás értéke low

Gondolkodási ráfordítás · max

Normál díjszabás Ha a gondolkodási ráfordítás értéke max

#### Ailoot-díjak

#### Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

| Beállítás | Díjtáblázat | Kontextustokenek, több mint | Kontextustokenek, legfeljebb | Díj |
| --- | --- | --- | --- | --- |
| BeállításTokenenkénti alapárak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításA kéréshossz szerinti 1. ársáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |

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 foglalás és az elszámolás működése →](https://ailoot.ai/docs/hu/billing/reserve/)

### Példakérések

#### Ailoot Ultra · OpenAI Chat

curlPython SDKPython-adatfolyam

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "z-ai/glm-5.3", "messages": [{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}]}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
    if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
```

```python
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model='z-ai/glm-5.3',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}])
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(result.to_dict(mode="json"))
```

```python
from openai import OpenAI
import os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.chat.completions.stream(model='z-ai/glm-5.3',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_completion()
    save_result(final.to_dict(mode="json"),"stream-result")
```

### Eredmények fogadása és mentése

#### Ailoot Ultra · OpenAI Chat

json vagy SSE

##### Őrizzen meg minden elkészült eredményt

Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.

Ő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.

##### Ha az eredeti választ ellenőrizni kell

Ő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.

Válaszmezők

| Mező | Típus |
| --- | --- |
| Mező`choices[].index` | Típusinteger |
| Mező`choices[].message.content` | Típusstring\|null |
| Mező`choices[].message.tool_calls` | Típustool\_call\[\] |
| Mező`choices[].message.reasoning_content` | Típusstring |
| Mező`choices[].message.reasoning_details` | Típusobject\|array |
| Mező`choices[].finish_reason` | Típusstring\|null |
| Mező`usage` | Típusobject |

Hibák és következő lépések

| Válasz | Feltétel | Következő lépés |
| --- | --- | --- |
| Válasz400 · `invalid_request_error` | FeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték | Következő lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt. |

### Álnevek

#### Modell álnevei

<strong>Ailoot</strong> [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=chat), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=chat), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=chat), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=chat), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=chat), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=chat)
**Ailoot Ultra** [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=chat), [`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=chat), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=chat)

#### Metódusútvonalak álnevei

`/chat/completions`

#### Kapcsolódó modellazonosítók

[`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=chat), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=chat), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=chat), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=chat), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=chat), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=chat), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=chat), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=chat), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=chat)

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `z-ai/glm-5.3`

[`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=messages)

Z.ai /`z-ai/glm-5.3`

Modell ID-ja

- `glm-5.3`
- `z-ai/glm-5.3`
- `~z-ai/glm-latest`

### Kezdő lépések

A Z.ai GLM 5.3 szöveges következtető modell összetett szoftverfejlesztéshez, terminálmunkához és hosszú távú ügynökfeladatokhoz. A gyártó által dokumentált 1M tokenes kontextust, legfeljebb 128K kimeneti tokent, függvényhívást és low/high/max következtetési ráfordítást támogat, folyamatosan bekapcsolt következtetéssel.

Elfogadott bemenetek

Szöveg

Eredmények

json · sse

### Elérhető az Ailootban · bemenetek és metódusok

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages`

Bemenet

`text`

Kimenet

`json`, `sse`

Kimeneti formátum

JSON vagy SSE

| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
| --- | --- | --- | --- | --- |
| Mező`model` | Típus`string` | KövetelményKötelező | Értékek és korlátok z-ai/glm-5.3 | Alapértelmezett— |
| Mező`messages` | Típus`message[]` | KövetelményKötelező | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].role` | Típus`string` | KövetelményKötelező | Értékek és korlátok user, assistant | Alapértelmezett— |
| Mező`messages[].content` | Típus`string` | KövetelményKötelező | Értékek és korlátok | Alapértelmezett— |
| Mező`max_tokens` | Típus`integer` | KövetelményKötelező | Értékek és korlátok | Alapértelmezett— |
| Mező`stream` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezettfalse |

Bemeneti anyagok kombinációi

**Szöveg** · UTF-8 szöveg

`messages[].content karakterlánc`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`content_type` | Szerződésapplication/json |
| Paraméter`required` | Szerződésmodel, messages, max\_tokens |
| Paraméter`optional_controls` | Szerződésstream |
| Paraméter`material_types` | Szerződéstext |
| Paraméter`text_file_material` | SzerződésOlvassa el a tényleges UTF-8 dokumentumot, és tegye a szövegét a jelzett bemeneti karakterláncba vagy az üzenettartalom karakterláncába. |

Életciklus: `synchronous_or_streamed`

### Díjcsomagok

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.

Gyors mód

Normál díjszabás Ha a gyors mód van kiválasztva

Flex mód

Normál díjszabás Ha a flex mód van kiválasztva

Maximális gondolkodási ráfordítás

Normál díjszabás Ha a maximális gondolkodási ráfordításra a default beállításhoz tartozó korrekció vonatkozik

Gondolkodási ráfordítás · high

Normál díjszabás Ha a gondolkodási ráfordítás értéke high

Gondolkodási ráfordítás · low

Normál díjszabás Ha a gondolkodási ráfordítás értéke low

Gondolkodási ráfordítás · max

Normál díjszabás Ha a gondolkodási ráfordítás értéke max

#### Ailoot-díjak

#### Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

| Beállítás | Díjtáblázat | Kontextustokenek, több mint | Kontextustokenek, legfeljebb | Díj |
| --- | --- | --- | --- | --- |
| BeállításTokenenkénti alapárak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításA kéréshossz szerinti 1. ársáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |

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 foglalás és az elszámolás működése →](https://ailoot.ai/docs/hu/billing/reserve/)

### Példakérések

#### Ailoot Ultra · Anthropic Messages

Teljes, minimális JSON-törzscurl · használd a saját UTF-8-dokumentumodatPython · mentsd el a teljes eredményt

```json
{
  "model": "z-ai/glm-5.3",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
```

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'z-ai/glm-5.3', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
```

```python
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'z-ai/glm-5.3', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
```

### Eredmények fogadása és mentése

#### Ailoot Ultra · Anthropic Messages

JSON vagy SSE

##### Őrizzen meg minden elkészült eredményt

Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.

Ő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.

##### Ha az eredeti választ ellenőrizni kell

Ő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.

Válaszmezők

| Mező | Típus |
| --- | --- |
| Mező`id` | Típusstring |
| Mező`model` | Típusstring |
| Mező`content[]` | Típustext\|thinking\|tool\_use\|other content block |
| Mező`stop_reason` | Típusstring\|null |
| Mező`usage` | Típusobject |

Hibák és következő lépések

| Válasz | Feltétel | Következő lépés |
| --- | --- | --- |
| Válasz400 · `invalid_request_error` | FeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték | Következő lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt. |

### Álnevek

#### Modell álnevei

<strong>Ailoot</strong> [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=messages), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=messages), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=messages), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=messages), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=messages), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=messages)
**Ailoot Ultra** [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=messages), [`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=messages), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=messages)

#### Metódusútvonalak álnevei

`/chat/completions`

#### Kapcsolódó modellazonosítók

[`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=messages), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=messages), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=messages), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=messages), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=messages), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=messages), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=messages), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=messages), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=messages)

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `~z-ai/glm-latest`

[`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=chat)

Z.ai /`~z-ai/glm-latest`

Modell ID-ja

- `glm-5.3`
- `z-ai/glm-5.3`
- `~z-ai/glm-latest`

### Kezdő lépések

A Z.ai GLM 5.3 szöveges következtető modell összetett szoftverfejlesztéshez, terminálmunkához és hosszú távú ügynökfeladatokhoz. A gyártó által dokumentált 1M tokenes kontextust, legfeljebb 128K kimeneti tokent, függvényhívást és low/high/max következtetési ráfordítást támogat, folyamatosan bekapcsolt következtetéssel.

Elfogadott bemenetek

Szöveg

Eredmények

Szöveg

### Elérhető az Ailootban · bemenetek és metódusok

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions`

Bemenet

`text`

Kimenet

`text`

Kimeneti formátum

json vagy SSE

| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
| --- | --- | --- | --- | --- |
| Mező`model` | Típus`string` | KövetelményKötelező | Értékek és korlátok ~z-ai/glm-latest | Alapértelmezett— |
| Mező`messages` | Típus`message[]` | KövetelményKötelező | Értékek és korlátok Minimális elemszám: 1 | Alapértelmezett— |
| Mező`messages[].role` | Típus`string` | KövetelményKötelező | Értékek és korlátok Példák: system, user, assistant, tool, function 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. Modelltől függ | Alapértelmezett— |
| Mező`messages[].content` | Típus`string\|content_part[]\|null` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].tool_calls` | Típus`tool_call[]` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].tool_call_id` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: role=tool; használja a ténylegesen visszaadott ID-t | Alapértelmezett— |
| Mező`messages[].name` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].reasoning_content` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Akkor alkalmazandó, ha: Küldje vissza a ténylegesen visszaadott gondolkodási tartalmat, ha ez a modell használja | Alapértelmezett— |
| Mező`messages[].reasoning_details` | Típus`object\|array` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`max_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Modelltől függ | Alapértelmezett— |
| Mező`max_completion_tokens` | Típus`integer` | KövetelményOpcionális | Értékek és korlátok Minimum: 1 Modelltől függ | Alapértelmezett— |
| Mező`stream` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezettfalse |
| Mező`stream_options.include_usage` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`temperature` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`top_p` | Típus`number` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`stop` | Típus`string\|string[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools` | Típus`function_tool[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`tools[].type` | Típus`string` | KövetelményOpcionális | Értékek és korlátok function Modelltől függ | Alapértelmezett— |
| Mező`tools[].function.name` | Típus`string` | KövetelményKötelező | Értékek és korlátok Akkor alkalmazandó, ha: Függvényeszköz megadva | Alapértelmezett— |
| Mező`tools[].function.description` | Típus`string` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tools[].function.parameters` | Típus`JSON_schema` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
| Mező`tool_choice` | Típus`string\|object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`parallel_tool_calls` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`response_format` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning_effort` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`reasoning` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`service_tier` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`instructions` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Kompatibilitási mező | Alapértelmezett— |
| Mező`functions` | Típus`function[]` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`function_call` | Típus`string\|object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`prompt_cache_options` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Modelltől függ | Alapértelmezett— |
| Mező`modalities` | Típus`string[]` | KövetelményOpcionális | Értékek és korlátok text | Alapértelmezett— |
| Mező`provider` | Típus`object` | KövetelményOpcionális | Értékek és korlátok Feltételek: A provider.options elutasításra kerül ezen az Ultra szöveges útvonalon | Alapértelmezett— |
| Mező`cache_control.ttl` | Típus`string` | KövetelményOpcionális | Értékek és korlátok Feltételek: Az 1h elutasításra kerül a tényleges prompt-gyorsítótárazási helyeken | Alapértelmezett— |

Bemeneti anyagok kombinációi

**Szöveg** · UTF8 szöveg

`messages[].content`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`content_type` | Szerződésapplication/json |
| Paraméter`required` | Szerződésmodel, messages |
| Paraméter`material_types` | Szerződéstext |
| Paraméter`messages` | Szerződésüzenettömb role/content szerkezettel |
| Paraméter`file_material` | Szerződésa tényleges UTF-8 dokumentum szó szerinti szövegként beillesztve; nincs kikövetkeztetett fájlazonosító |
| Paraméter`optional_controls` | Szerződésstream, temperature, top\_p, stop, max\_tokens, max\_completion\_tokens, reasoning, response\_format, tools, tool\_choice |
| Paraméter`control_scope` | Szerződésmodellspecifikus; a felhasználói függvényeszközök eltérnek a hosztolt eszközöktől |
| Paraméter`output_modalities` | Szerződéstext |
| Paraméter`hosted_operations` | Szerződésfalse |
| Paraméter`multimodal_input_binding` | Szerződésnull |

Életciklus: `synchronous_or_streamed`

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.

### Díjcsomagok

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.

Gyors mód

Normál díjszabás Ha a gyors mód van kiválasztva

Flex mód

Normál díjszabás Ha a flex mód van kiválasztva

Maximális gondolkodási ráfordítás

Normál díjszabás Ha a maximális gondolkodási ráfordításra a default beállításhoz tartozó korrekció vonatkozik

Gondolkodási ráfordítás · high

Normál díjszabás Ha a gondolkodási ráfordítás értéke high

Gondolkodási ráfordítás · low

Normál díjszabás Ha a gondolkodási ráfordítás értéke low

Gondolkodási ráfordítás · max

Normál díjszabás Ha a gondolkodási ráfordítás értéke max

#### Ailoot-díjak

#### Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

| Beállítás | Díjtáblázat | Kontextustokenek, több mint | Kontextustokenek, legfeljebb | Díj |
| --- | --- | --- | --- | --- |
| BeállításTokenenkénti alapárak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításA kéréshossz szerinti 1. ársáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |

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 foglalás és az elszámolás működése →](https://ailoot.ai/docs/hu/billing/reserve/)

### Példakérések

#### Ailoot Ultra · OpenAI Chat

curlPython SDKPython-adatfolyam

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "~z-ai/glm-latest", "messages": [{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}]}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
    if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
```

```python
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model='~z-ai/glm-latest',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}])
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(result.to_dict(mode="json"))
```

```python
from openai import OpenAI
import os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        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
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.chat.completions.stream(model='~z-ai/glm-latest',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_completion()
    save_result(final.to_dict(mode="json"),"stream-result")
```

### Eredmények fogadása és mentése

#### Ailoot Ultra · OpenAI Chat

json vagy SSE

##### Őrizzen meg minden elkészült eredményt

Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.

Ő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.

##### Ha az eredeti választ ellenőrizni kell

Ő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.

Válaszmezők

| Mező | Típus |
| --- | --- |
| Mező`choices[].index` | Típusinteger |
| Mező`choices[].message.content` | Típusstring\|null |
| Mező`choices[].message.tool_calls` | Típustool\_call\[\] |
| Mező`choices[].message.reasoning_content` | Típusstring |
| Mező`choices[].message.reasoning_details` | Típusobject\|array |
| Mező`choices[].finish_reason` | Típusstring\|null |
| Mező`usage` | Típusobject |

Hibák és következő lépések

| Válasz | Feltétel | Következő lépés |
| --- | --- | --- |
| Válasz400 · `invalid_request_error` | FeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték | Következő lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt. |

### Álnevek

#### Modell álnevei

<strong>Ailoot</strong> [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=chat), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=chat), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=chat), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=chat), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=chat), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=chat)
**Ailoot Ultra** [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=chat), [`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=chat), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=chat)

#### Metódusútvonalak álnevei

`/chat/completions`

#### Kapcsolódó modellazonosítók

[`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=chat), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=chat), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=chat), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=chat), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=chat), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=chat), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=chat), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=chat), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=chat)

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `~z-ai/glm-latest`

[`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=messages)

Z.ai /`~z-ai/glm-latest`

Modell ID-ja

- `glm-5.3`
- `z-ai/glm-5.3`
- `~z-ai/glm-latest`

### Kezdő lépések

A Z.ai GLM 5.3 szöveges következtető modell összetett szoftverfejlesztéshez, terminálmunkához és hosszú távú ügynökfeladatokhoz. A gyártó által dokumentált 1M tokenes kontextust, legfeljebb 128K kimeneti tokent, függvényhívást és low/high/max következtetési ráfordítást támogat, folyamatosan bekapcsolt következtetéssel.

Elfogadott bemenetek

Szöveg

Eredmények

json · sse

### Elérhető az Ailootban · bemenetek és metódusok

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages`

Bemenet

`text`

Kimenet

`json`, `sse`

Kimeneti formátum

JSON vagy SSE

| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
| --- | --- | --- | --- | --- |
| Mező`model` | Típus`string` | KövetelményKötelező | Értékek és korlátok ~z-ai/glm-latest | Alapértelmezett— |
| Mező`messages` | Típus`message[]` | KövetelményKötelező | Értékek és korlátok | Alapértelmezett— |
| Mező`messages[].role` | Típus`string` | KövetelményKötelező | Értékek és korlátok user, assistant | Alapértelmezett— |
| Mező`messages[].content` | Típus`string` | KövetelményKötelező | Értékek és korlátok | Alapértelmezett— |
| Mező`max_tokens` | Típus`integer` | KövetelményKötelező | Értékek és korlátok | Alapértelmezett— |
| Mező`stream` | Típus`boolean` | KövetelményOpcionális | Értékek és korlátok | Alapértelmezettfalse |

Bemeneti anyagok kombinációi

**Szöveg** · UTF-8 szöveg

`messages[].content karakterlánc`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`content_type` | Szerződésapplication/json |
| Paraméter`required` | Szerződésmodel, messages, max\_tokens |
| Paraméter`optional_controls` | Szerződésstream |
| Paraméter`material_types` | Szerződéstext |
| Paraméter`text_file_material` | SzerződésOlvassa el a tényleges UTF-8 dokumentumot, és tegye a szövegét a jelzett bemeneti karakterláncba vagy az üzenettartalom karakterláncába. |

Életciklus: `synchronous_or_streamed`

### Díjcsomagok

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.

Gyors mód

Normál díjszabás Ha a gyors mód van kiválasztva

Flex mód

Normál díjszabás Ha a flex mód van kiválasztva

Maximális gondolkodási ráfordítás

Normál díjszabás Ha a maximális gondolkodási ráfordításra a default beállításhoz tartozó korrekció vonatkozik

Gondolkodási ráfordítás · high

Normál díjszabás Ha a gondolkodási ráfordítás értéke high

Gondolkodási ráfordítás · low

Normál díjszabás Ha a gondolkodási ráfordítás értéke low

Gondolkodási ráfordítás · max

Normál díjszabás Ha a gondolkodási ráfordítás értéke max

#### Ailoot-díjak

#### Árak beállításonként

Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.

| Beállítás | Díjtáblázat | Kontextustokenek, több mint | Kontextustokenek, legfeljebb | Díj |
| --- | --- | --- | --- | --- |
| BeállításTokenenkénti alapárak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |
| BeállításA kéréshossz szerinti 1. ársáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek **$0.0028** / 1K token Kimenet · Kimeneti tokenek **$0.0088** / 1K token Bemenet · Gyorsítótár olvasása **$0.00052** / 1K token Bemenet · Írás a gyorsítótárba **—** / 1K token Bemenet · Írás a gyorsítótárba, 1 óra **—** / 1K token |

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 foglalás és az elszámolás működése →](https://ailoot.ai/docs/hu/billing/reserve/)

### Példakérések

#### Ailoot Ultra · Anthropic Messages

Teljes, minimális JSON-törzscurl · használd a saját UTF-8-dokumentumodatPython · mentsd el a teljes eredményt

```json
{
  "model": "~z-ai/glm-latest",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
```

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': '~z-ai/glm-latest', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
```

```python
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': '~z-ai/glm-latest', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
```

### Eredmények fogadása és mentése

#### Ailoot Ultra · Anthropic Messages

JSON vagy SSE

##### Őrizzen meg minden elkészült eredményt

Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.

Ő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.

##### Ha az eredeti választ ellenőrizni kell

Ő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.

Válaszmezők

| Mező | Típus |
| --- | --- |
| Mező`id` | Típusstring |
| Mező`model` | Típusstring |
| Mező`content[]` | Típustext\|thinking\|tool\_use\|other content block |
| Mező`stop_reason` | Típusstring\|null |
| Mező`usage` | Típusobject |

Hibák és következő lépések

| Válasz | Feltétel | Következő lépés |
| --- | --- | --- |
| Válasz400 · `invalid_request_error` | FeltételÉrvénytelen kötelező mezők, az anyag érvénytelen reprezentációja vagy érvénytelen paraméterérték | Következő lépésJavítsa a jelzett mezőket egy új létrehozási kérés előtt. |

### Álnevek

#### Modell álnevei

<strong>Ailoot</strong> [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=messages), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=messages), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=messages), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=messages), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=messages), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=messages)
**Ailoot Ultra** [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=messages), [`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=messages), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=messages)

#### Metódusútvonalak álnevei

`/chat/completions`

#### Kapcsolódó modellazonosítók

[`z-ai/glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=z-ai%2Fglm-5.3&fmt=messages), [`glm`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm&fmt=messages), [`glm-5`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5&fmt=messages), [`glm-5.1`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.1&fmt=messages), [`glm-5.2`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.2&fmt=messages), [`glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-latest&fmt=messages), [`~z-ai/glm-latest`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=~z-ai%2Fglm-latest&fmt=messages), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Core&caller=glm-5.3&fmt=messages), [`glm-5.3`](https://ailoot.ai/models/hu/#m=z-ai%2Fglm-5.3&route=Ultra&caller=glm-5.3&fmt=messages)

FAQ · Z.ai: GLM 5.3

Milyen bemenetek és eredmények érhetők el?

`POST /v1/messages` · `glm-5.3`: `text` → `text` `POST /v1/responses` · `glm-5.3`: `text` → `text` `POST /v1/chat/completions` · `glm-5.3`: `text` → `text` `POST /v1/chat/completions` · `glm-5.3`: `text` → `text` `POST /v1/messages` · `glm-5.3`: `text` → `json`, `sse` `POST /v1/messages` · `glm`: `text` → `text` `POST /v1/responses` · `glm`: `text` → `text` `POST /v1/chat/completions` · `glm`: `text` → `text` `POST /v1/messages` · `glm-5`: `text` → `text` `POST /v1/responses` · `glm-5`: `text` → `text` `POST /v1/chat/completions` · `glm-5`: `text` → `text` `POST /v1/messages` · `glm-5.1`: `text` → `text` `POST /v1/responses` · `glm-5.1`: `text` → `text` `POST /v1/chat/completions` · `glm-5.1`: `text` → `text` `POST /v1/messages` · `glm-5.2`: `text` → `text` `POST /v1/responses` · `glm-5.2`: `text` → `text` `POST /v1/chat/completions` · `glm-5.2`: `text` → `text` `POST /v1/messages` · `glm-latest`: `text` → `text` `POST /v1/responses` · `glm-latest`: `text` → `text` `POST /v1/chat/completions` · `glm-latest`: `text` → `text` `POST /v1/chat/completions` · `z-ai/glm-5.3`: `text` → `text` `POST /v1/messages` · `z-ai/glm-5.3`: `text` → `json`, `sse` `POST /v1/chat/completions` · `~z-ai/glm-latest`: `text` → `text` `POST /v1/messages` · `~z-ai/glm-latest`: `text` → `json`, `sse`

Mely mezőket használja a kérés?

`POST /v1/messages` · `glm-5.3`: `model`, `messages`, `system`, `max_tokens`, `stream`, `metadata` `POST /v1/responses` · `glm-5.3`: `model`, `input`, `instructions`, `stream` `POST /v1/chat/completions` · `glm-5.3`: `model`, `messages`, `stream` `POST /v1/chat/completions` · `glm-5.3`: `model`, `messages`, `stream` `POST /v1/messages` · `glm-5.3`: `model`, `messages`, `max_tokens`, `stream` `POST /v1/messages` · `glm`: `model`, `messages`, `system`, `max_tokens`, `stream`, `metadata` `POST /v1/responses` · `glm`: `model`, `input`, `instructions`, `stream` `POST /v1/chat/completions` · `glm`: `model`, `messages`, `stream` `POST /v1/messages` · `glm-5`: `model`, `messages`, `system`, `max_tokens`, `stream`, `metadata` `POST /v1/responses` · `glm-5`: `model`, `input`, `instructions`, `stream` `POST /v1/chat/completions` · `glm-5`: `model`, `messages`, `stream` `POST /v1/messages` · `glm-5.1`: `model`, `messages`, `system`, `max_tokens`, `stream`, `metadata` `POST /v1/responses` · `glm-5.1`: `model`, `input`, `instructions`, `stream` `POST /v1/chat/completions` · `glm-5.1`: `model`, `messages`, `stream` `POST /v1/messages` · `glm-5.2`: `model`, `messages`, `system`, `max_tokens`, `stream`, `metadata` `POST /v1/responses` · `glm-5.2`: `model`, `input`, `instructions`, `stream` `POST /v1/chat/completions` · `glm-5.2`: `model`, `messages`, `stream` `POST /v1/messages` · `glm-latest`: `model`, `messages`, `system`, `max_tokens`, `stream`, `metadata` `POST /v1/responses` · `glm-latest`: `model`, `input`, `instructions`, `stream` `POST /v1/chat/completions` · `glm-latest`: `model`, `messages`, `stream` `POST /v1/chat/completions` · `z-ai/glm-5.3`: `model`, `messages`, `stream`, `modalities`, `provider` `POST /v1/messages` · `z-ai/glm-5.3`: `model`, `messages`, `max_tokens`, `stream` `POST /v1/chat/completions` · `~z-ai/glm-latest`: `model`, `messages`, `stream`, `modalities`, `provider` `POST /v1/messages` · `~z-ai/glm-latest`: `model`, `messages`, `max_tokens`, `stream`

Milyen korlátok érvényesek?

`POST /v1/messages` · `glm-5.3`: `ctx`: `1000000`; `max_out`: `131072`; `messages.min_items`: `1`; `max_tokens.minimum`: `1` `POST /v1/responses` · `glm-5.3`: `ctx`: `1000000`; `max_out`: `131072` `POST /v1/chat/completions` · `glm-5.3`: `ctx`: `1000000`; `max_out`: `131072`; `messages.min_items`: `1` `POST /v1/chat/completions` · `glm-5.3`: `messages.min_items`: `1` `POST /v1/messages` · `glm`: `ctx`: `1000000`; `max_out`: `131072`; `messages.min_items`: `1`; `max_tokens.minimum`: `1` `POST /v1/responses` · `glm`: `ctx`: `1000000`; `max_out`: `131072` `POST /v1/chat/completions` · `glm`: `ctx`: `1000000`; `max_out`: `131072`; `messages.min_items`: `1` `POST /v1/messages` · `glm-5`: `ctx`: `1000000`; `max_out`: `131072`; `messages.min_items`: `1`; `max_tokens.minimum`: `1` `POST /v1/responses` · `glm-5`: `ctx`: `1000000`; `max_out`: `131072` `POST /v1/chat/completions` · `glm-5`: `ctx`: `1000000`; `max_out`: `131072`; `messages.min_items`: `1` `POST /v1/messages` · `glm-5.1`: `ctx`: `1000000`; `max_out`: `131072`; `messages.min_items`: `1`; `max_tokens.minimum`: `1` `POST /v1/responses` · `glm-5.1`: `ctx`: `1000000`; `max_out`: `131072` `POST /v1/chat/completions` · `glm-5.1`: `ctx`: `1000000`; `max_out`: `131072`; `messages.min_items`: `1` `POST /v1/messages` · `glm-5.2`: `ctx`: `1000000`; `max_out`: `131072`; `messages.min_items`: `1`; `max_tokens.minimum`: `1` `POST /v1/responses` · `glm-5.2`: `ctx`: `1000000`; `max_out`: `131072` `POST /v1/chat/completions` · `glm-5.2`: `ctx`: `1000000`; `max_out`: `131072`; `messages.min_items`: `1` `POST /v1/messages` · `glm-latest`: `ctx`: `1000000`; `max_out`: `131072`; `messages.min_items`: `1`; `max_tokens.minimum`: `1` `POST /v1/responses` · `glm-latest`: `ctx`: `1000000`; `max_out`: `131072` `POST /v1/chat/completions` · `glm-latest`: `ctx`: `1000000`; `max_out`: `131072`; `messages.min_items`: `1` `POST /v1/chat/completions` · `z-ai/glm-5.3`: `messages.min_items`: `1` `POST /v1/chat/completions` · `~z-ai/glm-latest`: `messages.min_items`: `1`

Csatlakoztassa az Ailootot a Claude Code-hoz, OpenCode-hoz, Hermeshez vagy saját alkalmazásához.

## A vállalat és projektportfóliója

A vállalat és projektportfóliója: ügyfelek milliói; havi értékesítés milliárdos nagyságrendben.

## Vásároljon tokeneket kedvezménnyel.

Előfizetési kedvezmény rendszeres munkához. Promókódok — akár 50% tokenvásárlási kedvezmény.

Előfizetés

Válasszon kedvezményes tarifát a rendszeres kéréseihez.

Promókód akár 50%-ig

Vásárláskor adja meg a kódot. Az ár az érvényes akció szerint újraszámolódik.

Költségek az előzményekben

Minden kéréshez megmarad a modell, a tokenek és az összeg.

[Előfizetés kiválasztása](https://ailoot.ai/docs/hu/billing/subscriptions/) · [Modellárak megtekintése](https://ailoot.ai/models/hu/)

## Csatlakoztassa az API-t az értékesített termékéhez.

SaaS, alkalmazások és botok — az Ailoot ajánlati feltételei és licencszerződése alapján. Viszonteladáshoz kérjen viszonteladói licencet.

Kereskedelmi alkalmazás

Építsen szöveg-, kép-, videó- és hanggenerálást szolgáltatása fizetős funkcióiba.

Viszonteladói licenc

Küldje el a projekt leírását és a hozzáférés módját. Kérjen írásos használati és viszonteladási feltételeket.

Dokumentumok a weboldalon

Az ajánlati feltételek, licencszerződés és adatkezelési szabályzat már a csatlakoztatás előtt elérhető.

[Viszonteladói licenc kérése](mailto:support@ailoot.ai) · [Ajánlati feltételek és licencszerződés](https://ailoot.ai/legal/offer?lang=hu)

## Ailoot · A vállalat és projektportfóliója





Az Ailoot felhalmozott működési tapasztalatra, széles ügyfélkörre, stabil szolgáltatásra és folyamatos KPI-ellenőrzésre épít.





A vállalat és projektportfóliója: ügyfelek milliói; havi értékesítés milliárdos nagyságrendben.





Az Ailoot ezt a működési tapasztalatot használja az ügyfelek termékeiben, ágenseiben, alkalmazásaiban és automatizálásaiban elérhető AI-funkciók API-hozzáféréséhez.
