Source: https://ailoot.ai/models/hu/kimi-for-coding/
Canonical: https://ailoot.ai/models/hu/kimi-for-coding/
Language: hu

# MoonshotAI: Kimi K2.8 Preview

[Markdown](https://ailoot.ai/models/hu/kimi-for-coding/index.md) · [JSON](https://ailoot.ai/models/hu/kimi-for-coding/facts.json)

## [kimi-for-coding](https://ailoot.ai/models/hu/kimi-for-coding/)

A Kimi K2.8 Preview kódkiegészítéshez, mindennapi fejlesztéshez és eszközös feladatokhoz szolgál; e kártyán szöveg és kép érhető el.

- [**Ailoot · Anthropic Messages** `POST /v1/messages` `kimi-for-coding`](https://ailoot.ai/models/hu/kimi-for-coding/#method-0)
- [**Ailoot · OpenAI Responses** `POST /v1/responses` `kimi-for-coding`](https://ailoot.ai/models/hu/kimi-for-coding/#method-1)
- [**Ailoot · OpenAI Chat** `POST /v1/chat/completions` `kimi-for-coding`](https://ailoot.ai/models/hu/kimi-for-coding/#method-2)

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.

#### Kódkiegészítés és mindennapi fejlesztés

A `kimi-for-coding` azonosító alatt a gyártó jelenleg a Kimi K2.8 Preview modellt adja meg. Rendeltetése a kódkiegészítés, a szokásos fejlesztési feladatok és az egymásra épülő eszközös munka. A modell mérnöki párbeszéd résztvevőjeként használható: követelményeket kap, kódot állít elő, és új információk alapján folytatja a feladatot.

A K2.8 Preview esetében a gyártó a mérnöki feladatok megoldásakor takarékosabb gondolkodást emeli ki. A gyakorlati választás az elemzés mélységéhez kapcsolódik: rövid programkiegészítés és összetett műveletsor eltérő mennyiségű gondolkodást igényelhet.

#### Szabályozható mélység

Elérhető a `low`, a `high` és a `max` szint; az alapértelmezett `max`. A modell gondolkodás nélküli munkát is kínál. Bekapcsolt gondolkodásnál a választott szint határozza meg a feladatfeldolgozás mélységét, a végső eredmény pedig szöveges marad.

#### Kontextus és anyagok

A K2.8 Preview megadott kontextusa eléri az **1 048 576 tokent**. Ez hosszú előzmények és nagy anyagmennyiség feldolgozását teszi lehetővé; az adott kérés elérhető mennyiségét e kártya korlátja szerint kell figyelembe venni.

A gyártónál a K2.8 Preview szöveget, képeket és videót ért meg; ezen Ailoot-kártya elérhető bemenete szöveg és kép. A kép feladatutasítással kombinálható; a fő válasz szöveg. Projektműveletek végrehajtása, információkeresés és fájlmentés a csatlakoztatott eszközök munkájához tartozik.

A K2.8 Preview a modell előzetes verziója. Ezen azonosítóhoz a rendeltetés, a kontextus és a gondolkodási módok megerősítettek; más Kimi-modellek szerkezeti paraméterei nem vonatkoznak rá.

Gyakorlati feladat

### Gyakorlati feladat

Technikai példa angolul

```
Complete a stable deduplication function

Implement unique_by_id(records) in Python. Each record is a dictionary with an id key. Keep the first record for each id, preserve original order, and do not mutate the list or dictionaries. Provide tests with duplicate ids, an empty list and two different records sharing an id. Use the standard library only.
```

#### Várt eredmény

```
The complete function and three small tests demonstrating stable first-occurrence deduplication.
```

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

```
The later record with a repeated id never replaces the first, and input objects are not modified.
```

**Ailoot · Anthropic Messages** `POST /v1/messages` `kimi-for-coding`

[`kimi-for-coding`](https://ailoot.ai/models/hu/#m=kimi-for-coding&route=Core&caller=kimi-for-coding&fmt=messages)

Moonshot /`kimi-for-coding`

### Kezdő lépések

A Kimi K2.8 Preview kódkiegészítéshez, mindennapi fejlesztéshez és eszközös feladatokhoz szolgál; e kártyán szöveg és kép érhető el.

Elfogadott bemenetek

Szöveg · Képek

Eredmények

Szöveg

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

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

Bemenet

`text`, `image`

Kimenet

`text`

Kontextus

262 144 tokens

Maximális kimenet

65 536 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 kimi-for-coding | 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`

**Szöveg + kép**

`{type:image,source:{type:base64,media_type,data}} vagy type=url típusú forrás`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`material_types` | Szerződéstext, image |
| 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,003 USD */ 1K*

Kimenet

0,015 USD */ 1K*

Gyorsítótár olvasása

0,0003 USD */ 1K*

Írás a gyorsítótárba

0,003 USD */ 1K*

Írás a gyorsítótárba, 5 perc

0,003 USD */ 1K tokens*

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.

kimi-for-coding

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

| Beállítás | Elszámolási feltételek | Díj |
| --- | --- | --- |
| Beállításkimi-for-coding · Alapértelmezett beállítások | Elszámolási feltételekAlapértelmezett konfiguráció | Díj Bemenet · Bemenet **0,000686 USD** / 1K token Kimenet · Kimenet **0,00274 USD** / 1K token |

### Példakérések

#### Ailoot · Anthropic Messages

Szöveges példaBemenet, képPython 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": "kimi-for-coding", "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
```

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_FILE:?Set your actual PNG JPEG or WebP image}"
export AILOOT_IMAGE_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "kimi-for-coding", "max_tokens": 1024, "messages": [{"role": "user", "content": [{"type": "text", "text": "Read labels and numbers in this image; flag unreadable text."}]}]}')
import base64
f=Path(os.environ["AILOOT_IMAGE_FILE"])
if not f.is_file():raise SystemExit("Choose an actual PNG JPEG or WebP image")
raw=f.read_bytes()
mime="image/png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "image/jpeg" if raw.startswith(b"\xff\xd8") else "image/webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else None
if not mime:raise SystemExit("Use PNG JPEG or WebP")
b64=base64.b64encode(raw).decode()
p["messages"][0]["content"].append({"type":"image","source":{"type":"base64","media_type":mime,"data":b64}})
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="kimi-for-coding",
    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: "kimi-for-coding",
  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='kimi-for-coding',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

**Ailoot** [`kimi-for-coding`](https://ailoot.ai/models/hu/#m=kimi-for-coding&route=Core&caller=kimi-for-coding&fmt=messages)

#### Metódusútvonalak álnevei

Használja a fent látható metódusútvonalakat.

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

[`kimi-for-coding`](https://ailoot.ai/models/hu/#m=kimi-for-coding&route=Core&caller=kimi-for-coding&fmt=messages)

**Ailoot · OpenAI Responses** `POST /v1/responses` `kimi-for-coding`

[`kimi-for-coding`](https://ailoot.ai/models/hu/#m=kimi-for-coding&route=Core&caller=kimi-for-coding&fmt=responses)

Moonshot /`kimi-for-coding`

### Kezdő lépések

A Kimi K2.8 Preview kódkiegészítéshez, mindennapi fejlesztéshez és eszközös feladatokhoz szolgál; e kártyán szöveg és kép érhető el.

Elfogadott bemenetek

Szöveg · Képek

Eredmények

Szöveg

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

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

Bemenet

`text`, `image`

Kimenet

`text`

Kontextus

262 144 tokens

Maximális kimenet

65 536 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 kimi-for-coding | 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`

**Szöveg + kép**

`{type:input_image,image_url}`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`material_types` | Szerződéstext, image |
| 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,003 USD */ 1K*

Kimenet

0,015 USD */ 1K*

Gyorsítótár olvasása

0,0003 USD */ 1K*

Írás a gyorsítótárba

0,003 USD */ 1K*

Írás a gyorsítótárba, 5 perc

0,003 USD */ 1K tokens*

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.

kimi-for-coding

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

| Beállítás | Elszámolási feltételek | Díj |
| --- | --- | --- |
| Beállításkimi-for-coding · Alapértelmezett beállítások | Elszámolási feltételekAlapértelmezett konfiguráció | Díj Bemenet · Bemenet **0,000686 USD** / 1K token Kimenet · Kimenet **0,00274 USD** / 1K token |

### Példakérések

#### Ailoot · OpenAI Responses

Szöveges példaBemenet, képPython 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": "kimi-for-coding", "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
```

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_FILE:?Set your actual PNG JPEG or WebP image}"
export AILOOT_IMAGE_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "kimi-for-coding", "input": [{"role": "user", "content": [{"type": "input_text", "text": "Read labels and numbers in this image; flag unreadable text."}]}]}')
import base64
f=Path(os.environ["AILOOT_IMAGE_FILE"])
if not f.is_file():raise SystemExit("Choose an actual PNG JPEG or WebP image")
raw=f.read_bytes()
mime="image/png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "image/jpeg" if raw.startswith(b"\xff\xd8") else "image/webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else None
if not mime:raise SystemExit("Use PNG JPEG or WebP")
b64=base64.b64encode(raw).decode()
p["input"][0]["content"].append({"type":"input_image","image_url":"data:"+mime+";base64,"+b64})
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="kimi-for-coding", 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: "kimi-for-coding", 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="kimi-for-coding", 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

**Ailoot** [`kimi-for-coding`](https://ailoot.ai/models/hu/#m=kimi-for-coding&route=Core&caller=kimi-for-coding&fmt=responses)

#### Metódusútvonalak álnevei

Használja a fent látható metódusútvonalakat.

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

[`kimi-for-coding`](https://ailoot.ai/models/hu/#m=kimi-for-coding&route=Core&caller=kimi-for-coding&fmt=responses)

**Ailoot · OpenAI Chat** `POST /v1/chat/completions` `kimi-for-coding`

[`kimi-for-coding`](https://ailoot.ai/models/hu/#m=kimi-for-coding&route=Core&caller=kimi-for-coding&fmt=chat)

Moonshot /`kimi-for-coding`

### Kezdő lépések

A Kimi K2.8 Preview kódkiegészítéshez, mindennapi fejlesztéshez és eszközös feladatokhoz szolgál; e kártyán szöveg és kép érhető el.

Elfogadott bemenetek

Szöveg · Képek

Eredmények

Szöveg

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

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

Bemenet

`text`, `image`

Kimenet

`text`

Kontextus

262 144 tokens

Maximális kimenet

65 536 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 kimi-for-coding | 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`

**Szöveg + kép**

`{type:image_url,image_url:{url,detail}}`

Metódus paraméterei és életciklusa

| Paraméter | Szerződés |
| --- | --- |
| Paraméter`material_types` | Szerződéstext, image |
| 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,003 USD */ 1K*

Kimenet

0,015 USD */ 1K*

Gyorsítótár olvasása

0,0003 USD */ 1K*

Írás a gyorsítótárba

0,003 USD */ 1K*

Írás a gyorsítótárba, 5 perc

0,003 USD */ 1K tokens*

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.

kimi-for-coding

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

| Beállítás | Elszámolási feltételek | Díj |
| --- | --- | --- |
| Beállításkimi-for-coding · Alapértelmezett beállítások | Elszámolási feltételekAlapértelmezett konfiguráció | Díj Bemenet · Bemenet **0,000686 USD** / 1K token Kimenet · Kimenet **0,00274 USD** / 1K token |

### Példakérések

#### Ailoot · OpenAI Chat

Szöveges példaBemenet, képPython 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": "kimi-for-coding", "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
```

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_FILE:?Set your actual PNG JPEG or WebP image}"
export AILOOT_IMAGE_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "kimi-for-coding", "messages": [{"role": "user", "content": [{"type": "text", "text": "Read labels and numbers in this image; flag unreadable text."}]}]}')
import base64
f=Path(os.environ["AILOOT_IMAGE_FILE"])
if not f.is_file():raise SystemExit("Choose an actual PNG JPEG or WebP image")
raw=f.read_bytes()
mime="image/png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "image/jpeg" if raw.startswith(b"\xff\xd8") else "image/webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else None
if not mime:raise SystemExit("Use PNG JPEG or WebP")
b64=base64.b64encode(raw).decode()
p["messages"][0]["content"].append({"type":"image_url","image_url":{"url":"data:"+mime+";base64,"+b64}})
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="kimi-for-coding",
    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: "kimi-for-coding",
  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='kimi-for-coding',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

**Ailoot** [`kimi-for-coding`](https://ailoot.ai/models/hu/#m=kimi-for-coding&route=Core&caller=kimi-for-coding&fmt=chat)

#### Metódusútvonalak álnevei

Használja a fent látható metódusútvonalakat.

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

[`kimi-for-coding`](https://ailoot.ai/models/hu/#m=kimi-for-coding&route=Core&caller=kimi-for-coding&fmt=chat)

FAQ · MoonshotAI: Kimi K2.8 Preview

Milyen bemenetek és eredmények érhetők el?

`POST /v1/messages` · `kimi-for-coding`: `text`, `image` → `text` `POST /v1/responses` · `kimi-for-coding`: `text`, `image` → `text` `POST /v1/chat/completions` · `kimi-for-coding`: `text`, `image` → `text`

Mely mezőket használja a kérés?

`POST /v1/messages` · `kimi-for-coding`: `model`, `messages`, `system`, `max_tokens`, `stream`, `metadata` `POST /v1/responses` · `kimi-for-coding`: `model`, `input`, `instructions`, `stream` `POST /v1/chat/completions` · `kimi-for-coding`: `model`, `messages`, `stream`

Milyen korlátok érvényesek?

`POST /v1/messages` · `kimi-for-coding`: `ctx`: `262144`; `max_out`: `65536`; `messages.min_items`: `1`; `max_tokens.minimum`: `1` `POST /v1/responses` · `kimi-for-coding`: `ctx`: `262144`; `max_out`: `65536` `POST /v1/chat/completions` · `kimi-for-coding`: `ctx`: `262144`; `max_out`: `65536`; `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.
