Source: https://ailoot.ai/models/kk/gemini-3-7-flash-high/
Canonical: https://ailoot.ai/models/kk/gemini-3-7-flash-high/
Language: kk

# Gemini 3.7 Flash High

[Markdown](https://ailoot.ai/models/kk/gemini-3-7-flash-high/index.md) · [JSON](https://ailoot.ai/models/kk/gemini-3-7-flash-high/facts.json)

## [Gemini 3.7 Flash High](https://ailoot.ai/models/kk/gemini-3-7-flash-high/)

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

- [**Ailoot · Anthropic хабарламалары** `POST /v1/messages` `gemini-3.7-flash-high`](https://ailoot.ai/models/kk/gemini-3-7-flash-high/#method-0)
- [**Ailoot · Gemini generateContent** `POST /v1beta/models/{model}:generateContent` `gemini-3.7-flash-high`](https://ailoot.ai/models/kk/gemini-3-7-flash-high/#method-1)

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

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

Gemini 3.7 Flash пайымдауы бар мультимодальды модельдер бағытын дамытады. Ол Gemini 3.6 Flash-қа негізделген және пайымдау негізіндегі өзгерістерді, сондай-ақ агенттік бейне түсіну қолдауын қамтиды. Жұмыс сценарийлеріне бағдарламалау, бейнематериалдарды күрделі талдау және бірнеше кезеңі бар процестер кіреді.

#### Кіріс және мәтіндік нәтиже

Google сипаттарына сәйкес, модель **мәтінді, суреттерді, бейнені, аудионы және PDF-ті** түсінеді. Ailoot API-дің ағымдағы каталогында мәтіндік әдістер үшін кірісте **мәтін мен суреттер**, шығыста мәтін мәлімделген. Бейне, аудио және PDF бұл кіріс жиынына кірмейді. Сұраудың ең үлкен көлемі — **1 048 576 кіріс токені**, жауаптікі — **65 536 шығыс токені**. Жауап мәтіндік болып қалады; бұл нұсқа үшін сурет не аудионы дербес генерациялау қолдау таппайды.

#### Пайымдауды басқару

Thinking-тің қолдау табатын үш деңгейі бар: **`low`, `medium` және `high`**. Google сипаттаған базалық модель режимінде стандартты деңгей — `medium`. Бұл мәндер Google-дың базалық моделін сипаттайды; Ailoot API арқылы басқарудың режимі мен қолжетімділігін таңдалған әдіс пен модель нұсқасы анықтайды. Олар қосымша пайымдау қарқындылығын таңдауға мүмкіндік береді. Gemini 3.7 Flash-та `minimal` деңгейі **қолдау таппайды**: мұндай параметр қатеге әкеледі. Пайымдау баптаулары модельдің жұмыс режиміне әсер етеді, бірақ қолдау табатын шығыс модальдылығын өзгертпейді.

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

#### Шекара қай жерде өтеді

Тұрақты `gemini-3.7-flash` нұсқасы 2026 жылғы тамызда жарияланған. Өндіруші кіріктірілген білім шекарасы ретінде 2026 жылғы наурызды көрсетеді, бірақ кей салаларда білім 2025 жылғы қаңтар деңгейінде қалуы мүмкін деген ескерту бар. Сыртқы деректермен жұмыс және берілген материалды түсіну модель бұрыннан білетін мәліметтерден өзгеше.

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

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

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

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

```
Handle malformed input without losing rows

Revise this Python parser: rows = [line.split(",") for line in text.splitlines()]; totals = [int(row[1]) for row in rows]. Input: A,3
B,unknown
C,5. Return valid records plus line-numbered errors; reject extra or missing columns. Include tests for malformed quantity and wrong column count. Keep processing after a bad line.
```

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

```
A proposed parser function, its result shape and tests showing valid rows retained alongside line-numbered errors.
```

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

```
Check that the middle malformed row cannot discard A or C and that column-count errors remain distinct from quantity errors.
```

**Ailoot · Anthropic хабарламалары** `POST /v1/messages` `gemini-3.7-flash-high`

[`gemini-3.7-flash-high`](https://ailoot.ai/models/kk/#m=gemini-3.7-flash-high&route=Core&caller=gemini-3.7-flash-high&fmt=messages)

Google /`gemini-3.7-flash-high`

### Бастау

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

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

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

Нәтижелер

Мәтін

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

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

Кіріс

`text`, `image`

Шығыс

`text`

Контекст

1 048 576 tokens

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

65 536 tokens

Шығыс пішімі

json немесе SSE

| Өріс | Түрі | Талап | Мәндер мен шектеулер | Әдепкі |
| --- | --- | --- | --- | --- |
| Өріс`model` | Түрі`string` | ТалапМіндетті | Мәндер мен шектеулер gemini-3.7-flash-high | Әдепкі— |
| Өріс`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,00075 $ */ 1K*

Шығыс

0,00375 $ */ 1K*

Кэшті оқу

0,000075 $ */ 1K*

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": "gemini-3.7-flash-high", "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": "gemini-3.7-flash-high", "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="gemini-3.7-flash-high",
    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: "gemini-3.7-flash-high",
  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='gemini-3.7-flash-high',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** [`gemini-3.7-flash-high`](https://ailoot.ai/models/kk/#m=gemini-3.7-flash-high&route=Core&caller=gemini-3.7-flash-high&fmt=messages)

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

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

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

[`gemini-3.7-flash-high`](https://ailoot.ai/models/kk/#m=gemini-3.7-flash-high&route=Core&caller=gemini-3.7-flash-high&fmt=messages)

**Ailoot · Gemini generateContent** `POST /v1beta/models/{model}:generateContent` `gemini-3.7-flash-high`

[`gemini-3.7-flash-high`](https://ailoot.ai/models/kk/#m=gemini-3.7-flash-high&route=Core&caller=gemini-3.7-flash-high&fmt=gemini)

Google /`gemini-3.7-flash-high`

### Бастау

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

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

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

Нәтижелер

Мәтін

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

**Ailoot · Gemini generateContent** `POST /v1beta/models/{model}:generateContent`

Кіріс

`text`, `image`

Шығыс

`text`

Шығыс пішімі

json немесе қолдау көрсетілетін ағындық беру

| Өріс | Түрі | Талап | Мәндер мен шектеулер | Әдепкі |
| --- | --- | --- | --- | --- |
| Өріс`path.model` | Түрі`string` | ТалапМіндетті | Мәндер мен шектеулер gemini-3.7-flash-high | Әдепкі— |
| Өріс`contents` | Түрі`content[]` | ТалапМіндетті | Мәндер мен шектеулер Элементтердің ең аз саны: 1 | Әдепкі— |
| Өріс`contents[].role` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер user, model | Әдепкі— |
| Өріс`contents[].parts` | Түрі`part[]` | ТалапМіндетті | Мәндер мен шектеулер | Әдепкі— |
| Өріс`systemInstruction` | Түрі`content` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
| Өріс`generationConfig.maxOutputTokens` | Түрі`integer` | ТалапМіндетті емес | Мәндер мен шектеулер Ең азы: 1 Модельге байланысты | Әдепкі— |
| Өріс`generationConfig.temperature` | Түрі`number` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`generationConfig.topP` | Түрі`number` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`generationConfig.topK` | Түрі`integer` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`generationConfig.stopSequences` | Түрі`string[]` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`generationConfig.thinkingConfig.includeThoughts` | Түрі`boolean` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`generationConfig.thinkingConfig.thinkingBudget` | Түрі`integer` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`tools[].functionDeclarations` | Түрі`function_declaration[]` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`toolConfig.functionCallingConfig.mode` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`safetySettings` | Түрі`object[]` | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
| Өріс`sessionId` | Түрі`string` | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |

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

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

`contents[].parts[].text`

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

`parts[].inlineData={mimeType,data}`

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

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

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

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

### Тарифтер

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

Кіріс

0,00075 $ */ 1K*

Шығыс

0,00375 $ */ 1K*

Кэшті оқу

0,000075 $ */ 1K*

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

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

#### Ailoot · Gemini generateContent

Мәтін мысалыКіріс, сурет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('{"contents": []}')
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["contents"]=[{"role":"user","parts":[{"text":"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/v1beta/models/gemini-3.7-flash-high:generateContent \
  -H "x-goog-api-key: $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('{"contents": [{"role": "user", "parts": [{"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["contents"][0]["parts"].append({"inlineData":{"mimeType":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/v1beta/models/gemini-3.7-flash-high:generateContent \
  -H "x-goog-api-key: $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 google import genai
from google.genai import types
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = genai.Client(
    api_key=os.environ["AILOOT_API_KEY"],
    http_options=types.HttpOptions(base_url="https://api.ailoot.ai"),
)
resp = client.models.generate_content(model="gemini-3.7-flash-high", contents="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_json_dict())
```

```js
import { GoogleGenAI } from "@google/genai";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const ai = new GoogleGenAI({ apiKey: process.env.AILOOT_API_KEY, httpOptions: { baseUrl: "https://api.ailoot.ai" } });
const resp = await ai.models.generateContent({ model: "gemini-3.7-flash-high", contents: "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 google import genai
from google.genai import types
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=genai.Client(api_key=os.environ["AILOOT_API_KEY"],http_options=types.HttpOptions(base_url="https://api.ailoot.ai"))
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))

count=0
with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
    for chunk in client.models.generate_content_stream(model='gemini-3.7-flash-high',contents="Explain observations and hypotheses in three sentences."):
        payload=chunk.to_json_dict()
        log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
        save_result(payload,"stream-chunk-"+str(count))
        count+=1
```

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

#### Ailoot · Gemini generateContent

json немесе қолдау көрсетілетін ағындық беру

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

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

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

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

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

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

| Өріс | Түрі |
| --- | --- |
| Өріс`responseId` | Түріstring |
| Өріс`modelVersion` | Түріstring |
| Өріс`candidates[].content.parts[]` | Түріtext\|inlineData\|functionCall\|other part |
| Өріс`candidates[].finishReason` | Түріstring |
| Өріс`usageMetadata` | Түріobject |

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

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

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

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

**Ailoot** [`gemini-3.7-flash-high`](https://ailoot.ai/models/kk/#m=gemini-3.7-flash-high&route=Core&caller=gemini-3.7-flash-high&fmt=gemini)

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

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

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

[`gemini-3.7-flash-high`](https://ailoot.ai/models/kk/#m=gemini-3.7-flash-high&route=Core&caller=gemini-3.7-flash-high&fmt=gemini)

FAQ · Gemini 3.7 Flash High

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

`POST /v1/messages` · `gemini-3.7-flash-high`: `text`, `image` → `text` `POST /v1beta/models/{model}:generateContent` · `gemini-3.7-flash-high`: `text`, `image` → `text`

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

`POST /v1/messages` · `gemini-3.7-flash-high`: `model`, `messages`, `system`, `max_tokens`, `stream`, `metadata` `POST /v1beta/models/{model}:generateContent` · `gemini-3.7-flash-high`: `contents`, `systemInstruction`, `sessionId`

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

`POST /v1/messages` · `gemini-3.7-flash-high`: `ctx`: `1048576`; `max_out`: `65536`; `messages.min_items`: `1`; `max_tokens.minimum`: `1` `POST /v1beta/models/{model}:generateContent` · `gemini-3.7-flash-high`: `contents.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 арқылы қол жеткізуді қамтамасыз етуге пайдаланады.
