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

# MoonshotAI: Kimi K2.7 Code Highspeed

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

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

Көп қадамды бағдарламалауға және ірі жобалармен жұмыс істеуге арналған жеделдетілген Kimi K2.7 Code.

- [**Ailoot · Anthropic хабарламалары** `POST /v1/messages` `kimi-for-coding-highspeed`](https://ailoot.ai/models/kk/kimi-for-coding-highspeed/#method-0)
- [**Ailoot · OpenAI Responses** `POST /v1/responses` `kimi-for-coding-highspeed`](https://ailoot.ai/models/kk/kimi-for-coding-highspeed/#method-1)
- [**Ailoot · OpenAI чаты** `POST /v1/chat/completions` `kimi-for-coding-highspeed`](https://ailoot.ai/models/kk/kimi-for-coding-highspeed/#method-2)
- [**Ailoot · Anthropic хабарламалары** `POST /v1/messages` `kimi-highspeed`](https://ailoot.ai/models/kk/kimi-for-coding-highspeed/#method-3)
- [**Ailoot · OpenAI Responses** `POST /v1/responses` `kimi-highspeed`](https://ailoot.ai/models/kk/kimi-for-coding-highspeed/#method-4)
- [**Ailoot · OpenAI чаты** `POST /v1/chat/completions` `kimi-highspeed`](https://ailoot.ai/models/kk/kimi-for-coding-highspeed/#method-5)
- [**Ailoot · Anthropic хабарламалары** `POST /v1/messages` `kimi-highspeed-latest`](https://ailoot.ai/models/kk/kimi-for-coding-highspeed/#method-6)
- [**Ailoot · OpenAI Responses** `POST /v1/responses` `kimi-highspeed-latest`](https://ailoot.ai/models/kk/kimi-for-coding-highspeed/#method-7)
- [**Ailoot · OpenAI чаты** `POST /v1/chat/completions` `kimi-highspeed-latest`](https://ailoot.ai/models/kk/kimi-for-coding-highspeed/#method-8)
- [**Ailoot · Anthropic хабарламалары** `POST /v1/messages` `kimi-k2.7-code-highspeed`](https://ailoot.ai/models/kk/kimi-for-coding-highspeed/#method-9)
- [**Ailoot · OpenAI Responses** `POST /v1/responses` `kimi-k2.7-code-highspeed`](https://ailoot.ai/models/kk/kimi-for-coding-highspeed/#method-10)
- [**Ailoot · OpenAI чаты** `POST /v1/chat/completions` `kimi-k2.7-code-highspeed`](https://ailoot.ai/models/kk/kimi-for-coding-highspeed/#method-11)

Модель туралы

Бұл сипаттама модель мүмкіндіктерін қамтиды. Ailoot жүйесінде таңдалған әдіс үшін қолжетімді кіріс, шығыс және параметрлер төменде берілген.

#### Жылдам шығысы бар ұзақ әзірлеу

`kimi-for-coding-highspeed` жеделдетілген Kimi K2.7 Code-ты білдіреді. Ол бірнеше әрекет бойы жалғасатын тапсырмаларға арналған: код базасын рефакторингтеу, функцияны әртүрлі файлдарда іске асыру және ұзақ инженерлік сессияда қатені іздеу. Moonshot AI дерегіне сәйкес, жеделдетілген нұсқа K2.7 Code қабілеттерін сақтап, жауапты шамамен **5–6 есе жылдамырақ** шығарады.

Кодқа мамандануы серверлік жүйелерді, инфрақұрылымды, өнімділікті оңтайландыруды, жүйелік бағдарламалауды, қауіпсіздікті, пайдаланушы интерфейстерін және деректерді өңдеу тапсырмаларын қамтиды. Модель ұзақ контекстте талаптарды сақтауға және құрал нәтижелерін рет-ретімен пайдалануға арналған.

#### Пайымдау қадамдар арасында сақталады

K2.7 Code-та пайымдау үнемі қосулы. Модель оны құралдарға жүгіну арасында қолданады және көп қадамды диалог тарихында сақтайды. Бұл модельде пайымдаусыз лезде жауап беру режимі қарастырылмаған. Келесі қадам жұмыс барысын ескеруі үшін қолданба алдыңғы хабарламаларды толық қайтаруы маңызды.

#### Архитектурасы және кіріс

K2.7 Code жалпы **1 трлн параметрі** және **32 млрд белсенді параметрі** бар сарапшылар қоспасы ретінде құрылған. Онда Multi-head Latent Attention және MoonViT визуалды кодтағышы қолданылады. Жеделдетілген нұсқаның мәлімделген контексті — **262 144 токен**.

Өндіруші K2.7 Code үшін суреттер мен видеоны түсінуді мәлімдейді; модель нұсқаулығында видео кірісі бөлек жүгіну тәсілінің эксперименттік режимі ретінде белгіленген. Бұл карточкада мәтін мен суреттер қолжетімді. Ол мәтіндік жауап қалыптастырады және қосылған функцияларды бағыттай алады. Командаларды іске қосу, түзетулерді қолдану және нәтижені тексеру сыртқы ортада орындалады. Мәтіннің жылдам шығуы жауапты күтуге әсер етеді, бірақ бүкіл тапсырманың ұзақтығы осы әрекеттерге де байланысты.

Практикалық тапсырма

### Практикалық тапсырма

Ағылшын тіліндегі техникалық мысал

```
Remove repeated lookups in a data-processing loop

Review this pseudocode: for each order, fetch_customer(order.customer_id), then append the customer name to its export row. Many orders share a customer, and repeated fetches dominate runtime. Propose a scoped improvement that preserves row order and handles missing customers. Give a test with three orders sharing two customer IDs; do not claim execution.
```

#### Күтілетін нәтиже

```
Revised pseudocode, an explanation of lookup reuse and tests for shared IDs and missing customers.
```

#### Нәтижені тексеру

```
The shared-ID test requires at most one lookup per distinct customer ID and unchanged export-row order.
```

**Ailoot · Anthropic хабарламалары** `POST /v1/messages` `kimi-for-coding-highspeed`

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

Moonshot /`kimi-for-coding-highspeed`

Модель ID

- `kimi-for-coding-highspeed`
- `kimi-highspeed`
- `kimi-highspeed-latest`
- `kimi-k2.7-code-highspeed`

### Бастау

Көп қадамды бағдарламалауға және ірі жобалармен жұмыс істеуге арналған жеделдетілген Kimi K2.7 Code.

Қабылданатын кіріс деректері

Мәтін · Суреттер

Нәтижелер

Мәтін

### Ailoot жүйесінде қолжетімді · кіріс деректері мен әдістер

**Ailoot · Anthropic хабарламалары** `POST /v1/messages`

Кіріс

`text`, `image`

Шығыс

`text`

Контекст

262 144 tokens

Ең үлкен шығыс

65 536 tokens

Шығыс пішімі

json немесе SSE

| Өріс | Түрі | Талап | Мәндер мен шектеулер | Әдепкі |
| --- | --- | --- | --- | --- |
| Өріс`model` | Түрі`string` | ТалапМіндетті | Мәндер мен шектеулер kimi-for-coding-highspeed | Әдепкі— |
| Өріс`messages` | Түрі`message[]` | ТалапМіндетті | Мәндер мен шектеулер Элементтердің ең аз саны: 1 | Әдепкі— |
| Өріс`messages[].role` | Түрі`string` | ТалапМіндетті | Мәндер мен шектеулер user, assistant | Әдепкі— |
| Өріс`messages[].content` | Түрі`string\|content_block[]` | ТалапМіндетті | Мәндер мен шектеулер | Әдепкі— |
| Өріс`system` | Түрі`string\|content_block[]` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`max_tokens` | Түрі`integer` | ТалапМіндетті | Мәндер мен шектеулер Ең азы: 1 Шектеу қолданылатын нысан: таңдалған модельдің/карточканың нақты жоғарғы шегі | Әдепкі— |
| Өріс`stream` | Түрі`boolean` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкіfalse |
| Өріс`temperature` | Түрі`number` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`top_p` | Түрі`number` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`stop_sequences` | Түрі`string[]` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`tools` | Түрі`tool[]` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`tools[].name` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Мына жағдайда қолданылады: құрал берілген | Әдепкі— |
| Өріс`tools[].description` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`tools[].input_schema` | Түрі`JSON_schema` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`tool_choice` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`thinking.type` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`thinking.budget_tokens` | Түрі`integer` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`output_config.effort` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`metadata` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`cache_control` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |

Кіріс материалдарының үйлесімдері

**Мәтін** · UTF8 мәтіні

`messages[].content немесе type=text блогы`

**Мәтін + сурет**

`{type:image,source:{type:base64,media_type,data}} немесе type=url дереккөзі`

Әдіс параметрлері мен өмірлік циклі

| Параметр | Параметр талаптары |
| --- | --- |
| Параметр`material_types` | Параметр талаптарыtext, image |
| Параметр`required` | Параметр талаптарыmodel, messages, max\_tokens |
| Параметр`optional_controls` | Параметр талаптарыnull |
| Параметр`content_type` | Параметр талаптарыapplication/json |
| Параметр`text_file_material` | Параметр талаптарынақты UTF-8 мазмұны мәтін ретінде енгізіледі; файл ID мәндері мен URLs үшін бөлек нақты қолдау қажет |

Өмірлік цикл: `exact retained published method`

Әдіс құрылымдары мен ID мәндері дәл берілген; жеткізушінің мүмкіндігі сұрауды қабылдаудан бөлек қаралады.

### Тарифтер

#### Ailoot әдістерінің мөлшерлемелері

Кіріс

0,0019 $ */ 1K*

Шығыс

0,008 $ */ 1K*

Кэшті оқу

0,00038 $ */ 1K*

Кэшке жазу

0,0019 $ */ 1K*

Кэшке жазу, 5 мин

0,0019 $ */ 1K tokens*

Ailoot сұрау алдында болжамды соманы резервтейді. Нәтижеден кейін өлшенген пайдалану көлемі бойынша қорытынды төлемді шегереді. Ағындық жауап үшін төлем соңғы пайдалану жазбасы негізінде шегеріледі. [Резервтеу мен төлемді есептеу тәртібі →](https://ailoot.ai/docs/kk/billing/reserve/)

### Сұрау мысалдары

#### Ailoot · Anthropic хабарламалары

Мәтін мысалыКіріс, суретPython SDKNode.js SDKPython ағыны

```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-highspeed", "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-highspeed", "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-highspeed",
    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-highspeed",
  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-highspeed',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")
```

### Нәтижелерді алу және сақтау

#### Ailoot · Anthropic хабарламалары

json немесе SSE

##### Барлық дайын нәтижені сақтау

Қайтарылған әр толық жауапты, файлды және мазмұн бөлігін сақтаңыз.

Барлық мазмұн блоктарын, пайымдау қолтаңбаларын және құрал қолданудың нақты ID мәндерін сақтаңыз. SSE блоктарының барлық өзгерістерін жинаңыз; алғашқы мәтіндік блок толық шығыс емес.

##### Бастапқы жауапты тексеру қажет болса

Сұрау мен жауаптың ID мәндерін және тақырыптарын сақтаңыз. Мәтіндік тапсырманы алуға арналған ортақ URL берілмеген.

Жауап өрістері

| Өріс | Түрі |
| --- | --- |
| Өріс`id` | Түріstring |
| Өріс`model` | Түріstring |
| Өріс`content[]` | Түріtext\|thinking\|tool\_use\|other content block |
| Өріс`stop_reason` | Түріstring\|null |
| Өріс`usage` | Түріobject |

Қателер және келесі қадамдар

| Жауап | Шарт | Келесі қадам |
| --- | --- | --- |
| Жауап400 · `invalid_request_error` | ШартМіндетті өрістер, материалды ұсыну тәсілі немесе параметр мәні қате | Келесі қадамЖаңадан жасау сұрауын жібермес бұрын көрсетілген өрістерді түзетіңіз. |

### Балама атаулар

#### Модельдердің балама атаулары

**Ailoot** [`kimi-for-coding-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-for-coding-highspeed&fmt=messages), [`kimi-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed&fmt=messages), [`kimi-highspeed-latest`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed-latest&fmt=messages), [`kimi-k2.7-code-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-k2.7-code-highspeed&fmt=messages)

#### Әдіс жолдарының балама атаулары

Жоғарыда көрсетілген әдіс жолдарын пайдаланыңыз.

#### Шақыруға арналған байланысты ID

[`kimi-for-coding-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-for-coding-highspeed&fmt=messages), [`kimi-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed&fmt=messages), [`kimi-highspeed-latest`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed-latest&fmt=messages), [`kimi-k2.7-code-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-k2.7-code-highspeed&fmt=messages)

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

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

Moonshot /`kimi-for-coding-highspeed`

Модель ID

- `kimi-for-coding-highspeed`
- `kimi-highspeed`
- `kimi-highspeed-latest`
- `kimi-k2.7-code-highspeed`

### Бастау

Көп қадамды бағдарламалауға және ірі жобалармен жұмыс істеуге арналған жеделдетілген Kimi K2.7 Code.

Қабылданатын кіріс деректері

Мәтін · Суреттер

Нәтижелер

Мәтін

### Ailoot жүйесінде қолжетімді · кіріс деректері мен әдістер

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

Кіріс

`text`, `image`

Шығыс

`text`

Контекст

262 144 tokens

Ең үлкен шығыс

65 536 tokens

Шығыс пішімі

json немесе SSE

| Өріс | Түрі | Талап | Мәндер мен шектеулер | Әдепкі |
| --- | --- | --- | --- | --- |
| Өріс`model` | Түрі`string` | ТалапМіндетті | Мәндер мен шектеулер kimi-for-coding-highspeed | Әдепкі— |
| Өріс`input` | Түрі`string\|input_item[]` | ТалапМіндетті | Мәндер мен шектеулер | Әдепкі— |
| Өріс`instructions` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`input[].type` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер message, reasoning, function\_call, function\_call\_output | Әдепкі— |
| Өріс`input[].content` | Түрі`string\|content_part[]` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`input[].call_id` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Мына жағдайда қолданылады: function\_call\_output; нақты қайтарылған call\_id мәнін сақтаңыз | Әдепкі— |
| Өріс`input[].output` | Түрі`string\|content_part[]` | ТалапМіндетті емес | Мәндер мен шектеулер Мына жағдайда қолданылады: function\_call\_output | Әдепкі— |
| Өріс`max_output_tokens` | Түрі`integer` | ТалапМіндетті емес | Мәндер мен шектеулер Ең азы: 1 Модельге байланысты | Әдепкі— |
| Өріс`stream` | Түрі`boolean` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкіfalse |
| Өріс`temperature` | Түрі`number` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`top_p` | Түрі`number` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`tools` | Түрі`tool[]` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`tool_choice` | Түрі`string\|object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`parallel_tool_calls` | Түрі`boolean` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`reasoning.effort` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`reasoning.summary` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`text.format` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`text.verbosity` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`include` | Түрі`string[]` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`store` | Түрі`boolean` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`previous_response_id` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер ID талабы: Қолдау көрсетілетін жалғастырудан алынған нақты жауап ID-і ғана Модельге байланысты | Әдепкі— |
| Өріс`service_tier` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`prompt_cache_key` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`prompt_cache_options` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |

Кіріс материалдарының үйлесімдері

**Мәтін** · UTF8 мәтіні

`кіріс мәтіні немесе input_text бөлігі`

**Мәтін + сурет**

`{type:input_image,image_url}`

Әдіс параметрлері мен өмірлік циклі

| Параметр | Параметр талаптары |
| --- | --- |
| Параметр`material_types` | Параметр талаптарыtext, image |
| Параметр`required` | Параметр талаптарыmodel, input |
| Параметр`optional_controls` | Параметр талаптарыnull |
| Параметр`content_type` | Параметр талаптарыapplication/json |
| Параметр`text_file_material` | Параметр талаптарынақты UTF-8 мазмұны мәтін ретінде енгізіледі; файл ID мәндері мен URLs үшін бөлек нақты қолдау қажет |

Өмірлік цикл: `exact retained published method`

Әдіс құрылымдары мен ID мәндері дәл берілген; жеткізушінің мүмкіндігі сұрауды қабылдаудан бөлек қаралады.

### Тарифтер

#### Ailoot әдістерінің мөлшерлемелері

Кіріс

0,0019 $ */ 1K*

Шығыс

0,008 $ */ 1K*

Кэшті оқу

0,00038 $ */ 1K*

Кэшке жазу

0,0019 $ */ 1K*

Кэшке жазу, 5 мин

0,0019 $ */ 1K tokens*

Ailoot сұрау алдында болжамды соманы резервтейді. Нәтижеден кейін өлшенген пайдалану көлемі бойынша қорытынды төлемді шегереді. Ағындық жауап үшін төлем соңғы пайдалану жазбасы негізінде шегеріледі. [Резервтеу мен төлемді есептеу тәртібі →](https://ailoot.ai/docs/kk/billing/reserve/)

### Сұрау мысалдары

#### Ailoot · OpenAI Responses

Мәтін мысалыКіріс, суретPython SDKNode.js SDKPython ағыны

```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-highspeed", "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-highspeed", "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-highspeed", 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-highspeed", 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-highspeed", 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")
```

### Нәтижелерді алу және сақтау

#### Ailoot · OpenAI Responses

json немесе SSE

##### Барлық дайын нәтижені сақтау

Қайтарылған әр толық жауапты, файлды және мазмұн бөлігін сақтаңыз.

Әр шығыс элементін және мазмұн бөлігін, функцияның нақты call\_id мәнін, шифрланған пайымдауды және пайдалану деректерін сақтаңыз. Ағында оқиғалар мен элементтердің барлық сәйкестендіру деректерін сақтаңыз.

##### Бастапқы жауапты тексеру қажет болса

Сұрау мен жауаптың ID мәндерін және тақырыптарын сақтаңыз. Мәтіндік тапсырманы алуға арналған ортақ URL берілмеген.

Жауап өрістері

| Өріс | Түрі |
| --- | --- |
| Өріс`id` | Түріstring |
| Өріс`status` | Түріstring |
| Өріс`output[]` | Түріmessage\|reasoning\|function\_call\|other item |
| Өріс`output[].content[]` | Түріcontent part |
| Өріс`usage` | Түріobject |

Қателер және келесі қадамдар

| Жауап | Шарт | Келесі қадам |
| --- | --- | --- |
| Жауап400 · `invalid_request_error` | ШартМіндетті өрістер, материалды ұсыну тәсілі немесе параметр мәні қате | Келесі қадамЖаңадан жасау сұрауын жібермес бұрын көрсетілген өрістерді түзетіңіз. |

### Балама атаулар

#### Модельдердің балама атаулары

**Ailoot** [`kimi-for-coding-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-for-coding-highspeed&fmt=responses), [`kimi-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed&fmt=responses), [`kimi-highspeed-latest`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed-latest&fmt=responses), [`kimi-k2.7-code-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-k2.7-code-highspeed&fmt=responses)

#### Әдіс жолдарының балама атаулары

Жоғарыда көрсетілген әдіс жолдарын пайдаланыңыз.

#### Шақыруға арналған байланысты ID

[`kimi-for-coding-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-for-coding-highspeed&fmt=responses), [`kimi-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed&fmt=responses), [`kimi-highspeed-latest`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed-latest&fmt=responses), [`kimi-k2.7-code-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-k2.7-code-highspeed&fmt=responses)

**Ailoot · OpenAI чаты** `POST /v1/chat/completions` `kimi-for-coding-highspeed`

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

Moonshot /`kimi-for-coding-highspeed`

Модель ID

- `kimi-for-coding-highspeed`
- `kimi-highspeed`
- `kimi-highspeed-latest`
- `kimi-k2.7-code-highspeed`

### Бастау

Көп қадамды бағдарламалауға және ірі жобалармен жұмыс істеуге арналған жеделдетілген Kimi K2.7 Code.

Қабылданатын кіріс деректері

Мәтін · Суреттер

Нәтижелер

Мәтін

### Ailoot жүйесінде қолжетімді · кіріс деректері мен әдістер

**Ailoot · OpenAI чаты** `POST /v1/chat/completions`

Кіріс

`text`, `image`

Шығыс

`text`

Контекст

262 144 tokens

Ең үлкен шығыс

65 536 tokens

Шығыс пішімі

json немесе SSE

| Өріс | Түрі | Талап | Мәндер мен шектеулер | Әдепкі |
| --- | --- | --- | --- | --- |
| Өріс`model` | Түрі`string` | ТалапМіндетті | Мәндер мен шектеулер kimi-for-coding-highspeed | Әдепкі— |
| Өріс`messages` | Түрі`message[]` | ТалапМіндетті | Мәндер мен шектеулер Элементтердің ең аз саны: 1 | Әдепкі— |
| Өріс`messages[].role` | Түрі`string` | ТалапМіндетті | Мәндер мен шектеулер Мысалдар: system, user, assistant, tool, function Шарттар: Бұл рөлдер бастапқы кодтағы үйлесімділік түрлерінде айқын көрсетілген; рөлдердің нақты жиыны әр модельге байланысты. Модельге байланысты | Әдепкі— |
| Өріс`messages[].content` | Түрі`string\|content_part[]\|null` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`messages[].tool_calls` | Түрі`tool_call[]` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`messages[].tool_call_id` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Мына жағдайда қолданылады: role=tool; нақты қайтарылған ID мәнін пайдаланыңыз | Әдепкі— |
| Өріс`messages[].name` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`messages[].reasoning_content` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Мына жағдайда қолданылады: Модель пайымдауды пайдаланса, нақты қайтарылған пайымдауды қайта жіберіңіз | Әдепкі— |
| Өріс`messages[].reasoning_details` | Түрі`object\|array` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`max_tokens` | Түрі`integer` | ТалапМіндетті емес | Мәндер мен шектеулер Ең азы: 1 Модельге байланысты | Әдепкі— |
| Өріс`max_completion_tokens` | Түрі`integer` | ТалапМіндетті емес | Мәндер мен шектеулер Ең азы: 1 Модельге байланысты | Әдепкі— |
| Өріс`stream` | Түрі`boolean` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкіfalse |
| Өріс`stream_options.include_usage` | Түрі`boolean` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`temperature` | Түрі`number` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`top_p` | Түрі`number` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`stop` | Түрі`string\|string[]` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`tools` | Түрі`function_tool[]` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`tools[].type` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`tools[].function.name` | Түрі`string` | ТалапМіндетті | Мәндер мен шектеулер Мына жағдайда қолданылады: функция құралы берілген | Әдепкі— |
| Өріс`tools[].function.description` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`tools[].function.parameters` | Түрі`JSON_schema` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`tool_choice` | Түрі`string\|object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`parallel_tool_calls` | Түрі`boolean` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`response_format` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`reasoning_effort` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`reasoning` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`service_tier` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`instructions` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Үйлесімділік өрісі | Әдепкі— |
| Өріс`functions` | Түрі`function[]` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`function_call` | Түрі`string\|object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`prompt_cache_options` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |

Кіріс материалдарының үйлесімдері

**Мәтін** · UTF8 мәтіні

`messages[].content`

**Мәтін + сурет**

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

Әдіс параметрлері мен өмірлік циклі

| Параметр | Параметр талаптары |
| --- | --- |
| Параметр`material_types` | Параметр талаптарыtext, image |
| Параметр`required` | Параметр талаптарыmodel, messages |
| Параметр`optional_controls` | Параметр талаптарыnull |
| Параметр`content_type` | Параметр талаптарыapplication/json |
| Параметр`text_file_material` | Параметр талаптарынақты UTF-8 мазмұны мәтін ретінде енгізіледі; файл ID мәндері мен URLs үшін бөлек нақты қолдау қажет |

Өмірлік цикл: `exact retained published method`

Әдіс құрылымдары мен ID мәндері дәл берілген; жеткізушінің мүмкіндігі сұрауды қабылдаудан бөлек қаралады.

### Тарифтер

#### Ailoot әдістерінің мөлшерлемелері

Кіріс

0,0019 $ */ 1K*

Шығыс

0,008 $ */ 1K*

Кэшті оқу

0,00038 $ */ 1K*

Кэшке жазу

0,0019 $ */ 1K*

Кэшке жазу, 5 мин

0,0019 $ */ 1K tokens*

Ailoot сұрау алдында болжамды соманы резервтейді. Нәтижеден кейін өлшенген пайдалану көлемі бойынша қорытынды төлемді шегереді. Ағындық жауап үшін төлем соңғы пайдалану жазбасы негізінде шегеріледі. [Резервтеу мен төлемді есептеу тәртібі →](https://ailoot.ai/docs/kk/billing/reserve/)

### Сұрау мысалдары

#### Ailoot · OpenAI чаты

Мәтін мысалыКіріс, суретPython SDKNode.js SDKPython ағыны

```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-highspeed", "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-highspeed", "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-highspeed",
    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-highspeed",
  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-highspeed',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")
```

### Нәтижелерді алу және сақтау

#### Ailoot · OpenAI чаты

json немесе SSE

##### Барлық дайын нәтижені сақтау

Қайтарылған әр толық жауапты, файлды және мазмұн бөлігін сақтаңыз.

Әр жауап нұсқасын оның мазмұнымен, құрал шақыруларымен және пайымдауымен бірге сақтаңыз. SSE өзгерістерін жауап нұсқасы мен құрал индексі бойынша жинап, соңғы аяқталу себебі мен пайдалану деректерін сақтаңыз.

##### Бастапқы жауапты тексеру қажет болса

Сұрау мен жауаптың ID мәндерін және тақырыптарын сақтаңыз. Мәтіндік тапсырманы алуға арналған ортақ URL берілмеген.

Жауап өрістері

| Өріс | Түрі |
| --- | --- |
| Өріс`choices[].index` | Түріinteger |
| Өріс`choices[].message.content` | Түріstring\|null |
| Өріс`choices[].message.tool_calls` | Түріtool\_call\[\] |
| Өріс`choices[].message.reasoning_content` | Түріstring |
| Өріс`choices[].message.reasoning_details` | Түріobject\|array |
| Өріс`choices[].finish_reason` | Түріstring\|null |
| Өріс`usage` | Түріobject |

Қателер және келесі қадамдар

| Жауап | Шарт | Келесі қадам |
| --- | --- | --- |
| Жауап400 · `invalid_request_error` | ШартМіндетті өрістер, материалды ұсыну тәсілі немесе параметр мәні қате | Келесі қадамЖаңадан жасау сұрауын жібермес бұрын көрсетілген өрістерді түзетіңіз. |

### Балама атаулар

#### Модельдердің балама атаулары

**Ailoot** [`kimi-for-coding-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-for-coding-highspeed&fmt=chat), [`kimi-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed&fmt=chat), [`kimi-highspeed-latest`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed-latest&fmt=chat), [`kimi-k2.7-code-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-k2.7-code-highspeed&fmt=chat)

#### Әдіс жолдарының балама атаулары

Жоғарыда көрсетілген әдіс жолдарын пайдаланыңыз.

#### Шақыруға арналған байланысты ID

[`kimi-for-coding-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-for-coding-highspeed&fmt=chat), [`kimi-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed&fmt=chat), [`kimi-highspeed-latest`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed-latest&fmt=chat), [`kimi-k2.7-code-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-k2.7-code-highspeed&fmt=chat)

**Ailoot · Anthropic хабарламалары** `POST /v1/messages` `kimi-highspeed`

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

Moonshot /`kimi-highspeed`

Модель ID

- `kimi-for-coding-highspeed`
- `kimi-highspeed`
- `kimi-highspeed-latest`
- `kimi-k2.7-code-highspeed`

### Бастау

Көп қадамды бағдарламалауға және ірі жобалармен жұмыс істеуге арналған жеделдетілген Kimi K2.7 Code.

Қабылданатын кіріс деректері

Мәтін · Суреттер

Нәтижелер

Мәтін

### Ailoot жүйесінде қолжетімді · кіріс деректері мен әдістер

**Ailoot · Anthropic хабарламалары** `POST /v1/messages`

Кіріс

`text`, `image`

Шығыс

`text`

Контекст

262 144 tokens

Ең үлкен шығыс

65 536 tokens

Шығыс пішімі

json немесе SSE

| Өріс | Түрі | Талап | Мәндер мен шектеулер | Әдепкі |
| --- | --- | --- | --- | --- |
| Өріс`model` | Түрі`string` | ТалапМіндетті | Мәндер мен шектеулер kimi-highspeed | Әдепкі— |
| Өріс`messages` | Түрі`message[]` | ТалапМіндетті | Мәндер мен шектеулер Элементтердің ең аз саны: 1 | Әдепкі— |
| Өріс`messages[].role` | Түрі`string` | ТалапМіндетті | Мәндер мен шектеулер user, assistant | Әдепкі— |
| Өріс`messages[].content` | Түрі`string\|content_block[]` | ТалапМіндетті | Мәндер мен шектеулер | Әдепкі— |
| Өріс`system` | Түрі`string\|content_block[]` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`max_tokens` | Түрі`integer` | ТалапМіндетті | Мәндер мен шектеулер Ең азы: 1 Шектеу қолданылатын нысан: таңдалған модельдің/карточканың нақты жоғарғы шегі | Әдепкі— |
| Өріс`stream` | Түрі`boolean` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкіfalse |
| Өріс`temperature` | Түрі`number` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`top_p` | Түрі`number` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`stop_sequences` | Түрі`string[]` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`tools` | Түрі`tool[]` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`tools[].name` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Мына жағдайда қолданылады: құрал берілген | Әдепкі— |
| Өріс`tools[].description` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`tools[].input_schema` | Түрі`JSON_schema` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`tool_choice` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`thinking.type` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`thinking.budget_tokens` | Түрі`integer` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`output_config.effort` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`metadata` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`cache_control` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |

Кіріс материалдарының үйлесімдері

**Мәтін** · UTF8 мәтіні

`messages[].content немесе type=text блогы`

**Мәтін + сурет**

`{type:image,source:{type:base64,media_type,data}} немесе type=url дереккөзі`

Әдіс параметрлері мен өмірлік циклі

| Параметр | Параметр талаптары |
| --- | --- |
| Параметр`material_types` | Параметр талаптарыtext, image |
| Параметр`required` | Параметр талаптарыmodel, messages, max\_tokens |
| Параметр`optional_controls` | Параметр талаптарыnull |
| Параметр`content_type` | Параметр талаптарыapplication/json |
| Параметр`text_file_material` | Параметр талаптарынақты UTF-8 мазмұны мәтін ретінде енгізіледі; файл ID мәндері мен URLs үшін бөлек нақты қолдау қажет |

Өмірлік цикл: `exact retained published method`

Әдіс құрылымдары мен ID мәндері дәл берілген; жеткізушінің мүмкіндігі сұрауды қабылдаудан бөлек қаралады.

### Тарифтер

#### Ailoot әдістерінің мөлшерлемелері

Кіріс

0,0019 $ */ 1K*

Шығыс

0,008 $ */ 1K*

Кэшті оқу

0,00038 $ */ 1K*

Кэшке жазу

0,0019 $ */ 1K*

Кэшке жазу, 5 мин

0,0019 $ */ 1K tokens*

Ailoot сұрау алдында болжамды соманы резервтейді. Нәтижеден кейін өлшенген пайдалану көлемі бойынша қорытынды төлемді шегереді. Ағындық жауап үшін төлем соңғы пайдалану жазбасы негізінде шегеріледі. [Резервтеу мен төлемді есептеу тәртібі →](https://ailoot.ai/docs/kk/billing/reserve/)

### Сұрау мысалдары

#### Ailoot · Anthropic хабарламалары

Мәтін мысалыКіріс, суретPython SDKNode.js SDKPython ағыны

```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-highspeed", "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-highspeed", "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-highspeed",
    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-highspeed",
  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-highspeed',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")
```

### Нәтижелерді алу және сақтау

#### Ailoot · Anthropic хабарламалары

json немесе SSE

##### Барлық дайын нәтижені сақтау

Қайтарылған әр толық жауапты, файлды және мазмұн бөлігін сақтаңыз.

Барлық мазмұн блоктарын, пайымдау қолтаңбаларын және құрал қолданудың нақты ID мәндерін сақтаңыз. SSE блоктарының барлық өзгерістерін жинаңыз; алғашқы мәтіндік блок толық шығыс емес.

##### Бастапқы жауапты тексеру қажет болса

Сұрау мен жауаптың ID мәндерін және тақырыптарын сақтаңыз. Мәтіндік тапсырманы алуға арналған ортақ URL берілмеген.

Жауап өрістері

| Өріс | Түрі |
| --- | --- |
| Өріс`id` | Түріstring |
| Өріс`model` | Түріstring |
| Өріс`content[]` | Түріtext\|thinking\|tool\_use\|other content block |
| Өріс`stop_reason` | Түріstring\|null |
| Өріс`usage` | Түріobject |

Қателер және келесі қадамдар

| Жауап | Шарт | Келесі қадам |
| --- | --- | --- |
| Жауап400 · `invalid_request_error` | ШартМіндетті өрістер, материалды ұсыну тәсілі немесе параметр мәні қате | Келесі қадамЖаңадан жасау сұрауын жібермес бұрын көрсетілген өрістерді түзетіңіз. |

### Балама атаулар

#### Модельдердің балама атаулары

**Ailoot** [`kimi-for-coding-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-for-coding-highspeed&fmt=messages), [`kimi-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed&fmt=messages), [`kimi-highspeed-latest`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed-latest&fmt=messages), [`kimi-k2.7-code-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-k2.7-code-highspeed&fmt=messages)

#### Әдіс жолдарының балама атаулары

Жоғарыда көрсетілген әдіс жолдарын пайдаланыңыз.

#### Шақыруға арналған байланысты ID

[`kimi-for-coding-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-for-coding-highspeed&fmt=messages), [`kimi-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed&fmt=messages), [`kimi-highspeed-latest`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed-latest&fmt=messages), [`kimi-k2.7-code-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-k2.7-code-highspeed&fmt=messages)

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

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

Moonshot /`kimi-highspeed`

Модель ID

- `kimi-for-coding-highspeed`
- `kimi-highspeed`
- `kimi-highspeed-latest`
- `kimi-k2.7-code-highspeed`

### Бастау

Көп қадамды бағдарламалауға және ірі жобалармен жұмыс істеуге арналған жеделдетілген Kimi K2.7 Code.

Қабылданатын кіріс деректері

Мәтін · Суреттер

Нәтижелер

Мәтін

### Ailoot жүйесінде қолжетімді · кіріс деректері мен әдістер

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

Кіріс

`text`, `image`

Шығыс

`text`

Контекст

262 144 tokens

Ең үлкен шығыс

65 536 tokens

Шығыс пішімі

json немесе SSE

| Өріс | Түрі | Талап | Мәндер мен шектеулер | Әдепкі |
| --- | --- | --- | --- | --- |
| Өріс`model` | Түрі`string` | ТалапМіндетті | Мәндер мен шектеулер kimi-highspeed | Әдепкі— |
| Өріс`input` | Түрі`string\|input_item[]` | ТалапМіндетті | Мәндер мен шектеулер | Әдепкі— |
| Өріс`instructions` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`input[].type` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер message, reasoning, function\_call, function\_call\_output | Әдепкі— |
| Өріс`input[].content` | Түрі`string\|content_part[]` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`input[].call_id` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Мына жағдайда қолданылады: function\_call\_output; нақты қайтарылған call\_id мәнін сақтаңыз | Әдепкі— |
| Өріс`input[].output` | Түрі`string\|content_part[]` | ТалапМіндетті емес | Мәндер мен шектеулер Мына жағдайда қолданылады: function\_call\_output | Әдепкі— |
| Өріс`max_output_tokens` | Түрі`integer` | ТалапМіндетті емес | Мәндер мен шектеулер Ең азы: 1 Модельге байланысты | Әдепкі— |
| Өріс`stream` | Түрі`boolean` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкіfalse |
| Өріс`temperature` | Түрі`number` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`top_p` | Түрі`number` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`tools` | Түрі`tool[]` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`tool_choice` | Түрі`string\|object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`parallel_tool_calls` | Түрі`boolean` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`reasoning.effort` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`reasoning.summary` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`text.format` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`text.verbosity` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`include` | Түрі`string[]` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`store` | Түрі`boolean` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`previous_response_id` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер ID талабы: Қолдау көрсетілетін жалғастырудан алынған нақты жауап ID-і ғана Модельге байланысты | Әдепкі— |
| Өріс`service_tier` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`prompt_cache_key` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`prompt_cache_options` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |

Кіріс материалдарының үйлесімдері

**Мәтін** · UTF8 мәтіні

`кіріс мәтіні немесе input_text бөлігі`

**Мәтін + сурет**

`{type:input_image,image_url}`

Әдіс параметрлері мен өмірлік циклі

| Параметр | Параметр талаптары |
| --- | --- |
| Параметр`material_types` | Параметр талаптарыtext, image |
| Параметр`required` | Параметр талаптарыmodel, input |
| Параметр`optional_controls` | Параметр талаптарыnull |
| Параметр`content_type` | Параметр талаптарыapplication/json |
| Параметр`text_file_material` | Параметр талаптарынақты UTF-8 мазмұны мәтін ретінде енгізіледі; файл ID мәндері мен URLs үшін бөлек нақты қолдау қажет |

Өмірлік цикл: `exact retained published method`

Әдіс құрылымдары мен ID мәндері дәл берілген; жеткізушінің мүмкіндігі сұрауды қабылдаудан бөлек қаралады.

### Тарифтер

#### Ailoot әдістерінің мөлшерлемелері

Кіріс

0,0019 $ */ 1K*

Шығыс

0,008 $ */ 1K*

Кэшті оқу

0,00038 $ */ 1K*

Кэшке жазу

0,0019 $ */ 1K*

Кэшке жазу, 5 мин

0,0019 $ */ 1K tokens*

Ailoot сұрау алдында болжамды соманы резервтейді. Нәтижеден кейін өлшенген пайдалану көлемі бойынша қорытынды төлемді шегереді. Ағындық жауап үшін төлем соңғы пайдалану жазбасы негізінде шегеріледі. [Резервтеу мен төлемді есептеу тәртібі →](https://ailoot.ai/docs/kk/billing/reserve/)

### Сұрау мысалдары

#### Ailoot · OpenAI Responses

Мәтін мысалыКіріс, суретPython SDKNode.js SDKPython ағыны

```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-highspeed", "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-highspeed", "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-highspeed", 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-highspeed", 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-highspeed", 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")
```

### Нәтижелерді алу және сақтау

#### Ailoot · OpenAI Responses

json немесе SSE

##### Барлық дайын нәтижені сақтау

Қайтарылған әр толық жауапты, файлды және мазмұн бөлігін сақтаңыз.

Әр шығыс элементін және мазмұн бөлігін, функцияның нақты call\_id мәнін, шифрланған пайымдауды және пайдалану деректерін сақтаңыз. Ағында оқиғалар мен элементтердің барлық сәйкестендіру деректерін сақтаңыз.

##### Бастапқы жауапты тексеру қажет болса

Сұрау мен жауаптың ID мәндерін және тақырыптарын сақтаңыз. Мәтіндік тапсырманы алуға арналған ортақ URL берілмеген.

Жауап өрістері

| Өріс | Түрі |
| --- | --- |
| Өріс`id` | Түріstring |
| Өріс`status` | Түріstring |
| Өріс`output[]` | Түріmessage\|reasoning\|function\_call\|other item |
| Өріс`output[].content[]` | Түріcontent part |
| Өріс`usage` | Түріobject |

Қателер және келесі қадамдар

| Жауап | Шарт | Келесі қадам |
| --- | --- | --- |
| Жауап400 · `invalid_request_error` | ШартМіндетті өрістер, материалды ұсыну тәсілі немесе параметр мәні қате | Келесі қадамЖаңадан жасау сұрауын жібермес бұрын көрсетілген өрістерді түзетіңіз. |

### Балама атаулар

#### Модельдердің балама атаулары

**Ailoot** [`kimi-for-coding-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-for-coding-highspeed&fmt=responses), [`kimi-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed&fmt=responses), [`kimi-highspeed-latest`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed-latest&fmt=responses), [`kimi-k2.7-code-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-k2.7-code-highspeed&fmt=responses)

#### Әдіс жолдарының балама атаулары

Жоғарыда көрсетілген әдіс жолдарын пайдаланыңыз.

#### Шақыруға арналған байланысты ID

[`kimi-for-coding-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-for-coding-highspeed&fmt=responses), [`kimi-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed&fmt=responses), [`kimi-highspeed-latest`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed-latest&fmt=responses), [`kimi-k2.7-code-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-k2.7-code-highspeed&fmt=responses)

**Ailoot · OpenAI чаты** `POST /v1/chat/completions` `kimi-highspeed`

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

Moonshot /`kimi-highspeed`

Модель ID

- `kimi-for-coding-highspeed`
- `kimi-highspeed`
- `kimi-highspeed-latest`
- `kimi-k2.7-code-highspeed`

### Бастау

Көп қадамды бағдарламалауға және ірі жобалармен жұмыс істеуге арналған жеделдетілген Kimi K2.7 Code.

Қабылданатын кіріс деректері

Мәтін · Суреттер

Нәтижелер

Мәтін

### Ailoot жүйесінде қолжетімді · кіріс деректері мен әдістер

**Ailoot · OpenAI чаты** `POST /v1/chat/completions`

Кіріс

`text`, `image`

Шығыс

`text`

Контекст

262 144 tokens

Ең үлкен шығыс

65 536 tokens

Шығыс пішімі

json немесе SSE

| Өріс | Түрі | Талап | Мәндер мен шектеулер | Әдепкі |
| --- | --- | --- | --- | --- |
| Өріс`model` | Түрі`string` | ТалапМіндетті | Мәндер мен шектеулер kimi-highspeed | Әдепкі— |
| Өріс`messages` | Түрі`message[]` | ТалапМіндетті | Мәндер мен шектеулер Элементтердің ең аз саны: 1 | Әдепкі— |
| Өріс`messages[].role` | Түрі`string` | ТалапМіндетті | Мәндер мен шектеулер Мысалдар: system, user, assistant, tool, function Шарттар: Бұл рөлдер бастапқы кодтағы үйлесімділік түрлерінде айқын көрсетілген; рөлдердің нақты жиыны әр модельге байланысты. Модельге байланысты | Әдепкі— |
| Өріс`messages[].content` | Түрі`string\|content_part[]\|null` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`messages[].tool_calls` | Түрі`tool_call[]` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`messages[].tool_call_id` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Мына жағдайда қолданылады: role=tool; нақты қайтарылған ID мәнін пайдаланыңыз | Әдепкі— |
| Өріс`messages[].name` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`messages[].reasoning_content` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Мына жағдайда қолданылады: Модель пайымдауды пайдаланса, нақты қайтарылған пайымдауды қайта жіберіңіз | Әдепкі— |
| Өріс`messages[].reasoning_details` | Түрі`object\|array` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`max_tokens` | Түрі`integer` | ТалапМіндетті емес | Мәндер мен шектеулер Ең азы: 1 Модельге байланысты | Әдепкі— |
| Өріс`max_completion_tokens` | Түрі`integer` | ТалапМіндетті емес | Мәндер мен шектеулер Ең азы: 1 Модельге байланысты | Әдепкі— |
| Өріс`stream` | Түрі`boolean` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкіfalse |
| Өріс`stream_options.include_usage` | Түрі`boolean` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`temperature` | Түрі`number` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`top_p` | Түрі`number` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`stop` | Түрі`string\|string[]` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`tools` | Түрі`function_tool[]` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`tools[].type` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`tools[].function.name` | Түрі`string` | ТалапМіндетті | Мәндер мен шектеулер Мына жағдайда қолданылады: функция құралы берілген | Әдепкі— |
| Өріс`tools[].function.description` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`tools[].function.parameters` | Түрі`JSON_schema` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`tool_choice` | Түрі`string\|object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`parallel_tool_calls` | Түрі`boolean` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`response_format` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`reasoning_effort` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`reasoning` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`service_tier` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`instructions` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Үйлесімділік өрісі | Әдепкі— |
| Өріс`functions` | Түрі`function[]` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`function_call` | Түрі`string\|object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`prompt_cache_options` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |

Кіріс материалдарының үйлесімдері

**Мәтін** · UTF8 мәтіні

`messages[].content`

**Мәтін + сурет**

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

Әдіс параметрлері мен өмірлік циклі

| Параметр | Параметр талаптары |
| --- | --- |
| Параметр`material_types` | Параметр талаптарыtext, image |
| Параметр`required` | Параметр талаптарыmodel, messages |
| Параметр`optional_controls` | Параметр талаптарыnull |
| Параметр`content_type` | Параметр талаптарыapplication/json |
| Параметр`text_file_material` | Параметр талаптарынақты UTF-8 мазмұны мәтін ретінде енгізіледі; файл ID мәндері мен URLs үшін бөлек нақты қолдау қажет |

Өмірлік цикл: `exact retained published method`

Әдіс құрылымдары мен ID мәндері дәл берілген; жеткізушінің мүмкіндігі сұрауды қабылдаудан бөлек қаралады.

### Тарифтер

#### Ailoot әдістерінің мөлшерлемелері

Кіріс

0,0019 $ */ 1K*

Шығыс

0,008 $ */ 1K*

Кэшті оқу

0,00038 $ */ 1K*

Кэшке жазу

0,0019 $ */ 1K*

Кэшке жазу, 5 мин

0,0019 $ */ 1K tokens*

Ailoot сұрау алдында болжамды соманы резервтейді. Нәтижеден кейін өлшенген пайдалану көлемі бойынша қорытынды төлемді шегереді. Ағындық жауап үшін төлем соңғы пайдалану жазбасы негізінде шегеріледі. [Резервтеу мен төлемді есептеу тәртібі →](https://ailoot.ai/docs/kk/billing/reserve/)

### Сұрау мысалдары

#### Ailoot · OpenAI чаты

Мәтін мысалыКіріс, суретPython SDKNode.js SDKPython ағыны

```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-highspeed", "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-highspeed", "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-highspeed",
    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-highspeed",
  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-highspeed',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")
```

### Нәтижелерді алу және сақтау

#### Ailoot · OpenAI чаты

json немесе SSE

##### Барлық дайын нәтижені сақтау

Қайтарылған әр толық жауапты, файлды және мазмұн бөлігін сақтаңыз.

Әр жауап нұсқасын оның мазмұнымен, құрал шақыруларымен және пайымдауымен бірге сақтаңыз. SSE өзгерістерін жауап нұсқасы мен құрал индексі бойынша жинап, соңғы аяқталу себебі мен пайдалану деректерін сақтаңыз.

##### Бастапқы жауапты тексеру қажет болса

Сұрау мен жауаптың ID мәндерін және тақырыптарын сақтаңыз. Мәтіндік тапсырманы алуға арналған ортақ URL берілмеген.

Жауап өрістері

| Өріс | Түрі |
| --- | --- |
| Өріс`choices[].index` | Түріinteger |
| Өріс`choices[].message.content` | Түріstring\|null |
| Өріс`choices[].message.tool_calls` | Түріtool\_call\[\] |
| Өріс`choices[].message.reasoning_content` | Түріstring |
| Өріс`choices[].message.reasoning_details` | Түріobject\|array |
| Өріс`choices[].finish_reason` | Түріstring\|null |
| Өріс`usage` | Түріobject |

Қателер және келесі қадамдар

| Жауап | Шарт | Келесі қадам |
| --- | --- | --- |
| Жауап400 · `invalid_request_error` | ШартМіндетті өрістер, материалды ұсыну тәсілі немесе параметр мәні қате | Келесі қадамЖаңадан жасау сұрауын жібермес бұрын көрсетілген өрістерді түзетіңіз. |

### Балама атаулар

#### Модельдердің балама атаулары

**Ailoot** [`kimi-for-coding-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-for-coding-highspeed&fmt=chat), [`kimi-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed&fmt=chat), [`kimi-highspeed-latest`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed-latest&fmt=chat), [`kimi-k2.7-code-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-k2.7-code-highspeed&fmt=chat)

#### Әдіс жолдарының балама атаулары

Жоғарыда көрсетілген әдіс жолдарын пайдаланыңыз.

#### Шақыруға арналған байланысты ID

[`kimi-for-coding-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-for-coding-highspeed&fmt=chat), [`kimi-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed&fmt=chat), [`kimi-highspeed-latest`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed-latest&fmt=chat), [`kimi-k2.7-code-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-k2.7-code-highspeed&fmt=chat)

**Ailoot · Anthropic хабарламалары** `POST /v1/messages` `kimi-highspeed-latest`

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

Moonshot /`kimi-highspeed-latest`

Модель ID

- `kimi-for-coding-highspeed`
- `kimi-highspeed`
- `kimi-highspeed-latest`
- `kimi-k2.7-code-highspeed`

### Бастау

Көп қадамды бағдарламалауға және ірі жобалармен жұмыс істеуге арналған жеделдетілген Kimi K2.7 Code.

Қабылданатын кіріс деректері

Мәтін · Суреттер

Нәтижелер

Мәтін

### Ailoot жүйесінде қолжетімді · кіріс деректері мен әдістер

**Ailoot · Anthropic хабарламалары** `POST /v1/messages`

Кіріс

`text`, `image`

Шығыс

`text`

Контекст

262 144 tokens

Ең үлкен шығыс

65 536 tokens

Шығыс пішімі

json немесе SSE

| Өріс | Түрі | Талап | Мәндер мен шектеулер | Әдепкі |
| --- | --- | --- | --- | --- |
| Өріс`model` | Түрі`string` | ТалапМіндетті | Мәндер мен шектеулер kimi-highspeed-latest | Әдепкі— |
| Өріс`messages` | Түрі`message[]` | ТалапМіндетті | Мәндер мен шектеулер Элементтердің ең аз саны: 1 | Әдепкі— |
| Өріс`messages[].role` | Түрі`string` | ТалапМіндетті | Мәндер мен шектеулер user, assistant | Әдепкі— |
| Өріс`messages[].content` | Түрі`string\|content_block[]` | ТалапМіндетті | Мәндер мен шектеулер | Әдепкі— |
| Өріс`system` | Түрі`string\|content_block[]` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`max_tokens` | Түрі`integer` | ТалапМіндетті | Мәндер мен шектеулер Ең азы: 1 Шектеу қолданылатын нысан: таңдалған модельдің/карточканың нақты жоғарғы шегі | Әдепкі— |
| Өріс`stream` | Түрі`boolean` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкіfalse |
| Өріс`temperature` | Түрі`number` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`top_p` | Түрі`number` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`stop_sequences` | Түрі`string[]` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`tools` | Түрі`tool[]` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`tools[].name` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Мына жағдайда қолданылады: құрал берілген | Әдепкі— |
| Өріс`tools[].description` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`tools[].input_schema` | Түрі`JSON_schema` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`tool_choice` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`thinking.type` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`thinking.budget_tokens` | Түрі`integer` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`output_config.effort` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`metadata` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`cache_control` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |

Кіріс материалдарының үйлесімдері

**Мәтін** · UTF8 мәтіні

`messages[].content немесе type=text блогы`

**Мәтін + сурет**

`{type:image,source:{type:base64,media_type,data}} немесе type=url дереккөзі`

Әдіс параметрлері мен өмірлік циклі

| Параметр | Параметр талаптары |
| --- | --- |
| Параметр`material_types` | Параметр талаптарыtext, image |
| Параметр`required` | Параметр талаптарыmodel, messages, max\_tokens |
| Параметр`optional_controls` | Параметр талаптарыnull |
| Параметр`content_type` | Параметр талаптарыapplication/json |
| Параметр`text_file_material` | Параметр талаптарынақты UTF-8 мазмұны мәтін ретінде енгізіледі; файл ID мәндері мен URLs үшін бөлек нақты қолдау қажет |

Өмірлік цикл: `exact retained published method`

Әдіс құрылымдары мен ID мәндері дәл берілген; жеткізушінің мүмкіндігі сұрауды қабылдаудан бөлек қаралады.

### Тарифтер

#### Ailoot әдістерінің мөлшерлемелері

Кіріс

0,0019 $ */ 1K*

Шығыс

0,008 $ */ 1K*

Кэшті оқу

0,00038 $ */ 1K*

Кэшке жазу

0,0019 $ */ 1K*

Кэшке жазу, 5 мин

0,0019 $ */ 1K tokens*

Ailoot сұрау алдында болжамды соманы резервтейді. Нәтижеден кейін өлшенген пайдалану көлемі бойынша қорытынды төлемді шегереді. Ағындық жауап үшін төлем соңғы пайдалану жазбасы негізінде шегеріледі. [Резервтеу мен төлемді есептеу тәртібі →](https://ailoot.ai/docs/kk/billing/reserve/)

### Сұрау мысалдары

#### Ailoot · Anthropic хабарламалары

Мәтін мысалыКіріс, суретPython SDKNode.js SDKPython ағыны

```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-highspeed-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
```

```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-highspeed-latest", "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-highspeed-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: "kimi-highspeed-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='kimi-highspeed-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")
```

### Нәтижелерді алу және сақтау

#### Ailoot · Anthropic хабарламалары

json немесе SSE

##### Барлық дайын нәтижені сақтау

Қайтарылған әр толық жауапты, файлды және мазмұн бөлігін сақтаңыз.

Барлық мазмұн блоктарын, пайымдау қолтаңбаларын және құрал қолданудың нақты ID мәндерін сақтаңыз. SSE блоктарының барлық өзгерістерін жинаңыз; алғашқы мәтіндік блок толық шығыс емес.

##### Бастапқы жауапты тексеру қажет болса

Сұрау мен жауаптың ID мәндерін және тақырыптарын сақтаңыз. Мәтіндік тапсырманы алуға арналған ортақ URL берілмеген.

Жауап өрістері

| Өріс | Түрі |
| --- | --- |
| Өріс`id` | Түріstring |
| Өріс`model` | Түріstring |
| Өріс`content[]` | Түріtext\|thinking\|tool\_use\|other content block |
| Өріс`stop_reason` | Түріstring\|null |
| Өріс`usage` | Түріobject |

Қателер және келесі қадамдар

| Жауап | Шарт | Келесі қадам |
| --- | --- | --- |
| Жауап400 · `invalid_request_error` | ШартМіндетті өрістер, материалды ұсыну тәсілі немесе параметр мәні қате | Келесі қадамЖаңадан жасау сұрауын жібермес бұрын көрсетілген өрістерді түзетіңіз. |

### Балама атаулар

#### Модельдердің балама атаулары

**Ailoot** [`kimi-for-coding-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-for-coding-highspeed&fmt=messages), [`kimi-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed&fmt=messages), [`kimi-highspeed-latest`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed-latest&fmt=messages), [`kimi-k2.7-code-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-k2.7-code-highspeed&fmt=messages)

#### Әдіс жолдарының балама атаулары

Жоғарыда көрсетілген әдіс жолдарын пайдаланыңыз.

#### Шақыруға арналған байланысты ID

[`kimi-for-coding-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-for-coding-highspeed&fmt=messages), [`kimi-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed&fmt=messages), [`kimi-highspeed-latest`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed-latest&fmt=messages), [`kimi-k2.7-code-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-k2.7-code-highspeed&fmt=messages)

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

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

Moonshot /`kimi-highspeed-latest`

Модель ID

- `kimi-for-coding-highspeed`
- `kimi-highspeed`
- `kimi-highspeed-latest`
- `kimi-k2.7-code-highspeed`

### Бастау

Көп қадамды бағдарламалауға және ірі жобалармен жұмыс істеуге арналған жеделдетілген Kimi K2.7 Code.

Қабылданатын кіріс деректері

Мәтін · Суреттер

Нәтижелер

Мәтін

### Ailoot жүйесінде қолжетімді · кіріс деректері мен әдістер

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

Кіріс

`text`, `image`

Шығыс

`text`

Контекст

262 144 tokens

Ең үлкен шығыс

65 536 tokens

Шығыс пішімі

json немесе SSE

| Өріс | Түрі | Талап | Мәндер мен шектеулер | Әдепкі |
| --- | --- | --- | --- | --- |
| Өріс`model` | Түрі`string` | ТалапМіндетті | Мәндер мен шектеулер kimi-highspeed-latest | Әдепкі— |
| Өріс`input` | Түрі`string\|input_item[]` | ТалапМіндетті | Мәндер мен шектеулер | Әдепкі— |
| Өріс`instructions` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`input[].type` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер message, reasoning, function\_call, function\_call\_output | Әдепкі— |
| Өріс`input[].content` | Түрі`string\|content_part[]` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`input[].call_id` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Мына жағдайда қолданылады: function\_call\_output; нақты қайтарылған call\_id мәнін сақтаңыз | Әдепкі— |
| Өріс`input[].output` | Түрі`string\|content_part[]` | ТалапМіндетті емес | Мәндер мен шектеулер Мына жағдайда қолданылады: function\_call\_output | Әдепкі— |
| Өріс`max_output_tokens` | Түрі`integer` | ТалапМіндетті емес | Мәндер мен шектеулер Ең азы: 1 Модельге байланысты | Әдепкі— |
| Өріс`stream` | Түрі`boolean` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкіfalse |
| Өріс`temperature` | Түрі`number` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`top_p` | Түрі`number` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`tools` | Түрі`tool[]` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`tool_choice` | Түрі`string\|object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`parallel_tool_calls` | Түрі`boolean` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`reasoning.effort` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`reasoning.summary` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`text.format` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`text.verbosity` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`include` | Түрі`string[]` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`store` | Түрі`boolean` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`previous_response_id` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер ID талабы: Қолдау көрсетілетін жалғастырудан алынған нақты жауап ID-і ғана Модельге байланысты | Әдепкі— |
| Өріс`service_tier` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`prompt_cache_key` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`prompt_cache_options` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |

Кіріс материалдарының үйлесімдері

**Мәтін** · UTF8 мәтіні

`кіріс мәтіні немесе input_text бөлігі`

**Мәтін + сурет**

`{type:input_image,image_url}`

Әдіс параметрлері мен өмірлік циклі

| Параметр | Параметр талаптары |
| --- | --- |
| Параметр`material_types` | Параметр талаптарыtext, image |
| Параметр`required` | Параметр талаптарыmodel, input |
| Параметр`optional_controls` | Параметр талаптарыnull |
| Параметр`content_type` | Параметр талаптарыapplication/json |
| Параметр`text_file_material` | Параметр талаптарынақты UTF-8 мазмұны мәтін ретінде енгізіледі; файл ID мәндері мен URLs үшін бөлек нақты қолдау қажет |

Өмірлік цикл: `exact retained published method`

Әдіс құрылымдары мен ID мәндері дәл берілген; жеткізушінің мүмкіндігі сұрауды қабылдаудан бөлек қаралады.

### Тарифтер

#### Ailoot әдістерінің мөлшерлемелері

Кіріс

0,0019 $ */ 1K*

Шығыс

0,008 $ */ 1K*

Кэшті оқу

0,00038 $ */ 1K*

Кэшке жазу

0,0019 $ */ 1K*

Кэшке жазу, 5 мин

0,0019 $ */ 1K tokens*

Ailoot сұрау алдында болжамды соманы резервтейді. Нәтижеден кейін өлшенген пайдалану көлемі бойынша қорытынды төлемді шегереді. Ағындық жауап үшін төлем соңғы пайдалану жазбасы негізінде шегеріледі. [Резервтеу мен төлемді есептеу тәртібі →](https://ailoot.ai/docs/kk/billing/reserve/)

### Сұрау мысалдары

#### Ailoot · OpenAI Responses

Мәтін мысалыКіріс, суретPython SDKNode.js SDKPython ағыны

```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-highspeed-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
```

```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-highspeed-latest", "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-highspeed-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: "kimi-highspeed-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="kimi-highspeed-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")
```

### Нәтижелерді алу және сақтау

#### Ailoot · OpenAI Responses

json немесе SSE

##### Барлық дайын нәтижені сақтау

Қайтарылған әр толық жауапты, файлды және мазмұн бөлігін сақтаңыз.

Әр шығыс элементін және мазмұн бөлігін, функцияның нақты call\_id мәнін, шифрланған пайымдауды және пайдалану деректерін сақтаңыз. Ағында оқиғалар мен элементтердің барлық сәйкестендіру деректерін сақтаңыз.

##### Бастапқы жауапты тексеру қажет болса

Сұрау мен жауаптың ID мәндерін және тақырыптарын сақтаңыз. Мәтіндік тапсырманы алуға арналған ортақ URL берілмеген.

Жауап өрістері

| Өріс | Түрі |
| --- | --- |
| Өріс`id` | Түріstring |
| Өріс`status` | Түріstring |
| Өріс`output[]` | Түріmessage\|reasoning\|function\_call\|other item |
| Өріс`output[].content[]` | Түріcontent part |
| Өріс`usage` | Түріobject |

Қателер және келесі қадамдар

| Жауап | Шарт | Келесі қадам |
| --- | --- | --- |
| Жауап400 · `invalid_request_error` | ШартМіндетті өрістер, материалды ұсыну тәсілі немесе параметр мәні қате | Келесі қадамЖаңадан жасау сұрауын жібермес бұрын көрсетілген өрістерді түзетіңіз. |

### Балама атаулар

#### Модельдердің балама атаулары

**Ailoot** [`kimi-for-coding-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-for-coding-highspeed&fmt=responses), [`kimi-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed&fmt=responses), [`kimi-highspeed-latest`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed-latest&fmt=responses), [`kimi-k2.7-code-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-k2.7-code-highspeed&fmt=responses)

#### Әдіс жолдарының балама атаулары

Жоғарыда көрсетілген әдіс жолдарын пайдаланыңыз.

#### Шақыруға арналған байланысты ID

[`kimi-for-coding-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-for-coding-highspeed&fmt=responses), [`kimi-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed&fmt=responses), [`kimi-highspeed-latest`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed-latest&fmt=responses), [`kimi-k2.7-code-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-k2.7-code-highspeed&fmt=responses)

**Ailoot · OpenAI чаты** `POST /v1/chat/completions` `kimi-highspeed-latest`

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

Moonshot /`kimi-highspeed-latest`

Модель ID

- `kimi-for-coding-highspeed`
- `kimi-highspeed`
- `kimi-highspeed-latest`
- `kimi-k2.7-code-highspeed`

### Бастау

Көп қадамды бағдарламалауға және ірі жобалармен жұмыс істеуге арналған жеделдетілген Kimi K2.7 Code.

Қабылданатын кіріс деректері

Мәтін · Суреттер

Нәтижелер

Мәтін

### Ailoot жүйесінде қолжетімді · кіріс деректері мен әдістер

**Ailoot · OpenAI чаты** `POST /v1/chat/completions`

Кіріс

`text`, `image`

Шығыс

`text`

Контекст

262 144 tokens

Ең үлкен шығыс

65 536 tokens

Шығыс пішімі

json немесе SSE

| Өріс | Түрі | Талап | Мәндер мен шектеулер | Әдепкі |
| --- | --- | --- | --- | --- |
| Өріс`model` | Түрі`string` | ТалапМіндетті | Мәндер мен шектеулер kimi-highspeed-latest | Әдепкі— |
| Өріс`messages` | Түрі`message[]` | ТалапМіндетті | Мәндер мен шектеулер Элементтердің ең аз саны: 1 | Әдепкі— |
| Өріс`messages[].role` | Түрі`string` | ТалапМіндетті | Мәндер мен шектеулер Мысалдар: system, user, assistant, tool, function Шарттар: Бұл рөлдер бастапқы кодтағы үйлесімділік түрлерінде айқын көрсетілген; рөлдердің нақты жиыны әр модельге байланысты. Модельге байланысты | Әдепкі— |
| Өріс`messages[].content` | Түрі`string\|content_part[]\|null` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`messages[].tool_calls` | Түрі`tool_call[]` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`messages[].tool_call_id` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Мына жағдайда қолданылады: role=tool; нақты қайтарылған ID мәнін пайдаланыңыз | Әдепкі— |
| Өріс`messages[].name` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`messages[].reasoning_content` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Мына жағдайда қолданылады: Модель пайымдауды пайдаланса, нақты қайтарылған пайымдауды қайта жіберіңіз | Әдепкі— |
| Өріс`messages[].reasoning_details` | Түрі`object\|array` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`max_tokens` | Түрі`integer` | ТалапМіндетті емес | Мәндер мен шектеулер Ең азы: 1 Модельге байланысты | Әдепкі— |
| Өріс`max_completion_tokens` | Түрі`integer` | ТалапМіндетті емес | Мәндер мен шектеулер Ең азы: 1 Модельге байланысты | Әдепкі— |
| Өріс`stream` | Түрі`boolean` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкіfalse |
| Өріс`stream_options.include_usage` | Түрі`boolean` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`temperature` | Түрі`number` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`top_p` | Түрі`number` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`stop` | Түрі`string\|string[]` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`tools` | Түрі`function_tool[]` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`tools[].type` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`tools[].function.name` | Түрі`string` | ТалапМіндетті | Мәндер мен шектеулер Мына жағдайда қолданылады: функция құралы берілген | Әдепкі— |
| Өріс`tools[].function.description` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`tools[].function.parameters` | Түрі`JSON_schema` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`tool_choice` | Түрі`string\|object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`parallel_tool_calls` | Түрі`boolean` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`response_format` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`reasoning_effort` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`reasoning` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`service_tier` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`instructions` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Үйлесімділік өрісі | Әдепкі— |
| Өріс`functions` | Түрі`function[]` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`function_call` | Түрі`string\|object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`prompt_cache_options` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |

Кіріс материалдарының үйлесімдері

**Мәтін** · UTF8 мәтіні

`messages[].content`

**Мәтін + сурет**

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

Әдіс параметрлері мен өмірлік циклі

| Параметр | Параметр талаптары |
| --- | --- |
| Параметр`material_types` | Параметр талаптарыtext, image |
| Параметр`required` | Параметр талаптарыmodel, messages |
| Параметр`optional_controls` | Параметр талаптарыnull |
| Параметр`content_type` | Параметр талаптарыapplication/json |
| Параметр`text_file_material` | Параметр талаптарынақты UTF-8 мазмұны мәтін ретінде енгізіледі; файл ID мәндері мен URLs үшін бөлек нақты қолдау қажет |

Өмірлік цикл: `exact retained published method`

Әдіс құрылымдары мен ID мәндері дәл берілген; жеткізушінің мүмкіндігі сұрауды қабылдаудан бөлек қаралады.

### Тарифтер

#### Ailoot әдістерінің мөлшерлемелері

Кіріс

0,0019 $ */ 1K*

Шығыс

0,008 $ */ 1K*

Кэшті оқу

0,00038 $ */ 1K*

Кэшке жазу

0,0019 $ */ 1K*

Кэшке жазу, 5 мин

0,0019 $ */ 1K tokens*

Ailoot сұрау алдында болжамды соманы резервтейді. Нәтижеден кейін өлшенген пайдалану көлемі бойынша қорытынды төлемді шегереді. Ағындық жауап үшін төлем соңғы пайдалану жазбасы негізінде шегеріледі. [Резервтеу мен төлемді есептеу тәртібі →](https://ailoot.ai/docs/kk/billing/reserve/)

### Сұрау мысалдары

#### Ailoot · OpenAI чаты

Мәтін мысалыКіріс, суретPython SDKNode.js SDKPython ағыны

```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-highspeed-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
```

```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-highspeed-latest", "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-highspeed-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: "kimi-highspeed-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='kimi-highspeed-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")
```

### Нәтижелерді алу және сақтау

#### Ailoot · OpenAI чаты

json немесе SSE

##### Барлық дайын нәтижені сақтау

Қайтарылған әр толық жауапты, файлды және мазмұн бөлігін сақтаңыз.

Әр жауап нұсқасын оның мазмұнымен, құрал шақыруларымен және пайымдауымен бірге сақтаңыз. SSE өзгерістерін жауап нұсқасы мен құрал индексі бойынша жинап, соңғы аяқталу себебі мен пайдалану деректерін сақтаңыз.

##### Бастапқы жауапты тексеру қажет болса

Сұрау мен жауаптың ID мәндерін және тақырыптарын сақтаңыз. Мәтіндік тапсырманы алуға арналған ортақ URL берілмеген.

Жауап өрістері

| Өріс | Түрі |
| --- | --- |
| Өріс`choices[].index` | Түріinteger |
| Өріс`choices[].message.content` | Түріstring\|null |
| Өріс`choices[].message.tool_calls` | Түріtool\_call\[\] |
| Өріс`choices[].message.reasoning_content` | Түріstring |
| Өріс`choices[].message.reasoning_details` | Түріobject\|array |
| Өріс`choices[].finish_reason` | Түріstring\|null |
| Өріс`usage` | Түріobject |

Қателер және келесі қадамдар

| Жауап | Шарт | Келесі қадам |
| --- | --- | --- |
| Жауап400 · `invalid_request_error` | ШартМіндетті өрістер, материалды ұсыну тәсілі немесе параметр мәні қате | Келесі қадамЖаңадан жасау сұрауын жібермес бұрын көрсетілген өрістерді түзетіңіз. |

### Балама атаулар

#### Модельдердің балама атаулары

**Ailoot** [`kimi-for-coding-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-for-coding-highspeed&fmt=chat), [`kimi-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed&fmt=chat), [`kimi-highspeed-latest`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed-latest&fmt=chat), [`kimi-k2.7-code-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-k2.7-code-highspeed&fmt=chat)

#### Әдіс жолдарының балама атаулары

Жоғарыда көрсетілген әдіс жолдарын пайдаланыңыз.

#### Шақыруға арналған байланысты ID

[`kimi-for-coding-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-for-coding-highspeed&fmt=chat), [`kimi-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed&fmt=chat), [`kimi-highspeed-latest`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed-latest&fmt=chat), [`kimi-k2.7-code-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-k2.7-code-highspeed&fmt=chat)

**Ailoot · Anthropic хабарламалары** `POST /v1/messages` `kimi-k2.7-code-highspeed`

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

Moonshot /`kimi-k2.7-code-highspeed`

Модель ID

- `kimi-for-coding-highspeed`
- `kimi-highspeed`
- `kimi-highspeed-latest`
- `kimi-k2.7-code-highspeed`

### Бастау

Көп қадамды бағдарламалауға және ірі жобалармен жұмыс істеуге арналған жеделдетілген Kimi K2.7 Code.

Қабылданатын кіріс деректері

Мәтін · Суреттер

Нәтижелер

Мәтін

### Ailoot жүйесінде қолжетімді · кіріс деректері мен әдістер

**Ailoot · Anthropic хабарламалары** `POST /v1/messages`

Кіріс

`text`, `image`

Шығыс

`text`

Контекст

262 144 tokens

Ең үлкен шығыс

65 536 tokens

Шығыс пішімі

json немесе SSE

| Өріс | Түрі | Талап | Мәндер мен шектеулер | Әдепкі |
| --- | --- | --- | --- | --- |
| Өріс`model` | Түрі`string` | ТалапМіндетті | Мәндер мен шектеулер kimi-k2.7-code-highspeed | Әдепкі— |
| Өріс`messages` | Түрі`message[]` | ТалапМіндетті | Мәндер мен шектеулер Элементтердің ең аз саны: 1 | Әдепкі— |
| Өріс`messages[].role` | Түрі`string` | ТалапМіндетті | Мәндер мен шектеулер user, assistant | Әдепкі— |
| Өріс`messages[].content` | Түрі`string\|content_block[]` | ТалапМіндетті | Мәндер мен шектеулер | Әдепкі— |
| Өріс`system` | Түрі`string\|content_block[]` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`max_tokens` | Түрі`integer` | ТалапМіндетті | Мәндер мен шектеулер Ең азы: 1 Шектеу қолданылатын нысан: таңдалған модельдің/карточканың нақты жоғарғы шегі | Әдепкі— |
| Өріс`stream` | Түрі`boolean` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкіfalse |
| Өріс`temperature` | Түрі`number` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`top_p` | Түрі`number` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`stop_sequences` | Түрі`string[]` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`tools` | Түрі`tool[]` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`tools[].name` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Мына жағдайда қолданылады: құрал берілген | Әдепкі— |
| Өріс`tools[].description` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`tools[].input_schema` | Түрі`JSON_schema` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`tool_choice` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`thinking.type` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`thinking.budget_tokens` | Түрі`integer` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`output_config.effort` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`metadata` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`cache_control` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |

Кіріс материалдарының үйлесімдері

**Мәтін** · UTF8 мәтіні

`messages[].content немесе type=text блогы`

**Мәтін + сурет**

`{type:image,source:{type:base64,media_type,data}} немесе type=url дереккөзі`

Әдіс параметрлері мен өмірлік циклі

| Параметр | Параметр талаптары |
| --- | --- |
| Параметр`material_types` | Параметр талаптарыtext, image |
| Параметр`required` | Параметр талаптарыmodel, messages, max\_tokens |
| Параметр`optional_controls` | Параметр талаптарыnull |
| Параметр`content_type` | Параметр талаптарыapplication/json |
| Параметр`text_file_material` | Параметр талаптарынақты UTF-8 мазмұны мәтін ретінде енгізіледі; файл ID мәндері мен URLs үшін бөлек нақты қолдау қажет |

Өмірлік цикл: `exact retained published method`

Әдіс құрылымдары мен ID мәндері дәл берілген; жеткізушінің мүмкіндігі сұрауды қабылдаудан бөлек қаралады.

### Тарифтер

#### Ailoot әдістерінің мөлшерлемелері

Кіріс

0,0019 $ */ 1K*

Шығыс

0,008 $ */ 1K*

Кэшті оқу

0,00038 $ */ 1K*

Кэшке жазу

0,0019 $ */ 1K*

Кэшке жазу, 5 мин

0,0019 $ */ 1K tokens*

Ailoot сұрау алдында болжамды соманы резервтейді. Нәтижеден кейін өлшенген пайдалану көлемі бойынша қорытынды төлемді шегереді. Ағындық жауап үшін төлем соңғы пайдалану жазбасы негізінде шегеріледі. [Резервтеу мен төлемді есептеу тәртібі →](https://ailoot.ai/docs/kk/billing/reserve/)

### Сұрау мысалдары

#### Ailoot · Anthropic хабарламалары

Мәтін мысалыКіріс, суретPython SDKNode.js SDKPython ағыны

```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-k2.7-code-highspeed", "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-k2.7-code-highspeed", "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-k2.7-code-highspeed",
    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-k2.7-code-highspeed",
  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-k2.7-code-highspeed',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")
```

### Нәтижелерді алу және сақтау

#### Ailoot · Anthropic хабарламалары

json немесе SSE

##### Барлық дайын нәтижені сақтау

Қайтарылған әр толық жауапты, файлды және мазмұн бөлігін сақтаңыз.

Барлық мазмұн блоктарын, пайымдау қолтаңбаларын және құрал қолданудың нақты ID мәндерін сақтаңыз. SSE блоктарының барлық өзгерістерін жинаңыз; алғашқы мәтіндік блок толық шығыс емес.

##### Бастапқы жауапты тексеру қажет болса

Сұрау мен жауаптың ID мәндерін және тақырыптарын сақтаңыз. Мәтіндік тапсырманы алуға арналған ортақ URL берілмеген.

Жауап өрістері

| Өріс | Түрі |
| --- | --- |
| Өріс`id` | Түріstring |
| Өріс`model` | Түріstring |
| Өріс`content[]` | Түріtext\|thinking\|tool\_use\|other content block |
| Өріс`stop_reason` | Түріstring\|null |
| Өріс`usage` | Түріobject |

Қателер және келесі қадамдар

| Жауап | Шарт | Келесі қадам |
| --- | --- | --- |
| Жауап400 · `invalid_request_error` | ШартМіндетті өрістер, материалды ұсыну тәсілі немесе параметр мәні қате | Келесі қадамЖаңадан жасау сұрауын жібермес бұрын көрсетілген өрістерді түзетіңіз. |

### Балама атаулар

#### Модельдердің балама атаулары

**Ailoot** [`kimi-for-coding-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-for-coding-highspeed&fmt=messages), [`kimi-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed&fmt=messages), [`kimi-highspeed-latest`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed-latest&fmt=messages), [`kimi-k2.7-code-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-k2.7-code-highspeed&fmt=messages)

#### Әдіс жолдарының балама атаулары

Жоғарыда көрсетілген әдіс жолдарын пайдаланыңыз.

#### Шақыруға арналған байланысты ID

[`kimi-for-coding-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-for-coding-highspeed&fmt=messages), [`kimi-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed&fmt=messages), [`kimi-highspeed-latest`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed-latest&fmt=messages), [`kimi-k2.7-code-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-k2.7-code-highspeed&fmt=messages)

**Ailoot · OpenAI Responses** `POST /v1/responses` `kimi-k2.7-code-highspeed`

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

Moonshot /`kimi-k2.7-code-highspeed`

Модель ID

- `kimi-for-coding-highspeed`
- `kimi-highspeed`
- `kimi-highspeed-latest`
- `kimi-k2.7-code-highspeed`

### Бастау

Көп қадамды бағдарламалауға және ірі жобалармен жұмыс істеуге арналған жеделдетілген Kimi K2.7 Code.

Қабылданатын кіріс деректері

Мәтін · Суреттер

Нәтижелер

Мәтін

### Ailoot жүйесінде қолжетімді · кіріс деректері мен әдістер

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

Кіріс

`text`, `image`

Шығыс

`text`

Контекст

262 144 tokens

Ең үлкен шығыс

65 536 tokens

Шығыс пішімі

json немесе SSE

| Өріс | Түрі | Талап | Мәндер мен шектеулер | Әдепкі |
| --- | --- | --- | --- | --- |
| Өріс`model` | Түрі`string` | ТалапМіндетті | Мәндер мен шектеулер kimi-k2.7-code-highspeed | Әдепкі— |
| Өріс`input` | Түрі`string\|input_item[]` | ТалапМіндетті | Мәндер мен шектеулер | Әдепкі— |
| Өріс`instructions` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`input[].type` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер message, reasoning, function\_call, function\_call\_output | Әдепкі— |
| Өріс`input[].content` | Түрі`string\|content_part[]` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`input[].call_id` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Мына жағдайда қолданылады: function\_call\_output; нақты қайтарылған call\_id мәнін сақтаңыз | Әдепкі— |
| Өріс`input[].output` | Түрі`string\|content_part[]` | ТалапМіндетті емес | Мәндер мен шектеулер Мына жағдайда қолданылады: function\_call\_output | Әдепкі— |
| Өріс`max_output_tokens` | Түрі`integer` | ТалапМіндетті емес | Мәндер мен шектеулер Ең азы: 1 Модельге байланысты | Әдепкі— |
| Өріс`stream` | Түрі`boolean` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкіfalse |
| Өріс`temperature` | Түрі`number` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`top_p` | Түрі`number` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`tools` | Түрі`tool[]` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`tool_choice` | Түрі`string\|object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`parallel_tool_calls` | Түрі`boolean` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`reasoning.effort` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`reasoning.summary` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`text.format` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`text.verbosity` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`include` | Түрі`string[]` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`store` | Түрі`boolean` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`previous_response_id` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер ID талабы: Қолдау көрсетілетін жалғастырудан алынған нақты жауап ID-і ғана Модельге байланысты | Әдепкі— |
| Өріс`service_tier` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`prompt_cache_key` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`prompt_cache_options` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |

Кіріс материалдарының үйлесімдері

**Мәтін** · UTF8 мәтіні

`кіріс мәтіні немесе input_text бөлігі`

**Мәтін + сурет**

`{type:input_image,image_url}`

Әдіс параметрлері мен өмірлік циклі

| Параметр | Параметр талаптары |
| --- | --- |
| Параметр`material_types` | Параметр талаптарыtext, image |
| Параметр`required` | Параметр талаптарыmodel, input |
| Параметр`optional_controls` | Параметр талаптарыnull |
| Параметр`content_type` | Параметр талаптарыapplication/json |
| Параметр`text_file_material` | Параметр талаптарынақты UTF-8 мазмұны мәтін ретінде енгізіледі; файл ID мәндері мен URLs үшін бөлек нақты қолдау қажет |

Өмірлік цикл: `exact retained published method`

Әдіс құрылымдары мен ID мәндері дәл берілген; жеткізушінің мүмкіндігі сұрауды қабылдаудан бөлек қаралады.

### Тарифтер

#### Ailoot әдістерінің мөлшерлемелері

Кіріс

0,0019 $ */ 1K*

Шығыс

0,008 $ */ 1K*

Кэшті оқу

0,00038 $ */ 1K*

Кэшке жазу

0,0019 $ */ 1K*

Кэшке жазу, 5 мин

0,0019 $ */ 1K tokens*

Ailoot сұрау алдында болжамды соманы резервтейді. Нәтижеден кейін өлшенген пайдалану көлемі бойынша қорытынды төлемді шегереді. Ағындық жауап үшін төлем соңғы пайдалану жазбасы негізінде шегеріледі. [Резервтеу мен төлемді есептеу тәртібі →](https://ailoot.ai/docs/kk/billing/reserve/)

### Сұрау мысалдары

#### Ailoot · OpenAI Responses

Мәтін мысалыКіріс, суретPython SDKNode.js SDKPython ағыны

```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-k2.7-code-highspeed", "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-k2.7-code-highspeed", "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-k2.7-code-highspeed", 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-k2.7-code-highspeed", 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-k2.7-code-highspeed", 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")
```

### Нәтижелерді алу және сақтау

#### Ailoot · OpenAI Responses

json немесе SSE

##### Барлық дайын нәтижені сақтау

Қайтарылған әр толық жауапты, файлды және мазмұн бөлігін сақтаңыз.

Әр шығыс элементін және мазмұн бөлігін, функцияның нақты call\_id мәнін, шифрланған пайымдауды және пайдалану деректерін сақтаңыз. Ағында оқиғалар мен элементтердің барлық сәйкестендіру деректерін сақтаңыз.

##### Бастапқы жауапты тексеру қажет болса

Сұрау мен жауаптың ID мәндерін және тақырыптарын сақтаңыз. Мәтіндік тапсырманы алуға арналған ортақ URL берілмеген.

Жауап өрістері

| Өріс | Түрі |
| --- | --- |
| Өріс`id` | Түріstring |
| Өріс`status` | Түріstring |
| Өріс`output[]` | Түріmessage\|reasoning\|function\_call\|other item |
| Өріс`output[].content[]` | Түріcontent part |
| Өріс`usage` | Түріobject |

Қателер және келесі қадамдар

| Жауап | Шарт | Келесі қадам |
| --- | --- | --- |
| Жауап400 · `invalid_request_error` | ШартМіндетті өрістер, материалды ұсыну тәсілі немесе параметр мәні қате | Келесі қадамЖаңадан жасау сұрауын жібермес бұрын көрсетілген өрістерді түзетіңіз. |

### Балама атаулар

#### Модельдердің балама атаулары

**Ailoot** [`kimi-for-coding-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-for-coding-highspeed&fmt=responses), [`kimi-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed&fmt=responses), [`kimi-highspeed-latest`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed-latest&fmt=responses), [`kimi-k2.7-code-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-k2.7-code-highspeed&fmt=responses)

#### Әдіс жолдарының балама атаулары

Жоғарыда көрсетілген әдіс жолдарын пайдаланыңыз.

#### Шақыруға арналған байланысты ID

[`kimi-for-coding-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-for-coding-highspeed&fmt=responses), [`kimi-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed&fmt=responses), [`kimi-highspeed-latest`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed-latest&fmt=responses), [`kimi-k2.7-code-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-k2.7-code-highspeed&fmt=responses)

**Ailoot · OpenAI чаты** `POST /v1/chat/completions` `kimi-k2.7-code-highspeed`

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

Moonshot /`kimi-k2.7-code-highspeed`

Модель ID

- `kimi-for-coding-highspeed`
- `kimi-highspeed`
- `kimi-highspeed-latest`
- `kimi-k2.7-code-highspeed`

### Бастау

Көп қадамды бағдарламалауға және ірі жобалармен жұмыс істеуге арналған жеделдетілген Kimi K2.7 Code.

Қабылданатын кіріс деректері

Мәтін · Суреттер

Нәтижелер

Мәтін

### Ailoot жүйесінде қолжетімді · кіріс деректері мен әдістер

**Ailoot · OpenAI чаты** `POST /v1/chat/completions`

Кіріс

`text`, `image`

Шығыс

`text`

Контекст

262 144 tokens

Ең үлкен шығыс

65 536 tokens

Шығыс пішімі

json немесе SSE

| Өріс | Түрі | Талап | Мәндер мен шектеулер | Әдепкі |
| --- | --- | --- | --- | --- |
| Өріс`model` | Түрі`string` | ТалапМіндетті | Мәндер мен шектеулер kimi-k2.7-code-highspeed | Әдепкі— |
| Өріс`messages` | Түрі`message[]` | ТалапМіндетті | Мәндер мен шектеулер Элементтердің ең аз саны: 1 | Әдепкі— |
| Өріс`messages[].role` | Түрі`string` | ТалапМіндетті | Мәндер мен шектеулер Мысалдар: system, user, assistant, tool, function Шарттар: Бұл рөлдер бастапқы кодтағы үйлесімділік түрлерінде айқын көрсетілген; рөлдердің нақты жиыны әр модельге байланысты. Модельге байланысты | Әдепкі— |
| Өріс`messages[].content` | Түрі`string\|content_part[]\|null` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`messages[].tool_calls` | Түрі`tool_call[]` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`messages[].tool_call_id` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Мына жағдайда қолданылады: role=tool; нақты қайтарылған ID мәнін пайдаланыңыз | Әдепкі— |
| Өріс`messages[].name` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`messages[].reasoning_content` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Мына жағдайда қолданылады: Модель пайымдауды пайдаланса, нақты қайтарылған пайымдауды қайта жіберіңіз | Әдепкі— |
| Өріс`messages[].reasoning_details` | Түрі`object\|array` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`max_tokens` | Түрі`integer` | ТалапМіндетті емес | Мәндер мен шектеулер Ең азы: 1 Модельге байланысты | Әдепкі— |
| Өріс`max_completion_tokens` | Түрі`integer` | ТалапМіндетті емес | Мәндер мен шектеулер Ең азы: 1 Модельге байланысты | Әдепкі— |
| Өріс`stream` | Түрі`boolean` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкіfalse |
| Өріс`stream_options.include_usage` | Түрі`boolean` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`temperature` | Түрі`number` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`top_p` | Түрі`number` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`stop` | Түрі`string\|string[]` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`tools` | Түрі`function_tool[]` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`tools[].type` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`tools[].function.name` | Түрі`string` | ТалапМіндетті | Мәндер мен шектеулер Мына жағдайда қолданылады: функция құралы берілген | Әдепкі— |
| Өріс`tools[].function.description` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`tools[].function.parameters` | Түрі`JSON_schema` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`tool_choice` | Түрі`string\|object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`parallel_tool_calls` | Түрі`boolean` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`response_format` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`reasoning_effort` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`reasoning` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`service_tier` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`instructions` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Үйлесімділік өрісі | Әдепкі— |
| Өріс`functions` | Түрі`function[]` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`function_call` | Түрі`string\|object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`prompt_cache_options` | Түрі`object` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |

Кіріс материалдарының үйлесімдері

**Мәтін** · UTF8 мәтіні

`messages[].content`

**Мәтін + сурет**

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

Әдіс параметрлері мен өмірлік циклі

| Параметр | Параметр талаптары |
| --- | --- |
| Параметр`material_types` | Параметр талаптарыtext, image |
| Параметр`required` | Параметр талаптарыmodel, messages |
| Параметр`optional_controls` | Параметр талаптарыnull |
| Параметр`content_type` | Параметр талаптарыapplication/json |
| Параметр`text_file_material` | Параметр талаптарынақты UTF-8 мазмұны мәтін ретінде енгізіледі; файл ID мәндері мен URLs үшін бөлек нақты қолдау қажет |

Өмірлік цикл: `exact retained published method`

Әдіс құрылымдары мен ID мәндері дәл берілген; жеткізушінің мүмкіндігі сұрауды қабылдаудан бөлек қаралады.

### Тарифтер

#### Ailoot әдістерінің мөлшерлемелері

Кіріс

0,0019 $ */ 1K*

Шығыс

0,008 $ */ 1K*

Кэшті оқу

0,00038 $ */ 1K*

Кэшке жазу

0,0019 $ */ 1K*

Кэшке жазу, 5 мин

0,0019 $ */ 1K tokens*

Ailoot сұрау алдында болжамды соманы резервтейді. Нәтижеден кейін өлшенген пайдалану көлемі бойынша қорытынды төлемді шегереді. Ағындық жауап үшін төлем соңғы пайдалану жазбасы негізінде шегеріледі. [Резервтеу мен төлемді есептеу тәртібі →](https://ailoot.ai/docs/kk/billing/reserve/)

### Сұрау мысалдары

#### Ailoot · OpenAI чаты

Мәтін мысалыКіріс, суретPython SDKNode.js SDKPython ағыны

```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-k2.7-code-highspeed", "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-k2.7-code-highspeed", "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-k2.7-code-highspeed",
    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-k2.7-code-highspeed",
  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-k2.7-code-highspeed',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")
```

### Нәтижелерді алу және сақтау

#### Ailoot · OpenAI чаты

json немесе SSE

##### Барлық дайын нәтижені сақтау

Қайтарылған әр толық жауапты, файлды және мазмұн бөлігін сақтаңыз.

Әр жауап нұсқасын оның мазмұнымен, құрал шақыруларымен және пайымдауымен бірге сақтаңыз. SSE өзгерістерін жауап нұсқасы мен құрал индексі бойынша жинап, соңғы аяқталу себебі мен пайдалану деректерін сақтаңыз.

##### Бастапқы жауапты тексеру қажет болса

Сұрау мен жауаптың ID мәндерін және тақырыптарын сақтаңыз. Мәтіндік тапсырманы алуға арналған ортақ URL берілмеген.

Жауап өрістері

| Өріс | Түрі |
| --- | --- |
| Өріс`choices[].index` | Түріinteger |
| Өріс`choices[].message.content` | Түріstring\|null |
| Өріс`choices[].message.tool_calls` | Түріtool\_call\[\] |
| Өріс`choices[].message.reasoning_content` | Түріstring |
| Өріс`choices[].message.reasoning_details` | Түріobject\|array |
| Өріс`choices[].finish_reason` | Түріstring\|null |
| Өріс`usage` | Түріobject |

Қателер және келесі қадамдар

| Жауап | Шарт | Келесі қадам |
| --- | --- | --- |
| Жауап400 · `invalid_request_error` | ШартМіндетті өрістер, материалды ұсыну тәсілі немесе параметр мәні қате | Келесі қадамЖаңадан жасау сұрауын жібермес бұрын көрсетілген өрістерді түзетіңіз. |

### Балама атаулар

#### Модельдердің балама атаулары

**Ailoot** [`kimi-for-coding-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-for-coding-highspeed&fmt=chat), [`kimi-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed&fmt=chat), [`kimi-highspeed-latest`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed-latest&fmt=chat), [`kimi-k2.7-code-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-k2.7-code-highspeed&fmt=chat)

#### Әдіс жолдарының балама атаулары

Жоғарыда көрсетілген әдіс жолдарын пайдаланыңыз.

#### Шақыруға арналған байланысты ID

[`kimi-for-coding-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-for-coding-highspeed&fmt=chat), [`kimi-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed&fmt=chat), [`kimi-highspeed-latest`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-highspeed-latest&fmt=chat), [`kimi-k2.7-code-highspeed`](https://ailoot.ai/models/kk/#m=kimi-for-coding-highspeed&route=Core&caller=kimi-k2.7-code-highspeed&fmt=chat)

FAQ · MoonshotAI: Kimi K2.7 Code Highspeed

Қандай кіріс деректері мен нәтижелер қолжетімді?

`POST /v1/messages` · `kimi-for-coding-highspeed`: `text`, `image` → `text` `POST /v1/responses` · `kimi-for-coding-highspeed`: `text`, `image` → `text` `POST /v1/chat/completions` · `kimi-for-coding-highspeed`: `text`, `image` → `text` `POST /v1/messages` · `kimi-highspeed`: `text`, `image` → `text` `POST /v1/responses` · `kimi-highspeed`: `text`, `image` → `text` `POST /v1/chat/completions` · `kimi-highspeed`: `text`, `image` → `text` `POST /v1/messages` · `kimi-highspeed-latest`: `text`, `image` → `text` `POST /v1/responses` · `kimi-highspeed-latest`: `text`, `image` → `text` `POST /v1/chat/completions` · `kimi-highspeed-latest`: `text`, `image` → `text` `POST /v1/messages` · `kimi-k2.7-code-highspeed`: `text`, `image` → `text` `POST /v1/responses` · `kimi-k2.7-code-highspeed`: `text`, `image` → `text` `POST /v1/chat/completions` · `kimi-k2.7-code-highspeed`: `text`, `image` → `text`

Сұрау қандай өрістерді пайдаланады?

`POST /v1/messages` · `kimi-for-coding-highspeed`: `model`, `messages`, `system`, `max_tokens`, `stream`, `metadata` `POST /v1/responses` · `kimi-for-coding-highspeed`: `model`, `input`, `instructions`, `stream` `POST /v1/chat/completions` · `kimi-for-coding-highspeed`: `model`, `messages`, `stream` `POST /v1/messages` · `kimi-highspeed`: `model`, `messages`, `system`, `max_tokens`, `stream`, `metadata` `POST /v1/responses` · `kimi-highspeed`: `model`, `input`, `instructions`, `stream` `POST /v1/chat/completions` · `kimi-highspeed`: `model`, `messages`, `stream` `POST /v1/messages` · `kimi-highspeed-latest`: `model`, `messages`, `system`, `max_tokens`, `stream`, `metadata` `POST /v1/responses` · `kimi-highspeed-latest`: `model`, `input`, `instructions`, `stream` `POST /v1/chat/completions` · `kimi-highspeed-latest`: `model`, `messages`, `stream` `POST /v1/messages` · `kimi-k2.7-code-highspeed`: `model`, `messages`, `system`, `max_tokens`, `stream`, `metadata` `POST /v1/responses` · `kimi-k2.7-code-highspeed`: `model`, `input`, `instructions`, `stream` `POST /v1/chat/completions` · `kimi-k2.7-code-highspeed`: `model`, `messages`, `stream`

Қандай шектеулер қолданылады?

`POST /v1/messages` · `kimi-for-coding-highspeed`: `ctx`: `262144`; `max_out`: `65536`; `messages.min_items`: `1`; `max_tokens.minimum`: `1` `POST /v1/responses` · `kimi-for-coding-highspeed`: `ctx`: `262144`; `max_out`: `65536` `POST /v1/chat/completions` · `kimi-for-coding-highspeed`: `ctx`: `262144`; `max_out`: `65536`; `messages.min_items`: `1` `POST /v1/messages` · `kimi-highspeed`: `ctx`: `262144`; `max_out`: `65536`; `messages.min_items`: `1`; `max_tokens.minimum`: `1` `POST /v1/responses` · `kimi-highspeed`: `ctx`: `262144`; `max_out`: `65536` `POST /v1/chat/completions` · `kimi-highspeed`: `ctx`: `262144`; `max_out`: `65536`; `messages.min_items`: `1` `POST /v1/messages` · `kimi-highspeed-latest`: `ctx`: `262144`; `max_out`: `65536`; `messages.min_items`: `1`; `max_tokens.minimum`: `1` `POST /v1/responses` · `kimi-highspeed-latest`: `ctx`: `262144`; `max_out`: `65536` `POST /v1/chat/completions` · `kimi-highspeed-latest`: `ctx`: `262144`; `max_out`: `65536`; `messages.min_items`: `1` `POST /v1/messages` · `kimi-k2.7-code-highspeed`: `ctx`: `262144`; `max_out`: `65536`; `messages.min_items`: `1`; `max_tokens.minimum`: `1` `POST /v1/responses` · `kimi-k2.7-code-highspeed`: `ctx`: `262144`; `max_out`: `65536` `POST /v1/chat/completions` · `kimi-k2.7-code-highspeed`: `ctx`: `262144`; `max_out`: `65536`; `messages.min_items`: `1`

Ailoot-ты Claude Code, OpenCode, Hermes не қолданбаңызға қосыңыз.

## Компания және оның жобалар портфелі

Компания және оның жобалар портфелі: миллиондаған клиент; ай сайынғы сату көлемі миллиардтармен есептеледі.

## Токенді жеңілдікпен сатып алыңыз.

Тұрақты жұмысқа жазылым жеңілдігі. Токен сатып алуға промокодтар — 50% дейін.

Жазылым

Тұрақты сұрауыңызға жеңілдікті тариф таңдаңыз.

50% дейінгі промокод

Сатып алғанда код енгізіңіз. Баға қазіргі науқанмен қайта есептеледі.

Тарихтағы шығындар

Әр сұрауға модель, токен және сома сақталады.

[Жазылым таңдау](https://ailoot.ai/docs/kk/billing/subscriptions/) · [Модель бағасын көру](https://ailoot.ai/models/kk/)

## API-ді сататын өніміңізге қосыңыз.

SaaS, қолданба мен бот Ailoot офертасы және лицензиялық шартына сай. Қайта сатуға реселлер лицензиясын сұраңыз.

Коммерциялық қолданба

Қызметіңіздің ақылы функциясына мәтін, сурет, бейне және дыбыс жасауды қосыңыз.

Реселлер лицензиясы

Жоба сипаттамасы мен кіру схемасын жіберіңіз. Пайдалану мен қайта сатуға жазбаша шарт сұраңыз.

Сайттағы құжаттар

Оферта, лицензиялық шарт және дерек саясаты қоспай тұрып қолжетімді.

[Реселлер лицензиясын сұрау](mailto:support@ailoot.ai) · [Оферта мен лицензиялық шарт](https://ailoot.ai/legal/offer?lang=kk)

## Ailoot · Компания және оның жобалар портфелі





Ailoot жинақталған жұмыс тәжірибесіне, кең клиенттік базаға, тұрақты қызметке және KPI көрсеткіштерін үздіксіз бақылауға сүйенеді.





Компания және оның жобалар портфелі: миллиондаған клиент; ай сайынғы сату көлемі миллиардтармен есептеледі.





Ailoot осы тәжірибені клиенттердің өнімдерінде, агенттерінде, қолданбаларында және автоматтандыруларында жасанды интеллект мүмкіндіктеріне API арқылы қол жеткізуді қамтамасыз етуге пайдаланады.
