Source: https://ailoot.ai/models/lt/gemini-3-5-flash-lite/
Canonical: https://ailoot.ai/models/lt/gemini-3-5-flash-lite/
Language: lt

# Google: Gemini 3.5 Flash Lite

[Markdown](https://ailoot.ai/models/lt/gemini-3-5-flash-lite/index.md) · [JSON](https://ailoot.ai/models/lt/gemini-3-5-flash-lite/facts.json)

## [Google: Gemini 3.5 Flash Lite](https://ailoot.ai/models/lt/gemini-3-5-flash-lite/)

Gemini 3.5 Flash-Lite – Google daugiarūšis modelis, skirtas tikslingoms pagalbinių agentų užduotims, dokumentų analizavimui ir pasikartojančiam duomenų ištraukimui. Numatytasis minimal samprotavimas tinka ribotos apimties įrašams; kelių etapų darbui su įrankiais dokumentuoti medium arba high lygiai. Iš teksto, vaizdų, garso, vaizdo įrašų ir PDF jis grąžina tekstą arba struktūrizuotus rezultatus.

- [**Ailoot · Anthropic pranešimai** `POST /v1/messages` `gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/gemini-3-5-flash-lite/#method-0)
- [**Ailoot · Gemini generateContent** `POST /v1beta/models/{model}:generateContent` `gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/gemini-3-5-flash-lite/#method-1)
- [**Ailoot Ultra · OpenAI pokalbis** `POST /v1/chat/completions` `gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/gemini-3-5-flash-lite/#method-2)
- [**Ailoot Ultra · Anthropic pranešimai** `POST /v1/messages` `gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/gemini-3-5-flash-lite/#method-3)
- [**Ailoot · Anthropic pranešimai** `POST /v1/messages` `gemini-flash-lite`](https://ailoot.ai/models/lt/gemini-3-5-flash-lite/#method-4)
- [**Ailoot · Gemini generateContent** `POST /v1beta/models/{model}:generateContent` `gemini-flash-lite`](https://ailoot.ai/models/lt/gemini-3-5-flash-lite/#method-5)
- [**Ailoot · Anthropic pranešimai** `POST /v1/messages` `gemini-flash-lite-latest`](https://ailoot.ai/models/lt/gemini-3-5-flash-lite/#method-6)
- [**Ailoot · Gemini generateContent** `POST /v1beta/models/{model}:generateContent` `gemini-flash-lite-latest`](https://ailoot.ai/models/lt/gemini-3-5-flash-lite/#method-7)
- [**Ailoot Ultra · OpenAI pokalbis** `POST /v1/chat/completions` `google/gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/gemini-3-5-flash-lite/#method-8)
- [**Ailoot Ultra · Anthropic pranešimai** `POST /v1/messages` `google/gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/gemini-3-5-flash-lite/#method-9)

Apie modelį

Šis aprašas apima modelio galimybes. Pasirinktam metodui Ailoot prieinamos įvestys, išvestys ir parinktys nurodytos toliau.

Gemini 3.5 Flash-Lite – Google į vykdymą orientuotas daugiarūšis tekstinis profilis, skirtas pasikartojančiam darbui su duomenimis ir tikslingoms pagalbinių agentų užduotims. Jis sukurtas Gemini 3.1 Flash-Lite pagrindu ir pasižymi geresniu dokumentų supratimu, patikimesniu įrankių naudojimu bei instrukcijų laikymusi kelių ėjimų pokalbiuose. Jis priima tekstą, vaizdus, garsą, vaizdo įrašus ir PDF bei grąžina tekstą. Naudingu rezultatu gali būti vienas ištrauktas įrašas, klasifikacija, trumpas vertimas arba ribotos apimties analizė su įrankiais, atliekama kaip didesnės užduoties dalis.

Analizuodami dokumentus apibrėžkite svarbius laukus ir įrodymus, kuriuos kiekvienas laukas turi išsaugoti. Pateikite reikiamus puslapius ir nurodykite, kaip vaizduoti trūkstamą ar dviprasmišką informaciją. Iš pagalbos pranešimo ištraukite produkto kodą, paminėtą problemą ir ją pagrindžiantį sakinį, atsakyme išsaugodami pranešimo identifikatorių. Jei dokumente yra kelios galimos lauko reikšmės, jos neturi būti tyliai suvestos į vieną spėjamą reikšmę. Struktūrizuotas JSON gali padaryti rezultatą tinkamą vėlesniam apdorojimui, jei jo schema atitinka tikrąją užduotį.

Dokumentuoti samprotavimo lygiai yra minimal, low, medium ir high; numatytasis – minimal. Gamintojas jį rekomenduoja didelės apimties ištraukimui, maršruto parinkimui ir klasifikavimui, o medium arba high tinka savarankiškam pagalbinio agento darbui, apimančiam įrankių iškvietimus, kodo vykdymą ar kelis samprotavimo žingsnius. Vadove šioms ilgesnėms užduotims konkrečiai rekomenduojama didinti pastangas, kad įrankių naudojimas nebūtų nutrauktas per anksti. Todėl vieno lauko ištraukimui ir dokumentų palyginimui su išimtimis naudingi skirtingi pastangų pasirinkimai. Minimal yra šios versijos palaikomas nustatymas, o ne bendras nustatymas, perkeltinas visiems Flash modeliams.

Tikslingoje pagalbinio agento užduotyje turi būti vienas darbas, jo šaltinio medžiaga, leidžiami įrankiai ir reikalinga galutinė forma. Pavyzdžiui, agentas gali patikrinti lentelę pagal nurodytą taisyklę ir grąžinti susijusias eilutes su atitinkamomis reikšmėmis. Gamintojas taip pat akcentuoja lentelių duomenų apdorojimą ir naudotojo sąsajos JavaScript darbus, kuriems padeda lengvas kodo vykdymas. Aplinkinė programa išlieka atsakinga už prašomos funkcijos vykdymą ir tikro rezultato grąžinimą. Užbaigtą rezultatą aiškiai atskirkite nuo neįvykdyto pasiūlymo ar neišspręsto įvesties klausimo.

Tiksliai 3.5 Flash-Lite skirtame puslapyje nurodyti funkcijų iškvietimas, kodo vykdymas, failų paieška, atsakymų pagrindimas paieška, pagrindimas Maps duomenimis ir URL kontekstas; Computer Use pažymėta kaip bandomoji funkcija. Palaikoma struktūrizuota išvestis ir samprotavimas. Kelių ėjimų personažo ar užduoties atveju išsaugokite tikrąsias instrukcijas ir įrankių stebėjimus, kad vėlesni atsakymai tęstų tą pačią užduotį. Kūrėjo vadove pabrėžiamas stipresnis personažo išlaikymas nei 3.1 Flash-Lite. Naudokite glaustą vaidmens ir išvesties sutartį, užuot kiekvienu papildomu kreipimusi iš naujo apibrėžę tikslą.

Vadove šiai versijai senieji atrankos nustatymai ir iš anksto užpildyti galutiniai modelio ėjimai taip pat paskelbiami nebenaudotinais. Ribotos apimties atsakymą valdykite aiškiomis instrukcijomis arba schema, o ne mėginkite pradėti atsakymą sintetiniame model vaidmens ėjime. Kur sąsaja to reikalauja, išsaugokite Gemini 3 samprotavimo parašų kontekstą ir susiekite funkcijų rezultatus su jų iškvietimais. Šios pasirengimo taisyklės leidžia tęsti darbą išlaikant įrodymus, reikalingus tai pačiai užduočiai užbaigti.

Gamintojo kortelėje nurodytas iki 1M kontekstas ir 64K tekstinė išvestis; tikslus API puslapis nurodo 1,048,576 įvesties žetonų ir 65,536 išvesties žetonų. Instrukcijos, įrašai, istorija ir medija visi prisideda prie įvesties parengimo. Gamintojo profiliui nurodytos podėlio, paketinio apdorojimo, Flex ir Priority parinktys. Pasikartojančioms užklausoms naudokite stabilius identifikatorius ir kompaktišką vienodą atsakymo formatą, kad kiekvieną ištraukimą būtų galima palyginti su šaltiniu. Šiame profilyje garso, vaizdo ar vaizdo įrašo įvestis virsta tekstine interpretacija arba transkriptu, o ne sugeneruota kalba ar iliustracija.

Galimi apribojimai – haliucinacijos ir kartais pasitaikantys vėlavimai arba laiko limito viršijimai. Jo žinių riba yra 2026 m. kovas, tačiau kai kuriose srityse žinios ribotos 2025 m. sausio duomenimis. Iš šaltinio priklausantis ištraukimas turi grąžinti tai, ką pagrindžia pateikta medžiaga; klausimams apie dabartinius faktus reikia aktualių įrodymų. Palyginti su 3.1 Flash-Lite, šis profilis prideda dokumentuotas vykdymo ir darbo kompiuteriu galimybes, o 3.6 Flash akcentuoja sudėtingesnį programavimą ir erdvines užduotis. Prieš įtraukdami atsakymą į didesnę darbo eigą, patikrinkite ištrauktus laukus, įrankių rezultatus ir išsaugotas instrukcijas.

Praktinė užduotis

### Praktinė užduotis

Techninis pavyzdys anglų kalba

```
Extract a support message record

Extract fields from message S-91: "The pump P-28 stopped after ten minutes. I bought two, but only one has this issue. Please arrange a replacement." Return message ID, product code, issue, purchased quantity and affected quantity in a small table. Include the exact supporting phrase for each extracted value.
```

#### Laukiamas rezultatas

```
A field/value/evidence table retaining S-91 and separating purchased from affected quantity.
```

#### Rezultato patikra

```
Check that two purchased pumps do not become two defective pumps.
```

**Ailoot · Anthropic pranešimai** `POST /v1/messages` `gemini-3.5-flash-lite`

[`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-3.5-flash-lite&fmt=messages)

Google /`gemini-3.5-flash-lite`

Modelio ID

- `gemini-3.5-flash-lite`
- `gemini-flash-lite`
- `gemini-flash-lite-latest`

### Pradžia

Gemini 3.5 Flash-Lite – Google daugiarūšis modelis, skirtas tikslingoms pagalbinių agentų užduotims, dokumentų analizavimui ir pasikartojančiam duomenų ištraukimui. Numatytasis minimal samprotavimas tinka ribotos apimties įrašams; kelių etapų darbui su įrankiais dokumentuoti medium arba high lygiai. Iš teksto, vaizdų, garso, vaizdo įrašų ir PDF jis grąžina tekstą arba struktūrizuotus rezultatus.

Leidžiamos įvestys

Tekstas · Vaizdai

Rezultatai

Tekstas

### Prieinama Ailoot · įvestys ir metodai

**Ailoot · Anthropic pranešimai** `POST /v1/messages`

Įvestis

`text`, `image`

Išvestis

`text`

Kontekstas

1 048 576 tokens

Didžiausia išvestis

65 536 tokens

Išvesties formatas

json arba SSE

| Laukas | Tipas | Reikalavimas | Reikšmės ir ribos | Numatyta |
| --- | --- | --- | --- | --- |
| Laukas`model` | Tipas`string` | ReikalavimasPrivaloma | Reikšmės ir ribos gemini-3.5-flash-lite | Numatyta— |
| Laukas`messages` | Tipas`message[]` | ReikalavimasPrivaloma | Reikšmės ir ribos Mažiausias elementų skaičius: 1 | Numatyta— |
| Laukas`messages[].role` | Tipas`string` | ReikalavimasPrivaloma | Reikšmės ir ribos user, assistant | Numatyta— |
| Laukas`messages[].content` | Tipas`string\|content_block[]` | ReikalavimasPrivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`system` | Tipas`string\|content_block[]` | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`max_tokens` | Tipas`integer` | ReikalavimasPrivaloma | Reikšmės ir ribos Mažiausia reikšmė: 1 Riba taikoma: konkretus pasirinkto modelio / kortelės limitas | Numatyta— |
| Laukas`stream` | Tipas`boolean` | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatytafalse |
| Laukas`temperature` | Tipas`number` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`top_p` | Tipas`number` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`stop_sequences` | Tipas`string[]` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`tools` | Tipas`tool[]` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`tools[].name` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos Taikoma, kai: pateiktas įrankis | Numatyta— |
| Laukas`tools[].description` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`tools[].input_schema` | Tipas`JSON_schema` | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`tool_choice` | Tipas`object` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`thinking.type` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`thinking.budget_tokens` | Tipas`integer` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`output_config.effort` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`metadata` | Tipas`object` | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`cache_control` | Tipas`object` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |

Įvesties medžiagos deriniai

**Tekstas** · UTF8 tekstas

`messages[].content arba type=text blokas`

**Tekstas + vaizdas**

`{type:image,source:{type:base64,media_type,data}} arba šaltinis type=url`

Metodo parametrai ir gyvavimo ciklas

| Parametras | Specifikacija |
| --- | --- |
| Parametras`material_types` | Specifikacijatext, image |
| Parametras`required` | Specifikacijamodel, messages, max\_tokens |
| Parametras`optional_controls` | Specifikacijanull |
| Parametras`content_type` | Specifikacijaapplication/json |
| Parametras`text_file_material` | Specifikacijatikrasis UTF-8 turinys įterptas kaip tekstas; failų ID/URLs reikia atskiro tiksliai apibrėžto palaikymo |

Gyvavimo ciklas: `exact retained published method`

Metodų struktūros ir ID yra tikslūs; tiekėjo galimybės yra atskirtos nuo užklausos priėmimo.

### Planai

#### Ailoot metodų įkainiai

Įvestis

0,0003 USD */ 1K*

Išvestis

0,0025 USD */ 1K*

Talpyklos skaitymas

≈0,00003 USD */ 1K*

Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. [Kaip veikia rezervavimas ir atsiskaitymas →](https://ailoot.ai/docs/lt/billing/reserve/)

#### Informacinio tarifo duomenys

Modelio informacinės lentelės nekeičia metodo pasirinkimo, kainos įverčių ar mokesčių. Galiojantys mokesčiai nustatomi pagal pasirinkto Ailoot metodo įkainius.

Modelio informacinės lentelės

#### Kainos pagal konfigūraciją

Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.

| Konfigūracija | Įkainių lentelė | Konteksto tokenų daugiau nei | Konteksto tokenų iki imtinai | Mokestis |
| --- | --- | --- | --- | --- |
| KonfigūracijaOpenAI Chat · Baziniai žetonų įkainiai | Įkainių lentelėBazinis įkainis | Konteksto tokenų daugiau nei— | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |
| KonfigūracijaOpenAI Chat · Užklausos ilgio pakopa 1 | Įkainių lentelė— | Konteksto tokenų daugiau nei0 | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |
| KonfigūracijaAnthropic Messages · Baziniai žetonų įkainiai | Įkainių lentelėBazinis įkainis | Konteksto tokenų daugiau nei— | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |
| KonfigūracijaAnthropic Messages · Užklausos ilgio pakopa 1 | Įkainių lentelė— | Konteksto tokenų daugiau nei0 | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |

### Užklausų pavyzdžiai

#### Ailoot · Anthropic pranešimai

Teksto pavyzdysĮvestis, vaizdasPython SDKNode.js SDKPython srautas

```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.5-flash-lite", "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.5-flash-lite", "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.5-flash-lite",
    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.5-flash-lite",
  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.5-flash-lite',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")
```

### Gauti ir išsaugoti rezultatus

#### Ailoot · Anthropic pranešimai

json arba SSE

##### Išsaugoti visus baigtus rezultatus

Išsaugokite kiekvieną visą grąžintą atsakymą, failą ir turinio dalį.

Išsaugokite visus turinio blokus, mąstymo parašus ir tikruosius įrankių naudojimo ID. Surinkite visus SSE blokų prieaugius; pirmasis teksto blokas nėra visa išvestis.

##### Jei reikia patikrinti pradinį atsakymą

Išsaugokite užklausų / atsakymų ID ir antraštes. Bendras teksto užduoties gavimo URL nepateikiamas.

Atsakymo laukai

| Laukas | Tipas |
| --- | --- |
| Laukas`id` | Tipasstring |
| Laukas`model` | Tipasstring |
| Laukas`content[]` | Tipastext\|thinking\|tool\_use\|other content block |
| Laukas`stop_reason` | Tipasstring\|null |
| Laukas`usage` | Tipasobject |

Klaidos ir tolesni veiksmai

| Atsakymas | Sąlyga | Kitas žingsnis |
| --- | --- | --- |
| Atsakymas400 · `invalid_request_error` | SąlygaNetinkami privalomi laukai, medžiagos pateikimo forma arba parametro reikšmė | Kitas žingsnisPrieš naują kūrimo užklausą pataisykite nurodytus laukus. |

### Pseudonimai

#### Modelių pseudonimai

<strong>Ailoot</strong> [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-3.5-flash-lite&fmt=messages), [`gemini-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite&fmt=messages), [`gemini-flash-lite-latest`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite-latest&fmt=messages)
**Ailoot Ultra** [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=gemini-3.5-flash-lite&fmt=messages), [`google/gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=google%2Fgemini-3.5-flash-lite&fmt=messages)

#### Metodų kelių pseudonimai

`/chat/completions`

#### Susiję ID iškvietimui

[`google/gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=google%2Fgemini-3.5-flash-lite&fmt=messages), [`gemini-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite&fmt=messages), [`gemini-flash-lite-latest`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite-latest&fmt=messages), [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-3.5-flash-lite&fmt=messages), [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=gemini-3.5-flash-lite&fmt=messages)

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

[`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-3.5-flash-lite&fmt=gemini)

Google /`gemini-3.5-flash-lite`

Modelio ID

- `gemini-3.5-flash-lite`
- `gemini-flash-lite`
- `gemini-flash-lite-latest`

### Pradžia

Gemini 3.5 Flash-Lite – Google daugiarūšis modelis, skirtas tikslingoms pagalbinių agentų užduotims, dokumentų analizavimui ir pasikartojančiam duomenų ištraukimui. Numatytasis minimal samprotavimas tinka ribotos apimties įrašams; kelių etapų darbui su įrankiais dokumentuoti medium arba high lygiai. Iš teksto, vaizdų, garso, vaizdo įrašų ir PDF jis grąžina tekstą arba struktūrizuotus rezultatus.

Leidžiamos įvestys

Tekstas · Vaizdai

Rezultatai

Tekstas

### Prieinama Ailoot · įvestys ir metodai

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

Įvestis

`text`, `image`

Išvestis

`text`

Išvesties formatas

json arba palaikomas srautinis perdavimas

| Laukas | Tipas | Reikalavimas | Reikšmės ir ribos | Numatyta |
| --- | --- | --- | --- | --- |
| Laukas`path.model` | Tipas`string` | ReikalavimasPrivaloma | Reikšmės ir ribos gemini-3.5-flash-lite | Numatyta— |
| Laukas`contents` | Tipas`content[]` | ReikalavimasPrivaloma | Reikšmės ir ribos Mažiausias elementų skaičius: 1 | Numatyta— |
| Laukas`contents[].role` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos user, model | Numatyta— |
| Laukas`contents[].parts` | Tipas`part[]` | ReikalavimasPrivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`systemInstruction` | Tipas`content` | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`generationConfig.maxOutputTokens` | Tipas`integer` | ReikalavimasNeprivaloma | Reikšmės ir ribos Mažiausia reikšmė: 1 Priklauso nuo modelio | Numatyta— |
| Laukas`generationConfig.temperature` | Tipas`number` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`generationConfig.topP` | Tipas`number` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`generationConfig.topK` | Tipas`integer` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`generationConfig.stopSequences` | Tipas`string[]` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`generationConfig.thinkingConfig.includeThoughts` | Tipas`boolean` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`generationConfig.thinkingConfig.thinkingBudget` | Tipas`integer` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`tools[].functionDeclarations` | Tipas`function_declaration[]` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`toolConfig.functionCallingConfig.mode` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`safetySettings` | Tipas`object[]` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`sessionId` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |

Įvesties medžiagos deriniai

**Tekstas** · UTF8 tekstas

`contents[].parts[].text`

**Tekstas + vaizdas**

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

Metodo parametrai ir gyvavimo ciklas

| Parametras | Specifikacija |
| --- | --- |
| Parametras`material_types` | Specifikacijatext, image |
| Parametras`required` | Specifikacijacontents |
| Parametras`optional_controls` | Specifikacijanull |
| Parametras`content_type` | Specifikacijaapplication/json |
| Parametras`text_file_material` | Specifikacijatikrasis UTF-8 turinys įterptas kaip tekstas; failų ID/URLs reikia atskiro tiksliai apibrėžto palaikymo |

Gyvavimo ciklas: `exact retained published method`

Metodų struktūros ir ID yra tikslūs; tiekėjo galimybės yra atskirtos nuo užklausos priėmimo.

### Planai

#### Ailoot metodų įkainiai

Įvestis

0,0003 USD */ 1K*

Išvestis

0,0025 USD */ 1K*

Talpyklos skaitymas

≈0,00003 USD */ 1K*

Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. [Kaip veikia rezervavimas ir atsiskaitymas →](https://ailoot.ai/docs/lt/billing/reserve/)

#### Informacinio tarifo duomenys

Modelio informacinės lentelės nekeičia metodo pasirinkimo, kainos įverčių ar mokesčių. Galiojantys mokesčiai nustatomi pagal pasirinkto Ailoot metodo įkainius.

Modelio informacinės lentelės

#### Kainos pagal konfigūraciją

Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.

| Konfigūracija | Įkainių lentelė | Konteksto tokenų daugiau nei | Konteksto tokenų iki imtinai | Mokestis |
| --- | --- | --- | --- | --- |
| KonfigūracijaOpenAI Chat · Baziniai žetonų įkainiai | Įkainių lentelėBazinis įkainis | Konteksto tokenų daugiau nei— | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |
| KonfigūracijaOpenAI Chat · Užklausos ilgio pakopa 1 | Įkainių lentelė— | Konteksto tokenų daugiau nei0 | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |
| KonfigūracijaAnthropic Messages · Baziniai žetonų įkainiai | Įkainių lentelėBazinis įkainis | Konteksto tokenų daugiau nei— | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |
| KonfigūracijaAnthropic Messages · Užklausos ilgio pakopa 1 | Įkainių lentelė— | Konteksto tokenų daugiau nei0 | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |

### Užklausų pavyzdžiai

#### Ailoot · Gemini generateContent

Teksto pavyzdysĮvestis, vaizdasPython SDKNode.js SDKPython srautas

```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.5-flash-lite: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.5-flash-lite: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.5-flash-lite", 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.5-flash-lite", 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.5-flash-lite',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
```

### Gauti ir išsaugoti rezultatus

#### Ailoot · Gemini generateContent

json arba palaikomas srautinis perdavimas

##### Išsaugoti visus baigtus rezultatus

Išsaugokite kiekvieną visą grąžintą atsakymą, failą ir turinio dalį.

Išsaugokite visus kandidatus ir dalis, įskaitant funkcijų iškvietimus, mąstymo parašus ir naudojimo duomenis; srauto dalis surinkite eilės tvarka.

##### Jei reikia patikrinti pradinį atsakymą

Išsaugokite užklausų / atsakymų ID ir antraštes. Bendras teksto užduoties gavimo URL nepateikiamas.

Atsakymo laukai

| Laukas | Tipas |
| --- | --- |
| Laukas`responseId` | Tipasstring |
| Laukas`modelVersion` | Tipasstring |
| Laukas`candidates[].content.parts[]` | Tipastext\|inlineData\|functionCall\|other part |
| Laukas`candidates[].finishReason` | Tipasstring |
| Laukas`usageMetadata` | Tipasobject |

Klaidos ir tolesni veiksmai

| Atsakymas | Sąlyga | Kitas žingsnis |
| --- | --- | --- |
| Atsakymas400 · `invalid_request_error` | SąlygaNetinkami privalomi laukai, medžiagos pateikimo forma arba parametro reikšmė | Kitas žingsnisPrieš naują kūrimo užklausą pataisykite nurodytus laukus. |

### Pseudonimai

#### Modelių pseudonimai

<strong>Ailoot</strong> [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-3.5-flash-lite&fmt=gemini), [`gemini-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite&fmt=gemini), [`gemini-flash-lite-latest`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite-latest&fmt=gemini)
**Ailoot Ultra** [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=gemini-3.5-flash-lite), [`google/gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=google%2Fgemini-3.5-flash-lite)

#### Metodų kelių pseudonimai

`/chat/completions`

#### Susiję ID iškvietimui

[`google/gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=google%2Fgemini-3.5-flash-lite), [`gemini-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite&fmt=gemini), [`gemini-flash-lite-latest`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite-latest&fmt=gemini), [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-3.5-flash-lite&fmt=gemini), [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=gemini-3.5-flash-lite)

**Ailoot Ultra · OpenAI pokalbis** `POST /v1/chat/completions` `gemini-3.5-flash-lite`

[`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=gemini-3.5-flash-lite&fmt=chat)

Google /`gemini-3.5-flash-lite`

Modelio ID

- `gemini-3.5-flash-lite`
- `google/gemini-3.5-flash-lite`

### Pradžia

Gemini 3.5 Flash-Lite – Google daugiarūšis modelis, skirtas tikslingoms pagalbinių agentų užduotims, dokumentų analizavimui ir pasikartojančiam duomenų ištraukimui. Numatytasis minimal samprotavimas tinka ribotos apimties įrašams; kelių etapų darbui su įrankiais dokumentuoti medium arba high lygiai. Iš teksto, vaizdų, garso, vaizdo įrašų ir PDF jis grąžina tekstą arba struktūrizuotus rezultatus.

Leidžiamos įvestys

Tekstas

Rezultatai

Tekstas

### Prieinama Ailoot · įvestys ir metodai

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

Įvestis

`text`

Išvestis

`text`

Išvesties formatas

json arba SSE

| Laukas | Tipas | Reikalavimas | Reikšmės ir ribos | Numatyta |
| --- | --- | --- | --- | --- |
| Laukas`model` | Tipas`string` | ReikalavimasPrivaloma | Reikšmės ir ribos gemini-3.5-flash-lite | Numatyta— |
| Laukas`messages` | Tipas`message[]` | ReikalavimasPrivaloma | Reikšmės ir ribos Mažiausias elementų skaičius: 1 | Numatyta— |
| Laukas`messages[].role` | Tipas`string` | ReikalavimasPrivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`messages[].content` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos Taikoma, kai: Tekstinis pokalbis | Numatyta— |
| Laukas`stream` | Tipas`boolean` | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatytafalse |

Įvesties medžiagos deriniai

**Tekstas** · UTF8 tekstas

`messages[].content`

Metodo parametrai ir gyvavimo ciklas

| Parametras | Specifikacija |
| --- | --- |
| Parametras`content_type` | Specifikacijaapplication/json |
| Parametras`required` | Specifikacijamodel, messages |
| Parametras`material_types` | Specifikacijatext |
| Parametras`messages` | Specifikacijapranešimų masyvas su role/content struktūra |
| Parametras`file_material` | Specifikacijatikrasis UTF-8 dokumentas įterptas kaip pažodinis tekstas; failo ID nenumanomas |
| Parametras`optional_controls` | Specifikacijastream |
| Parametras`control_scope` | SpecifikacijaTekstinis pokalbis; stream yra loginė reikšmė, kurios numatytoji reikšmė yra false. |
| Parametras`output_modalities` | Specifikacijatext |
| Parametras`hosted_operations` | Specifikacijafalse |
| Parametras`multimodal_input_binding` | Specifikacijanull |

Metodo pseudonimai: `/chat/completions`

Gyvavimo ciklas: `synchronous_or_streamed`

Siųskite tikslų modelio ID kartu su messages.

Konteksto ilgis nėra išvesties limitas.

Teksto failas gali pateikti pažodinį tekstą; vaizdų / garso / failų objektų įvestims reikia tikslaus susiejimo.

### Planai

Tarifų informacija neprideda užklausos parinkčių. Palaikomi parametrai nurodyti prie pasirinkto metodo.

Spartusis režimas

Standartinis įkainis Pasirinkus spartųjį režimą

Flex režimas

Standartinis įkainis Pasirinkus flex režimą

Didžiausios samprotavimo pastangos

Standartinis įkainis Kai didžiausioms samprotavimo pastangoms taikomas numatytasis koregavimas (default)

Samprotavimo pastangos · high

Standartinis įkainis Kai samprotavimo pastangų lygis yra high

Samprotavimo pastangos · low

Standartinis įkainis Kai samprotavimo pastangų lygis yra low

Samprotavimo pastangos · medium

Standartinis įkainis Kai samprotavimo pastangų lygis yra medium

Samprotavimo pastangos · minimal

Standartinis įkainis Kai samprotavimo pastangų lygis yra minimal

Išreikštinio podėlio kainodara

Neįjungta Kai prašoma išreikštinio podėlio

#### Ailoot įkainiai

#### Kainos pagal konfigūraciją

Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.

| Konfigūracija | Įkainių lentelė | Konteksto tokenų daugiau nei | Konteksto tokenų iki imtinai | Mokestis |
| --- | --- | --- | --- | --- |
| KonfigūracijaBaziniai žetonų įkainiai | Įkainių lentelėBazinis įkainis | Konteksto tokenų daugiau nei— | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |
| KonfigūracijaUžklausos ilgio pakopa 1 | Įkainių lentelė— | Konteksto tokenų daugiau nei0 | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |

Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. [Kaip veikia rezervavimas ir atsiskaitymas →](https://ailoot.ai/docs/lt/billing/reserve/)

### Užklausų pavyzdžiai

#### Ailoot Ultra · OpenAI pokalbis

curlPython SDK

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

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

```python
from openai import OpenAI
import os

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

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

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

### Gauti ir išsaugoti rezultatus

#### Ailoot Ultra · OpenAI pokalbis

json arba SSE

##### Išsaugoti visus baigtus rezultatus

Išsaugokite kiekvieną visą grąžintą atsakymą, failą ir turinio dalį.

Išsaugokite kiekvieną variantą ir jo turinį / įrankių iškvietimus / samprotavimą. SSE prieaugius surinkite pagal varianto / įrankio indeksą; išsaugokite galutinę užbaigimo priežastį ir naudojimo duomenis.

##### Jei reikia patikrinti pradinį atsakymą

Išsaugokite užklausų / atsakymų ID ir antraštes. Bendras teksto užduoties gavimo URL nepateikiamas.

Atsakymo laukai

| Laukas | Tipas |
| --- | --- |
| Laukas`choices[].index` | Tipasinteger |
| Laukas`choices[].message.content` | Tipasstring\|null |
| Laukas`choices[].message.tool_calls` | Tipastool\_call\[\] |
| Laukas`choices[].message.reasoning_content` | Tipasstring |
| Laukas`choices[].message.reasoning_details` | Tipasobject\|array |
| Laukas`choices[].finish_reason` | Tipasstring\|null |
| Laukas`usage` | Tipasobject |

Klaidos ir tolesni veiksmai

| Atsakymas | Sąlyga | Kitas žingsnis |
| --- | --- | --- |
| Atsakymas400 · `invalid_request_error` | SąlygaNetinkami privalomi laukai, medžiagos pateikimo forma arba parametro reikšmė | Kitas žingsnisPrieš naują kūrimo užklausą pataisykite nurodytus laukus. |

### Pseudonimai

#### Modelių pseudonimai

<strong>Ailoot</strong> [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-3.5-flash-lite), [`gemini-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite), [`gemini-flash-lite-latest`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite-latest)
**Ailoot Ultra** [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=gemini-3.5-flash-lite&fmt=chat), [`google/gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=google%2Fgemini-3.5-flash-lite&fmt=chat)

#### Metodų kelių pseudonimai

`/chat/completions`

#### Susiję ID iškvietimui

[`google/gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=google%2Fgemini-3.5-flash-lite&fmt=chat), [`gemini-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite), [`gemini-flash-lite-latest`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite-latest), [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-3.5-flash-lite), [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=gemini-3.5-flash-lite&fmt=chat)

**Ailoot Ultra · Anthropic pranešimai** `POST /v1/messages` `gemini-3.5-flash-lite`

[`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=gemini-3.5-flash-lite&fmt=messages)

Google /`gemini-3.5-flash-lite`

Modelio ID

- `gemini-3.5-flash-lite`
- `google/gemini-3.5-flash-lite`

### Pradžia

Gemini 3.5 Flash-Lite – Google daugiarūšis modelis, skirtas tikslingoms pagalbinių agentų užduotims, dokumentų analizavimui ir pasikartojančiam duomenų ištraukimui. Numatytasis minimal samprotavimas tinka ribotos apimties įrašams; kelių etapų darbui su įrankiais dokumentuoti medium arba high lygiai. Iš teksto, vaizdų, garso, vaizdo įrašų ir PDF jis grąžina tekstą arba struktūrizuotus rezultatus.

Leidžiamos įvestys

Tekstas

Rezultatai

json · sse

### Prieinama Ailoot · įvestys ir metodai

**Ailoot Ultra · Anthropic pranešimai** `POST /v1/messages`

Įvestis

`text`

Išvestis

`json`, `sse`

Išvesties formatas

JSON arba SSE

| Laukas | Tipas | Reikalavimas | Reikšmės ir ribos | Numatyta |
| --- | --- | --- | --- | --- |
| Laukas`model` | Tipas`string` | ReikalavimasPrivaloma | Reikšmės ir ribos gemini-3.5-flash-lite | Numatyta— |
| Laukas`messages` | Tipas`message[]` | ReikalavimasPrivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`messages[].role` | Tipas`string` | ReikalavimasPrivaloma | Reikšmės ir ribos user, assistant | Numatyta— |
| Laukas`messages[].content` | Tipas`string` | ReikalavimasPrivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`max_tokens` | Tipas`integer` | ReikalavimasPrivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`stream` | Tipas`boolean` | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatytafalse |

Įvesties medžiagos deriniai

**Tekstas** · UTF-8 tekstas

`messages[].content eilutė`

Metodo parametrai ir gyvavimo ciklas

| Parametras | Specifikacija |
| --- | --- |
| Parametras`content_type` | Specifikacijaapplication/json |
| Parametras`required` | Specifikacijamodel, messages, max\_tokens |
| Parametras`optional_controls` | Specifikacijastream |
| Parametras`material_types` | Specifikacijatext |
| Parametras`text_file_material` | SpecifikacijaPerskaitykite tikrąjį UTF-8 dokumentą ir įterpkite jo tekstą į nurodytą input lauką arba pranešimo turinio eilutę. |

Gyvavimo ciklas: `synchronous_or_streamed`

### Planai

Tarifų informacija neprideda užklausos parinkčių. Palaikomi parametrai nurodyti prie pasirinkto metodo.

Spartusis režimas

Standartinis įkainis Pasirinkus spartųjį režimą

Flex režimas

Standartinis įkainis Pasirinkus flex režimą

Didžiausios samprotavimo pastangos

Standartinis įkainis Kai didžiausioms samprotavimo pastangoms taikomas numatytasis koregavimas (default)

Samprotavimo pastangos · high

Standartinis įkainis Kai samprotavimo pastangų lygis yra high

Samprotavimo pastangos · low

Standartinis įkainis Kai samprotavimo pastangų lygis yra low

Samprotavimo pastangos · medium

Standartinis įkainis Kai samprotavimo pastangų lygis yra medium

Samprotavimo pastangos · minimal

Standartinis įkainis Kai samprotavimo pastangų lygis yra minimal

Išreikštinio podėlio kainodara

Neįjungta Kai prašoma išreikštinio podėlio

#### Ailoot įkainiai

#### Kainos pagal konfigūraciją

Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.

| Konfigūracija | Įkainių lentelė | Konteksto tokenų daugiau nei | Konteksto tokenų iki imtinai | Mokestis |
| --- | --- | --- | --- | --- |
| KonfigūracijaBaziniai žetonų įkainiai | Įkainių lentelėBazinis įkainis | Konteksto tokenų daugiau nei— | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |
| KonfigūracijaUžklausos ilgio pakopa 1 | Įkainių lentelė— | Konteksto tokenų daugiau nei0 | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |

Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. [Kaip veikia rezervavimas ir atsiskaitymas →](https://ailoot.ai/docs/lt/billing/reserve/)

### Užklausų pavyzdžiai

#### Ailoot Ultra · Anthropic pranešimai

Visas minimalus JSON užklausos turinyscurl · naudokite savo UTF-8 dokumentąPython · išsaugokite visą rezultatą

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

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

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

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

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

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

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

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

### Gauti ir išsaugoti rezultatus

#### Ailoot Ultra · Anthropic pranešimai

JSON arba SSE

##### Išsaugoti visus baigtus rezultatus

Išsaugokite kiekvieną visą grąžintą atsakymą, failą ir turinio dalį.

Išsaugokite visus turinio blokus, mąstymo parašus ir tikruosius įrankių naudojimo ID. Surinkite visus SSE blokų prieaugius; pirmasis teksto blokas nėra visa išvestis.

##### Jei reikia patikrinti pradinį atsakymą

Išsaugokite užklausų / atsakymų ID ir antraštes. Bendras teksto užduoties gavimo URL nepateikiamas.

Atsakymo laukai

| Laukas | Tipas |
| --- | --- |
| Laukas`id` | Tipasstring |
| Laukas`model` | Tipasstring |
| Laukas`content[]` | Tipastext\|thinking\|tool\_use\|other content block |
| Laukas`stop_reason` | Tipasstring\|null |
| Laukas`usage` | Tipasobject |

Klaidos ir tolesni veiksmai

| Atsakymas | Sąlyga | Kitas žingsnis |
| --- | --- | --- |
| Atsakymas400 · `invalid_request_error` | SąlygaNetinkami privalomi laukai, medžiagos pateikimo forma arba parametro reikšmė | Kitas žingsnisPrieš naują kūrimo užklausą pataisykite nurodytus laukus. |

### Pseudonimai

#### Modelių pseudonimai

<strong>Ailoot</strong> [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-3.5-flash-lite&fmt=messages), [`gemini-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite&fmt=messages), [`gemini-flash-lite-latest`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite-latest&fmt=messages)
**Ailoot Ultra** [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=gemini-3.5-flash-lite&fmt=messages), [`google/gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=google%2Fgemini-3.5-flash-lite&fmt=messages)

#### Metodų kelių pseudonimai

`/chat/completions`

#### Susiję ID iškvietimui

[`google/gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=google%2Fgemini-3.5-flash-lite&fmt=messages), [`gemini-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite&fmt=messages), [`gemini-flash-lite-latest`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite-latest&fmt=messages), [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-3.5-flash-lite&fmt=messages), [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=gemini-3.5-flash-lite&fmt=messages)

**Ailoot · Anthropic pranešimai** `POST /v1/messages` `gemini-flash-lite`

[`gemini-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite&fmt=messages)

Google /`gemini-flash-lite`

Modelio ID

- `gemini-3.5-flash-lite`
- `gemini-flash-lite`
- `gemini-flash-lite-latest`

### Pradžia

Gemini 3.5 Flash-Lite – Google daugiarūšis modelis, skirtas tikslingoms pagalbinių agentų užduotims, dokumentų analizavimui ir pasikartojančiam duomenų ištraukimui. Numatytasis minimal samprotavimas tinka ribotos apimties įrašams; kelių etapų darbui su įrankiais dokumentuoti medium arba high lygiai. Iš teksto, vaizdų, garso, vaizdo įrašų ir PDF jis grąžina tekstą arba struktūrizuotus rezultatus.

Leidžiamos įvestys

Tekstas · Vaizdai

Rezultatai

Tekstas

### Prieinama Ailoot · įvestys ir metodai

**Ailoot · Anthropic pranešimai** `POST /v1/messages`

Įvestis

`text`, `image`

Išvestis

`text`

Kontekstas

1 048 576 tokens

Didžiausia išvestis

65 536 tokens

Išvesties formatas

json arba SSE

| Laukas | Tipas | Reikalavimas | Reikšmės ir ribos | Numatyta |
| --- | --- | --- | --- | --- |
| Laukas`model` | Tipas`string` | ReikalavimasPrivaloma | Reikšmės ir ribos gemini-flash-lite | Numatyta— |
| Laukas`messages` | Tipas`message[]` | ReikalavimasPrivaloma | Reikšmės ir ribos Mažiausias elementų skaičius: 1 | Numatyta— |
| Laukas`messages[].role` | Tipas`string` | ReikalavimasPrivaloma | Reikšmės ir ribos user, assistant | Numatyta— |
| Laukas`messages[].content` | Tipas`string\|content_block[]` | ReikalavimasPrivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`system` | Tipas`string\|content_block[]` | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`max_tokens` | Tipas`integer` | ReikalavimasPrivaloma | Reikšmės ir ribos Mažiausia reikšmė: 1 Riba taikoma: konkretus pasirinkto modelio / kortelės limitas | Numatyta— |
| Laukas`stream` | Tipas`boolean` | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatytafalse |
| Laukas`temperature` | Tipas`number` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`top_p` | Tipas`number` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`stop_sequences` | Tipas`string[]` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`tools` | Tipas`tool[]` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`tools[].name` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos Taikoma, kai: pateiktas įrankis | Numatyta— |
| Laukas`tools[].description` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`tools[].input_schema` | Tipas`JSON_schema` | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`tool_choice` | Tipas`object` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`thinking.type` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`thinking.budget_tokens` | Tipas`integer` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`output_config.effort` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`metadata` | Tipas`object` | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`cache_control` | Tipas`object` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |

Įvesties medžiagos deriniai

**Tekstas** · UTF8 tekstas

`messages[].content arba type=text blokas`

**Tekstas + vaizdas**

`{type:image,source:{type:base64,media_type,data}} arba šaltinis type=url`

Metodo parametrai ir gyvavimo ciklas

| Parametras | Specifikacija |
| --- | --- |
| Parametras`material_types` | Specifikacijatext, image |
| Parametras`required` | Specifikacijamodel, messages, max\_tokens |
| Parametras`optional_controls` | Specifikacijanull |
| Parametras`content_type` | Specifikacijaapplication/json |
| Parametras`text_file_material` | Specifikacijatikrasis UTF-8 turinys įterptas kaip tekstas; failų ID/URLs reikia atskiro tiksliai apibrėžto palaikymo |

Gyvavimo ciklas: `exact retained published method`

Metodų struktūros ir ID yra tikslūs; tiekėjo galimybės yra atskirtos nuo užklausos priėmimo.

### Planai

#### Ailoot metodų įkainiai

Įvestis

0,0003 USD */ 1K*

Išvestis

0,0025 USD */ 1K*

Talpyklos skaitymas

≈0,00003 USD */ 1K*

Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. [Kaip veikia rezervavimas ir atsiskaitymas →](https://ailoot.ai/docs/lt/billing/reserve/)

#### Informacinio tarifo duomenys

Modelio informacinės lentelės nekeičia metodo pasirinkimo, kainos įverčių ar mokesčių. Galiojantys mokesčiai nustatomi pagal pasirinkto Ailoot metodo įkainius.

Modelio informacinės lentelės

#### Kainos pagal konfigūraciją

Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.

| Konfigūracija | Įkainių lentelė | Konteksto tokenų daugiau nei | Konteksto tokenų iki imtinai | Mokestis |
| --- | --- | --- | --- | --- |
| KonfigūracijaOpenAI Chat · Baziniai žetonų įkainiai | Įkainių lentelėBazinis įkainis | Konteksto tokenų daugiau nei— | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |
| KonfigūracijaOpenAI Chat · Užklausos ilgio pakopa 1 | Įkainių lentelė— | Konteksto tokenų daugiau nei0 | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |
| KonfigūracijaAnthropic Messages · Baziniai žetonų įkainiai | Įkainių lentelėBazinis įkainis | Konteksto tokenų daugiau nei— | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |
| KonfigūracijaAnthropic Messages · Užklausos ilgio pakopa 1 | Įkainių lentelė— | Konteksto tokenų daugiau nei0 | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |

### Užklausų pavyzdžiai

#### Ailoot · Anthropic pranešimai

Teksto pavyzdysĮvestis, vaizdasPython SDKNode.js SDKPython srautas

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

### Gauti ir išsaugoti rezultatus

#### Ailoot · Anthropic pranešimai

json arba SSE

##### Išsaugoti visus baigtus rezultatus

Išsaugokite kiekvieną visą grąžintą atsakymą, failą ir turinio dalį.

Išsaugokite visus turinio blokus, mąstymo parašus ir tikruosius įrankių naudojimo ID. Surinkite visus SSE blokų prieaugius; pirmasis teksto blokas nėra visa išvestis.

##### Jei reikia patikrinti pradinį atsakymą

Išsaugokite užklausų / atsakymų ID ir antraštes. Bendras teksto užduoties gavimo URL nepateikiamas.

Atsakymo laukai

| Laukas | Tipas |
| --- | --- |
| Laukas`id` | Tipasstring |
| Laukas`model` | Tipasstring |
| Laukas`content[]` | Tipastext\|thinking\|tool\_use\|other content block |
| Laukas`stop_reason` | Tipasstring\|null |
| Laukas`usage` | Tipasobject |

Klaidos ir tolesni veiksmai

| Atsakymas | Sąlyga | Kitas žingsnis |
| --- | --- | --- |
| Atsakymas400 · `invalid_request_error` | SąlygaNetinkami privalomi laukai, medžiagos pateikimo forma arba parametro reikšmė | Kitas žingsnisPrieš naują kūrimo užklausą pataisykite nurodytus laukus. |

### Pseudonimai

#### Modelių pseudonimai

<strong>Ailoot</strong> [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-3.5-flash-lite&fmt=messages), [`gemini-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite&fmt=messages), [`gemini-flash-lite-latest`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite-latest&fmt=messages)
**Ailoot Ultra** [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=gemini-3.5-flash-lite&fmt=messages), [`google/gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=google%2Fgemini-3.5-flash-lite&fmt=messages)

#### Metodų kelių pseudonimai

`/chat/completions`

#### Susiję ID iškvietimui

[`google/gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=google%2Fgemini-3.5-flash-lite&fmt=messages), [`gemini-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite&fmt=messages), [`gemini-flash-lite-latest`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite-latest&fmt=messages), [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-3.5-flash-lite&fmt=messages), [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=gemini-3.5-flash-lite&fmt=messages)

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

[`gemini-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite&fmt=gemini)

Google /`gemini-flash-lite`

Modelio ID

- `gemini-3.5-flash-lite`
- `gemini-flash-lite`
- `gemini-flash-lite-latest`

### Pradžia

Gemini 3.5 Flash-Lite – Google daugiarūšis modelis, skirtas tikslingoms pagalbinių agentų užduotims, dokumentų analizavimui ir pasikartojančiam duomenų ištraukimui. Numatytasis minimal samprotavimas tinka ribotos apimties įrašams; kelių etapų darbui su įrankiais dokumentuoti medium arba high lygiai. Iš teksto, vaizdų, garso, vaizdo įrašų ir PDF jis grąžina tekstą arba struktūrizuotus rezultatus.

Leidžiamos įvestys

Tekstas · Vaizdai

Rezultatai

Tekstas

### Prieinama Ailoot · įvestys ir metodai

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

Įvestis

`text`, `image`

Išvestis

`text`

Išvesties formatas

json arba palaikomas srautinis perdavimas

| Laukas | Tipas | Reikalavimas | Reikšmės ir ribos | Numatyta |
| --- | --- | --- | --- | --- |
| Laukas`path.model` | Tipas`string` | ReikalavimasPrivaloma | Reikšmės ir ribos gemini-flash-lite | Numatyta— |
| Laukas`contents` | Tipas`content[]` | ReikalavimasPrivaloma | Reikšmės ir ribos Mažiausias elementų skaičius: 1 | Numatyta— |
| Laukas`contents[].role` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos user, model | Numatyta— |
| Laukas`contents[].parts` | Tipas`part[]` | ReikalavimasPrivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`systemInstruction` | Tipas`content` | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`generationConfig.maxOutputTokens` | Tipas`integer` | ReikalavimasNeprivaloma | Reikšmės ir ribos Mažiausia reikšmė: 1 Priklauso nuo modelio | Numatyta— |
| Laukas`generationConfig.temperature` | Tipas`number` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`generationConfig.topP` | Tipas`number` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`generationConfig.topK` | Tipas`integer` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`generationConfig.stopSequences` | Tipas`string[]` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`generationConfig.thinkingConfig.includeThoughts` | Tipas`boolean` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`generationConfig.thinkingConfig.thinkingBudget` | Tipas`integer` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`tools[].functionDeclarations` | Tipas`function_declaration[]` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`toolConfig.functionCallingConfig.mode` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`safetySettings` | Tipas`object[]` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`sessionId` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |

Įvesties medžiagos deriniai

**Tekstas** · UTF8 tekstas

`contents[].parts[].text`

**Tekstas + vaizdas**

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

Metodo parametrai ir gyvavimo ciklas

| Parametras | Specifikacija |
| --- | --- |
| Parametras`material_types` | Specifikacijatext, image |
| Parametras`required` | Specifikacijacontents |
| Parametras`optional_controls` | Specifikacijanull |
| Parametras`content_type` | Specifikacijaapplication/json |
| Parametras`text_file_material` | Specifikacijatikrasis UTF-8 turinys įterptas kaip tekstas; failų ID/URLs reikia atskiro tiksliai apibrėžto palaikymo |

Gyvavimo ciklas: `exact retained published method`

Metodų struktūros ir ID yra tikslūs; tiekėjo galimybės yra atskirtos nuo užklausos priėmimo.

### Planai

#### Ailoot metodų įkainiai

Įvestis

0,0003 USD */ 1K*

Išvestis

0,0025 USD */ 1K*

Talpyklos skaitymas

≈0,00003 USD */ 1K*

Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. [Kaip veikia rezervavimas ir atsiskaitymas →](https://ailoot.ai/docs/lt/billing/reserve/)

#### Informacinio tarifo duomenys

Modelio informacinės lentelės nekeičia metodo pasirinkimo, kainos įverčių ar mokesčių. Galiojantys mokesčiai nustatomi pagal pasirinkto Ailoot metodo įkainius.

Modelio informacinės lentelės

#### Kainos pagal konfigūraciją

Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.

| Konfigūracija | Įkainių lentelė | Konteksto tokenų daugiau nei | Konteksto tokenų iki imtinai | Mokestis |
| --- | --- | --- | --- | --- |
| KonfigūracijaOpenAI Chat · Baziniai žetonų įkainiai | Įkainių lentelėBazinis įkainis | Konteksto tokenų daugiau nei— | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |
| KonfigūracijaOpenAI Chat · Užklausos ilgio pakopa 1 | Įkainių lentelė— | Konteksto tokenų daugiau nei0 | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |
| KonfigūracijaAnthropic Messages · Baziniai žetonų įkainiai | Įkainių lentelėBazinis įkainis | Konteksto tokenų daugiau nei— | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |
| KonfigūracijaAnthropic Messages · Užklausos ilgio pakopa 1 | Įkainių lentelė— | Konteksto tokenų daugiau nei0 | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |

### Užklausų pavyzdžiai

#### Ailoot · Gemini generateContent

Teksto pavyzdysĮvestis, vaizdasPython SDKNode.js SDKPython srautas

```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-flash-lite: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-flash-lite: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-flash-lite", 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-flash-lite", 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-flash-lite',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
```

### Gauti ir išsaugoti rezultatus

#### Ailoot · Gemini generateContent

json arba palaikomas srautinis perdavimas

##### Išsaugoti visus baigtus rezultatus

Išsaugokite kiekvieną visą grąžintą atsakymą, failą ir turinio dalį.

Išsaugokite visus kandidatus ir dalis, įskaitant funkcijų iškvietimus, mąstymo parašus ir naudojimo duomenis; srauto dalis surinkite eilės tvarka.

##### Jei reikia patikrinti pradinį atsakymą

Išsaugokite užklausų / atsakymų ID ir antraštes. Bendras teksto užduoties gavimo URL nepateikiamas.

Atsakymo laukai

| Laukas | Tipas |
| --- | --- |
| Laukas`responseId` | Tipasstring |
| Laukas`modelVersion` | Tipasstring |
| Laukas`candidates[].content.parts[]` | Tipastext\|inlineData\|functionCall\|other part |
| Laukas`candidates[].finishReason` | Tipasstring |
| Laukas`usageMetadata` | Tipasobject |

Klaidos ir tolesni veiksmai

| Atsakymas | Sąlyga | Kitas žingsnis |
| --- | --- | --- |
| Atsakymas400 · `invalid_request_error` | SąlygaNetinkami privalomi laukai, medžiagos pateikimo forma arba parametro reikšmė | Kitas žingsnisPrieš naują kūrimo užklausą pataisykite nurodytus laukus. |

### Pseudonimai

#### Modelių pseudonimai

<strong>Ailoot</strong> [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-3.5-flash-lite&fmt=gemini), [`gemini-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite&fmt=gemini), [`gemini-flash-lite-latest`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite-latest&fmt=gemini)
**Ailoot Ultra** [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=gemini-3.5-flash-lite), [`google/gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=google%2Fgemini-3.5-flash-lite)

#### Metodų kelių pseudonimai

`/chat/completions`

#### Susiję ID iškvietimui

[`google/gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=google%2Fgemini-3.5-flash-lite), [`gemini-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite&fmt=gemini), [`gemini-flash-lite-latest`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite-latest&fmt=gemini), [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-3.5-flash-lite&fmt=gemini), [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=gemini-3.5-flash-lite)

**Ailoot · Anthropic pranešimai** `POST /v1/messages` `gemini-flash-lite-latest`

[`gemini-flash-lite-latest`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite-latest&fmt=messages)

Google /`gemini-flash-lite-latest`

Modelio ID

- `gemini-3.5-flash-lite`
- `gemini-flash-lite`
- `gemini-flash-lite-latest`

### Pradžia

Gemini 3.5 Flash-Lite – Google daugiarūšis modelis, skirtas tikslingoms pagalbinių agentų užduotims, dokumentų analizavimui ir pasikartojančiam duomenų ištraukimui. Numatytasis minimal samprotavimas tinka ribotos apimties įrašams; kelių etapų darbui su įrankiais dokumentuoti medium arba high lygiai. Iš teksto, vaizdų, garso, vaizdo įrašų ir PDF jis grąžina tekstą arba struktūrizuotus rezultatus.

Leidžiamos įvestys

Tekstas · Vaizdai

Rezultatai

Tekstas

### Prieinama Ailoot · įvestys ir metodai

**Ailoot · Anthropic pranešimai** `POST /v1/messages`

Įvestis

`text`, `image`

Išvestis

`text`

Kontekstas

1 048 576 tokens

Didžiausia išvestis

65 536 tokens

Išvesties formatas

json arba SSE

| Laukas | Tipas | Reikalavimas | Reikšmės ir ribos | Numatyta |
| --- | --- | --- | --- | --- |
| Laukas`model` | Tipas`string` | ReikalavimasPrivaloma | Reikšmės ir ribos gemini-flash-lite-latest | Numatyta— |
| Laukas`messages` | Tipas`message[]` | ReikalavimasPrivaloma | Reikšmės ir ribos Mažiausias elementų skaičius: 1 | Numatyta— |
| Laukas`messages[].role` | Tipas`string` | ReikalavimasPrivaloma | Reikšmės ir ribos user, assistant | Numatyta— |
| Laukas`messages[].content` | Tipas`string\|content_block[]` | ReikalavimasPrivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`system` | Tipas`string\|content_block[]` | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`max_tokens` | Tipas`integer` | ReikalavimasPrivaloma | Reikšmės ir ribos Mažiausia reikšmė: 1 Riba taikoma: konkretus pasirinkto modelio / kortelės limitas | Numatyta— |
| Laukas`stream` | Tipas`boolean` | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatytafalse |
| Laukas`temperature` | Tipas`number` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`top_p` | Tipas`number` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`stop_sequences` | Tipas`string[]` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`tools` | Tipas`tool[]` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`tools[].name` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos Taikoma, kai: pateiktas įrankis | Numatyta— |
| Laukas`tools[].description` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`tools[].input_schema` | Tipas`JSON_schema` | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`tool_choice` | Tipas`object` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`thinking.type` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`thinking.budget_tokens` | Tipas`integer` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`output_config.effort` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`metadata` | Tipas`object` | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`cache_control` | Tipas`object` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |

Įvesties medžiagos deriniai

**Tekstas** · UTF8 tekstas

`messages[].content arba type=text blokas`

**Tekstas + vaizdas**

`{type:image,source:{type:base64,media_type,data}} arba šaltinis type=url`

Metodo parametrai ir gyvavimo ciklas

| Parametras | Specifikacija |
| --- | --- |
| Parametras`material_types` | Specifikacijatext, image |
| Parametras`required` | Specifikacijamodel, messages, max\_tokens |
| Parametras`optional_controls` | Specifikacijanull |
| Parametras`content_type` | Specifikacijaapplication/json |
| Parametras`text_file_material` | Specifikacijatikrasis UTF-8 turinys įterptas kaip tekstas; failų ID/URLs reikia atskiro tiksliai apibrėžto palaikymo |

Gyvavimo ciklas: `exact retained published method`

Metodų struktūros ir ID yra tikslūs; tiekėjo galimybės yra atskirtos nuo užklausos priėmimo.

### Planai

#### Ailoot metodų įkainiai

Įvestis

0,0003 USD */ 1K*

Išvestis

0,0025 USD */ 1K*

Talpyklos skaitymas

≈0,00003 USD */ 1K*

Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. [Kaip veikia rezervavimas ir atsiskaitymas →](https://ailoot.ai/docs/lt/billing/reserve/)

#### Informacinio tarifo duomenys

Modelio informacinės lentelės nekeičia metodo pasirinkimo, kainos įverčių ar mokesčių. Galiojantys mokesčiai nustatomi pagal pasirinkto Ailoot metodo įkainius.

Modelio informacinės lentelės

#### Kainos pagal konfigūraciją

Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.

| Konfigūracija | Įkainių lentelė | Konteksto tokenų daugiau nei | Konteksto tokenų iki imtinai | Mokestis |
| --- | --- | --- | --- | --- |
| KonfigūracijaOpenAI Chat · Baziniai žetonų įkainiai | Įkainių lentelėBazinis įkainis | Konteksto tokenų daugiau nei— | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |
| KonfigūracijaOpenAI Chat · Užklausos ilgio pakopa 1 | Įkainių lentelė— | Konteksto tokenų daugiau nei0 | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |
| KonfigūracijaAnthropic Messages · Baziniai žetonų įkainiai | Įkainių lentelėBazinis įkainis | Konteksto tokenų daugiau nei— | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |
| KonfigūracijaAnthropic Messages · Užklausos ilgio pakopa 1 | Įkainių lentelė— | Konteksto tokenų daugiau nei0 | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |

### Užklausų pavyzdžiai

#### Ailoot · Anthropic pranešimai

Teksto pavyzdysĮvestis, vaizdasPython SDKNode.js SDKPython srautas

```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-flash-lite-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": "gemini-flash-lite-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="gemini-flash-lite-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: "gemini-flash-lite-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='gemini-flash-lite-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")
```

### Gauti ir išsaugoti rezultatus

#### Ailoot · Anthropic pranešimai

json arba SSE

##### Išsaugoti visus baigtus rezultatus

Išsaugokite kiekvieną visą grąžintą atsakymą, failą ir turinio dalį.

Išsaugokite visus turinio blokus, mąstymo parašus ir tikruosius įrankių naudojimo ID. Surinkite visus SSE blokų prieaugius; pirmasis teksto blokas nėra visa išvestis.

##### Jei reikia patikrinti pradinį atsakymą

Išsaugokite užklausų / atsakymų ID ir antraštes. Bendras teksto užduoties gavimo URL nepateikiamas.

Atsakymo laukai

| Laukas | Tipas |
| --- | --- |
| Laukas`id` | Tipasstring |
| Laukas`model` | Tipasstring |
| Laukas`content[]` | Tipastext\|thinking\|tool\_use\|other content block |
| Laukas`stop_reason` | Tipasstring\|null |
| Laukas`usage` | Tipasobject |

Klaidos ir tolesni veiksmai

| Atsakymas | Sąlyga | Kitas žingsnis |
| --- | --- | --- |
| Atsakymas400 · `invalid_request_error` | SąlygaNetinkami privalomi laukai, medžiagos pateikimo forma arba parametro reikšmė | Kitas žingsnisPrieš naują kūrimo užklausą pataisykite nurodytus laukus. |

### Pseudonimai

#### Modelių pseudonimai

<strong>Ailoot</strong> [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-3.5-flash-lite&fmt=messages), [`gemini-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite&fmt=messages), [`gemini-flash-lite-latest`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite-latest&fmt=messages)
**Ailoot Ultra** [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=gemini-3.5-flash-lite&fmt=messages), [`google/gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=google%2Fgemini-3.5-flash-lite&fmt=messages)

#### Metodų kelių pseudonimai

`/chat/completions`

#### Susiję ID iškvietimui

[`google/gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=google%2Fgemini-3.5-flash-lite&fmt=messages), [`gemini-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite&fmt=messages), [`gemini-flash-lite-latest`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite-latest&fmt=messages), [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-3.5-flash-lite&fmt=messages), [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=gemini-3.5-flash-lite&fmt=messages)

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

[`gemini-flash-lite-latest`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite-latest&fmt=gemini)

Google /`gemini-flash-lite-latest`

Modelio ID

- `gemini-3.5-flash-lite`
- `gemini-flash-lite`
- `gemini-flash-lite-latest`

### Pradžia

Gemini 3.5 Flash-Lite – Google daugiarūšis modelis, skirtas tikslingoms pagalbinių agentų užduotims, dokumentų analizavimui ir pasikartojančiam duomenų ištraukimui. Numatytasis minimal samprotavimas tinka ribotos apimties įrašams; kelių etapų darbui su įrankiais dokumentuoti medium arba high lygiai. Iš teksto, vaizdų, garso, vaizdo įrašų ir PDF jis grąžina tekstą arba struktūrizuotus rezultatus.

Leidžiamos įvestys

Tekstas · Vaizdai

Rezultatai

Tekstas

### Prieinama Ailoot · įvestys ir metodai

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

Įvestis

`text`, `image`

Išvestis

`text`

Išvesties formatas

json arba palaikomas srautinis perdavimas

| Laukas | Tipas | Reikalavimas | Reikšmės ir ribos | Numatyta |
| --- | --- | --- | --- | --- |
| Laukas`path.model` | Tipas`string` | ReikalavimasPrivaloma | Reikšmės ir ribos gemini-flash-lite-latest | Numatyta— |
| Laukas`contents` | Tipas`content[]` | ReikalavimasPrivaloma | Reikšmės ir ribos Mažiausias elementų skaičius: 1 | Numatyta— |
| Laukas`contents[].role` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos user, model | Numatyta— |
| Laukas`contents[].parts` | Tipas`part[]` | ReikalavimasPrivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`systemInstruction` | Tipas`content` | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`generationConfig.maxOutputTokens` | Tipas`integer` | ReikalavimasNeprivaloma | Reikšmės ir ribos Mažiausia reikšmė: 1 Priklauso nuo modelio | Numatyta— |
| Laukas`generationConfig.temperature` | Tipas`number` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`generationConfig.topP` | Tipas`number` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`generationConfig.topK` | Tipas`integer` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`generationConfig.stopSequences` | Tipas`string[]` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`generationConfig.thinkingConfig.includeThoughts` | Tipas`boolean` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`generationConfig.thinkingConfig.thinkingBudget` | Tipas`integer` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`tools[].functionDeclarations` | Tipas`function_declaration[]` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`toolConfig.functionCallingConfig.mode` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`safetySettings` | Tipas`object[]` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`sessionId` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |

Įvesties medžiagos deriniai

**Tekstas** · UTF8 tekstas

`contents[].parts[].text`

**Tekstas + vaizdas**

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

Metodo parametrai ir gyvavimo ciklas

| Parametras | Specifikacija |
| --- | --- |
| Parametras`material_types` | Specifikacijatext, image |
| Parametras`required` | Specifikacijacontents |
| Parametras`optional_controls` | Specifikacijanull |
| Parametras`content_type` | Specifikacijaapplication/json |
| Parametras`text_file_material` | Specifikacijatikrasis UTF-8 turinys įterptas kaip tekstas; failų ID/URLs reikia atskiro tiksliai apibrėžto palaikymo |

Gyvavimo ciklas: `exact retained published method`

Metodų struktūros ir ID yra tikslūs; tiekėjo galimybės yra atskirtos nuo užklausos priėmimo.

### Planai

#### Ailoot metodų įkainiai

Įvestis

0,0003 USD */ 1K*

Išvestis

0,0025 USD */ 1K*

Talpyklos skaitymas

≈0,00003 USD */ 1K*

Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. [Kaip veikia rezervavimas ir atsiskaitymas →](https://ailoot.ai/docs/lt/billing/reserve/)

#### Informacinio tarifo duomenys

Modelio informacinės lentelės nekeičia metodo pasirinkimo, kainos įverčių ar mokesčių. Galiojantys mokesčiai nustatomi pagal pasirinkto Ailoot metodo įkainius.

Modelio informacinės lentelės

#### Kainos pagal konfigūraciją

Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.

| Konfigūracija | Įkainių lentelė | Konteksto tokenų daugiau nei | Konteksto tokenų iki imtinai | Mokestis |
| --- | --- | --- | --- | --- |
| KonfigūracijaOpenAI Chat · Baziniai žetonų įkainiai | Įkainių lentelėBazinis įkainis | Konteksto tokenų daugiau nei— | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |
| KonfigūracijaOpenAI Chat · Užklausos ilgio pakopa 1 | Įkainių lentelė— | Konteksto tokenų daugiau nei0 | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |
| KonfigūracijaAnthropic Messages · Baziniai žetonų įkainiai | Įkainių lentelėBazinis įkainis | Konteksto tokenų daugiau nei— | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |
| KonfigūracijaAnthropic Messages · Užklausos ilgio pakopa 1 | Įkainių lentelė— | Konteksto tokenų daugiau nei0 | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |

### Užklausų pavyzdžiai

#### Ailoot · Gemini generateContent

Teksto pavyzdysĮvestis, vaizdasPython SDKNode.js SDKPython srautas

```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-flash-lite-latest: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-flash-lite-latest: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-flash-lite-latest", 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-flash-lite-latest", 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-flash-lite-latest',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
```

### Gauti ir išsaugoti rezultatus

#### Ailoot · Gemini generateContent

json arba palaikomas srautinis perdavimas

##### Išsaugoti visus baigtus rezultatus

Išsaugokite kiekvieną visą grąžintą atsakymą, failą ir turinio dalį.

Išsaugokite visus kandidatus ir dalis, įskaitant funkcijų iškvietimus, mąstymo parašus ir naudojimo duomenis; srauto dalis surinkite eilės tvarka.

##### Jei reikia patikrinti pradinį atsakymą

Išsaugokite užklausų / atsakymų ID ir antraštes. Bendras teksto užduoties gavimo URL nepateikiamas.

Atsakymo laukai

| Laukas | Tipas |
| --- | --- |
| Laukas`responseId` | Tipasstring |
| Laukas`modelVersion` | Tipasstring |
| Laukas`candidates[].content.parts[]` | Tipastext\|inlineData\|functionCall\|other part |
| Laukas`candidates[].finishReason` | Tipasstring |
| Laukas`usageMetadata` | Tipasobject |

Klaidos ir tolesni veiksmai

| Atsakymas | Sąlyga | Kitas žingsnis |
| --- | --- | --- |
| Atsakymas400 · `invalid_request_error` | SąlygaNetinkami privalomi laukai, medžiagos pateikimo forma arba parametro reikšmė | Kitas žingsnisPrieš naują kūrimo užklausą pataisykite nurodytus laukus. |

### Pseudonimai

#### Modelių pseudonimai

<strong>Ailoot</strong> [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-3.5-flash-lite&fmt=gemini), [`gemini-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite&fmt=gemini), [`gemini-flash-lite-latest`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite-latest&fmt=gemini)
**Ailoot Ultra** [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=gemini-3.5-flash-lite), [`google/gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=google%2Fgemini-3.5-flash-lite)

#### Metodų kelių pseudonimai

`/chat/completions`

#### Susiję ID iškvietimui

[`google/gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=google%2Fgemini-3.5-flash-lite), [`gemini-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite&fmt=gemini), [`gemini-flash-lite-latest`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite-latest&fmt=gemini), [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-3.5-flash-lite&fmt=gemini), [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=gemini-3.5-flash-lite)

**Ailoot Ultra · OpenAI pokalbis** `POST /v1/chat/completions` `google/gemini-3.5-flash-lite`

[`google/gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=google%2Fgemini-3.5-flash-lite&fmt=chat)

Google /`google/gemini-3.5-flash-lite`

Modelio ID

- `gemini-3.5-flash-lite`
- `google/gemini-3.5-flash-lite`

### Pradžia

Gemini 3.5 Flash-Lite – Google daugiarūšis modelis, skirtas tikslingoms pagalbinių agentų užduotims, dokumentų analizavimui ir pasikartojančiam duomenų ištraukimui. Numatytasis minimal samprotavimas tinka ribotos apimties įrašams; kelių etapų darbui su įrankiais dokumentuoti medium arba high lygiai. Iš teksto, vaizdų, garso, vaizdo įrašų ir PDF jis grąžina tekstą arba struktūrizuotus rezultatus.

Leidžiamos įvestys

Tekstas

Rezultatai

Tekstas

### Prieinama Ailoot · įvestys ir metodai

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

Įvestis

`text`

Išvestis

`text`

Išvesties formatas

json arba SSE

| Laukas | Tipas | Reikalavimas | Reikšmės ir ribos | Numatyta |
| --- | --- | --- | --- | --- |
| Laukas`model` | Tipas`string` | ReikalavimasPrivaloma | Reikšmės ir ribos google/gemini-3.5-flash-lite | Numatyta— |
| Laukas`messages` | Tipas`message[]` | ReikalavimasPrivaloma | Reikšmės ir ribos Mažiausias elementų skaičius: 1 | Numatyta— |
| Laukas`messages[].role` | Tipas`string` | ReikalavimasPrivaloma | Reikšmės ir ribos Pavyzdžiai: system, user, assistant, tool, function Sąlygos: Šie vaidmenys aiškiai išreikšti šaltinio kodo suderinamumo tipuose; tikslus vaidmenų rinkinys priklauso nuo konkretaus modelio. Priklauso nuo modelio | Numatyta— |
| Laukas`messages[].content` | Tipas`string\|content_part[]\|null` | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`messages[].tool_calls` | Tipas`tool_call[]` | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`messages[].tool_call_id` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos Taikoma, kai: role=tool; naudokite tikrąjį grąžintą ID | Numatyta— |
| Laukas`messages[].name` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`messages[].reasoning_content` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos Taikoma, kai: Grąžinkite tikrąjį gautą samprotavimą ten, kur šis modelis jį naudoja | Numatyta— |
| Laukas`messages[].reasoning_details` | Tipas`object\|array` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`max_tokens` | Tipas`integer` | ReikalavimasNeprivaloma | Reikšmės ir ribos Mažiausia reikšmė: 1 Priklauso nuo modelio | Numatyta— |
| Laukas`max_completion_tokens` | Tipas`integer` | ReikalavimasNeprivaloma | Reikšmės ir ribos Mažiausia reikšmė: 1 Priklauso nuo modelio | Numatyta— |
| Laukas`stream` | Tipas`boolean` | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatytafalse |
| Laukas`stream_options.include_usage` | Tipas`boolean` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`temperature` | Tipas`number` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`top_p` | Tipas`number` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`stop` | Tipas`string\|string[]` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`tools` | Tipas`function_tool[]` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`tools[].type` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos function Priklauso nuo modelio | Numatyta— |
| Laukas`tools[].function.name` | Tipas`string` | ReikalavimasPrivaloma | Reikšmės ir ribos Taikoma, kai: pateiktas funkcijos tipo įrankis | Numatyta— |
| Laukas`tools[].function.description` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`tools[].function.parameters` | Tipas`JSON_schema` | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`tool_choice` | Tipas`string\|object` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`parallel_tool_calls` | Tipas`boolean` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`response_format` | Tipas`object` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`reasoning_effort` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`reasoning` | Tipas`object` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`service_tier` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`instructions` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos Suderinamumo laukas | Numatyta— |
| Laukas`functions` | Tipas`function[]` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`function_call` | Tipas`string\|object` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`prompt_cache_options` | Tipas`object` | ReikalavimasNeprivaloma | Reikšmės ir ribos Priklauso nuo modelio | Numatyta— |
| Laukas`modalities` | Tipas`string[]` | ReikalavimasNeprivaloma | Reikšmės ir ribos text | Numatyta— |
| Laukas`provider` | Tipas`object` | ReikalavimasNeprivaloma | Reikšmės ir ribos Sąlygos: provider.options šiame Ultra teksto maršrute atmetamas | Numatyta— |
| Laukas`cache_control.ttl` | Tipas`string` | ReikalavimasNeprivaloma | Reikšmės ir ribos Sąlygos: 1h atmetamas tikrosiose užklausų podėlio vietose | Numatyta— |

Įvesties medžiagos deriniai

**Tekstas** · UTF8 tekstas

`messages[].content`

Metodo parametrai ir gyvavimo ciklas

| Parametras | Specifikacija |
| --- | --- |
| Parametras`content_type` | Specifikacijaapplication/json |
| Parametras`required` | Specifikacijamodel, messages |
| Parametras`material_types` | Specifikacijatext |
| Parametras`messages` | Specifikacijapranešimų masyvas su role/content struktūra |
| Parametras`file_material` | Specifikacijatikrasis UTF-8 dokumentas įterptas kaip pažodinis tekstas; failo ID nenumanomas |
| Parametras`optional_controls` | Specifikacijastream, temperature, top\_p, stop, max\_tokens, max\_completion\_tokens, reasoning, response\_format, tools, tool\_choice |
| Parametras`control_scope` | Specifikacijapriklauso nuo modelio; naudotojo funkcijų įrankiai skiriasi nuo priglobtų įrankių |
| Parametras`output_modalities` | Specifikacijatext |
| Parametras`hosted_operations` | Specifikacijafalse |
| Parametras`multimodal_input_binding` | Specifikacijanull |

Gyvavimo ciklas: `synchronous_or_streamed`

Siųskite tikslų modelio ID kartu su messages.

Konteksto ilgis nėra išvesties limitas.

Teksto failas gali pateikti pažodinį tekstą; vaizdų / garso / failų objektų įvestims reikia tikslaus susiejimo.

### Planai

Tarifų informacija neprideda užklausos parinkčių. Palaikomi parametrai nurodyti prie pasirinkto metodo.

Spartusis režimas

Standartinis įkainis Pasirinkus spartųjį režimą

Flex režimas

Standartinis įkainis Pasirinkus flex režimą

Didžiausios samprotavimo pastangos

Standartinis įkainis Kai didžiausioms samprotavimo pastangoms taikomas numatytasis koregavimas (default)

Samprotavimo pastangos · high

Standartinis įkainis Kai samprotavimo pastangų lygis yra high

Samprotavimo pastangos · low

Standartinis įkainis Kai samprotavimo pastangų lygis yra low

Samprotavimo pastangos · medium

Standartinis įkainis Kai samprotavimo pastangų lygis yra medium

Samprotavimo pastangos · minimal

Standartinis įkainis Kai samprotavimo pastangų lygis yra minimal

Išreikštinio podėlio kainodara

Neįjungta Kai prašoma išreikštinio podėlio

#### Ailoot įkainiai

#### Kainos pagal konfigūraciją

Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.

| Konfigūracija | Įkainių lentelė | Konteksto tokenų daugiau nei | Konteksto tokenų iki imtinai | Mokestis |
| --- | --- | --- | --- | --- |
| KonfigūracijaBaziniai žetonų įkainiai | Įkainių lentelėBazinis įkainis | Konteksto tokenų daugiau nei— | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |
| KonfigūracijaUžklausos ilgio pakopa 1 | Įkainių lentelė— | Konteksto tokenų daugiau nei0 | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |

Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. [Kaip veikia rezervavimas ir atsiskaitymas →](https://ailoot.ai/docs/lt/billing/reserve/)

### Užklausų pavyzdžiai

#### Ailoot Ultra · OpenAI pokalbis

curlPython SDKPython srautas

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "google/gemini-3.5-flash-lite", "messages": [{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}]}')

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

```python
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model='google/gemini-3.5-flash-lite',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}])
import base64, json
from pathlib import Path

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

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

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

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

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

with client.chat.completions.stream(model='google/gemini-3.5-flash-lite',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")
```

### Gauti ir išsaugoti rezultatus

#### Ailoot Ultra · OpenAI pokalbis

json arba SSE

##### Išsaugoti visus baigtus rezultatus

Išsaugokite kiekvieną visą grąžintą atsakymą, failą ir turinio dalį.

Išsaugokite kiekvieną variantą ir jo turinį / įrankių iškvietimus / samprotavimą. SSE prieaugius surinkite pagal varianto / įrankio indeksą; išsaugokite galutinę užbaigimo priežastį ir naudojimo duomenis.

##### Jei reikia patikrinti pradinį atsakymą

Išsaugokite užklausų / atsakymų ID ir antraštes. Bendras teksto užduoties gavimo URL nepateikiamas.

Atsakymo laukai

| Laukas | Tipas |
| --- | --- |
| Laukas`choices[].index` | Tipasinteger |
| Laukas`choices[].message.content` | Tipasstring\|null |
| Laukas`choices[].message.tool_calls` | Tipastool\_call\[\] |
| Laukas`choices[].message.reasoning_content` | Tipasstring |
| Laukas`choices[].message.reasoning_details` | Tipasobject\|array |
| Laukas`choices[].finish_reason` | Tipasstring\|null |
| Laukas`usage` | Tipasobject |

Klaidos ir tolesni veiksmai

| Atsakymas | Sąlyga | Kitas žingsnis |
| --- | --- | --- |
| Atsakymas400 · `invalid_request_error` | SąlygaNetinkami privalomi laukai, medžiagos pateikimo forma arba parametro reikšmė | Kitas žingsnisPrieš naują kūrimo užklausą pataisykite nurodytus laukus. |

### Pseudonimai

#### Modelių pseudonimai

<strong>Ailoot</strong> [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-3.5-flash-lite), [`gemini-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite), [`gemini-flash-lite-latest`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite-latest)
**Ailoot Ultra** [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=gemini-3.5-flash-lite&fmt=chat), [`google/gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=google%2Fgemini-3.5-flash-lite&fmt=chat)

#### Metodų kelių pseudonimai

`/chat/completions`

#### Susiję ID iškvietimui

[`google/gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=google%2Fgemini-3.5-flash-lite&fmt=chat), [`gemini-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite), [`gemini-flash-lite-latest`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite-latest), [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-3.5-flash-lite), [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=gemini-3.5-flash-lite&fmt=chat)

**Ailoot Ultra · Anthropic pranešimai** `POST /v1/messages` `google/gemini-3.5-flash-lite`

[`google/gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=google%2Fgemini-3.5-flash-lite&fmt=messages)

Google /`google/gemini-3.5-flash-lite`

Modelio ID

- `gemini-3.5-flash-lite`
- `google/gemini-3.5-flash-lite`

### Pradžia

Gemini 3.5 Flash-Lite – Google daugiarūšis modelis, skirtas tikslingoms pagalbinių agentų užduotims, dokumentų analizavimui ir pasikartojančiam duomenų ištraukimui. Numatytasis minimal samprotavimas tinka ribotos apimties įrašams; kelių etapų darbui su įrankiais dokumentuoti medium arba high lygiai. Iš teksto, vaizdų, garso, vaizdo įrašų ir PDF jis grąžina tekstą arba struktūrizuotus rezultatus.

Leidžiamos įvestys

Tekstas

Rezultatai

json · sse

### Prieinama Ailoot · įvestys ir metodai

**Ailoot Ultra · Anthropic pranešimai** `POST /v1/messages`

Įvestis

`text`

Išvestis

`json`, `sse`

Išvesties formatas

JSON arba SSE

| Laukas | Tipas | Reikalavimas | Reikšmės ir ribos | Numatyta |
| --- | --- | --- | --- | --- |
| Laukas`model` | Tipas`string` | ReikalavimasPrivaloma | Reikšmės ir ribos google/gemini-3.5-flash-lite | Numatyta— |
| Laukas`messages` | Tipas`message[]` | ReikalavimasPrivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`messages[].role` | Tipas`string` | ReikalavimasPrivaloma | Reikšmės ir ribos user, assistant | Numatyta— |
| Laukas`messages[].content` | Tipas`string` | ReikalavimasPrivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`max_tokens` | Tipas`integer` | ReikalavimasPrivaloma | Reikšmės ir ribos | Numatyta— |
| Laukas`stream` | Tipas`boolean` | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatytafalse |

Įvesties medžiagos deriniai

**Tekstas** · UTF-8 tekstas

`messages[].content eilutė`

Metodo parametrai ir gyvavimo ciklas

| Parametras | Specifikacija |
| --- | --- |
| Parametras`content_type` | Specifikacijaapplication/json |
| Parametras`required` | Specifikacijamodel, messages, max\_tokens |
| Parametras`optional_controls` | Specifikacijastream |
| Parametras`material_types` | Specifikacijatext |
| Parametras`text_file_material` | SpecifikacijaPerskaitykite tikrąjį UTF-8 dokumentą ir įterpkite jo tekstą į nurodytą input lauką arba pranešimo turinio eilutę. |

Gyvavimo ciklas: `synchronous_or_streamed`

### Planai

Tarifų informacija neprideda užklausos parinkčių. Palaikomi parametrai nurodyti prie pasirinkto metodo.

Spartusis režimas

Standartinis įkainis Pasirinkus spartųjį režimą

Flex režimas

Standartinis įkainis Pasirinkus flex režimą

Didžiausios samprotavimo pastangos

Standartinis įkainis Kai didžiausioms samprotavimo pastangoms taikomas numatytasis koregavimas (default)

Samprotavimo pastangos · high

Standartinis įkainis Kai samprotavimo pastangų lygis yra high

Samprotavimo pastangos · low

Standartinis įkainis Kai samprotavimo pastangų lygis yra low

Samprotavimo pastangos · medium

Standartinis įkainis Kai samprotavimo pastangų lygis yra medium

Samprotavimo pastangos · minimal

Standartinis įkainis Kai samprotavimo pastangų lygis yra minimal

Išreikštinio podėlio kainodara

Neįjungta Kai prašoma išreikštinio podėlio

#### Ailoot įkainiai

#### Kainos pagal konfigūraciją

Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.

| Konfigūracija | Įkainių lentelė | Konteksto tokenų daugiau nei | Konteksto tokenų iki imtinai | Mokestis |
| --- | --- | --- | --- | --- |
| KonfigūracijaBaziniai žetonų įkainiai | Įkainių lentelėBazinis įkainis | Konteksto tokenų daugiau nei— | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |
| KonfigūracijaUžklausos ilgio pakopa 1 | Įkainių lentelė— | Konteksto tokenų daugiau nei0 | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai **$0.0006** / 1K tokenų Išvestis · Išvesties tokenai **$0.005** / 1K tokenų Įvestis · Talpyklos skaitymas **$0.00006** / 1K tokenų Įvestis · Rašymas į talpyklą **$0.0001666666666666666** / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val **—** / 1K tokenų |

Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. [Kaip veikia rezervavimas ir atsiskaitymas →](https://ailoot.ai/docs/lt/billing/reserve/)

### Užklausų pavyzdžiai

#### Ailoot Ultra · Anthropic pranešimai

Visas minimalus JSON užklausos turinyscurl · naudokite savo UTF-8 dokumentąPython · išsaugokite visą rezultatą

```json
{
  "model": "google/gemini-3.5-flash-lite",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
```

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

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

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

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

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

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

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

### Gauti ir išsaugoti rezultatus

#### Ailoot Ultra · Anthropic pranešimai

JSON arba SSE

##### Išsaugoti visus baigtus rezultatus

Išsaugokite kiekvieną visą grąžintą atsakymą, failą ir turinio dalį.

Išsaugokite visus turinio blokus, mąstymo parašus ir tikruosius įrankių naudojimo ID. Surinkite visus SSE blokų prieaugius; pirmasis teksto blokas nėra visa išvestis.

##### Jei reikia patikrinti pradinį atsakymą

Išsaugokite užklausų / atsakymų ID ir antraštes. Bendras teksto užduoties gavimo URL nepateikiamas.

Atsakymo laukai

| Laukas | Tipas |
| --- | --- |
| Laukas`id` | Tipasstring |
| Laukas`model` | Tipasstring |
| Laukas`content[]` | Tipastext\|thinking\|tool\_use\|other content block |
| Laukas`stop_reason` | Tipasstring\|null |
| Laukas`usage` | Tipasobject |

Klaidos ir tolesni veiksmai

| Atsakymas | Sąlyga | Kitas žingsnis |
| --- | --- | --- |
| Atsakymas400 · `invalid_request_error` | SąlygaNetinkami privalomi laukai, medžiagos pateikimo forma arba parametro reikšmė | Kitas žingsnisPrieš naują kūrimo užklausą pataisykite nurodytus laukus. |

### Pseudonimai

#### Modelių pseudonimai

<strong>Ailoot</strong> [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-3.5-flash-lite&fmt=messages), [`gemini-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite&fmt=messages), [`gemini-flash-lite-latest`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite-latest&fmt=messages)
**Ailoot Ultra** [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=gemini-3.5-flash-lite&fmt=messages), [`google/gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=google%2Fgemini-3.5-flash-lite&fmt=messages)

#### Metodų kelių pseudonimai

`/chat/completions`

#### Susiję ID iškvietimui

[`google/gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=google%2Fgemini-3.5-flash-lite&fmt=messages), [`gemini-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite&fmt=messages), [`gemini-flash-lite-latest`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-flash-lite-latest&fmt=messages), [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Core&caller=gemini-3.5-flash-lite&fmt=messages), [`gemini-3.5-flash-lite`](https://ailoot.ai/models/lt/#m=google%2Fgemini-3.5-flash-lite&route=Ultra&caller=gemini-3.5-flash-lite&fmt=messages)

FAQ · Google: Gemini 3.5 Flash Lite

Kokios įvestys ir rezultatai prieinami?

`POST /v1/messages` · `gemini-3.5-flash-lite`: `text`, `image` → `text` `POST /v1beta/models/{model}:generateContent` · `gemini-3.5-flash-lite`: `text`, `image` → `text` `POST /v1/chat/completions` · `gemini-3.5-flash-lite`: `text` → `text` `POST /v1/messages` · `gemini-3.5-flash-lite`: `text` → `json`, `sse` `POST /v1/messages` · `gemini-flash-lite`: `text`, `image` → `text` `POST /v1beta/models/{model}:generateContent` · `gemini-flash-lite`: `text`, `image` → `text` `POST /v1/messages` · `gemini-flash-lite-latest`: `text`, `image` → `text` `POST /v1beta/models/{model}:generateContent` · `gemini-flash-lite-latest`: `text`, `image` → `text` `POST /v1/chat/completions` · `google/gemini-3.5-flash-lite`: `text` → `text` `POST /v1/messages` · `google/gemini-3.5-flash-lite`: `text` → `json`, `sse`

Kokius laukus naudoja užklausa?

`POST /v1/messages` · `gemini-3.5-flash-lite`: `model`, `messages`, `system`, `max_tokens`, `stream`, `metadata` `POST /v1beta/models/{model}:generateContent` · `gemini-3.5-flash-lite`: `contents`, `systemInstruction`, `sessionId` `POST /v1/chat/completions` · `gemini-3.5-flash-lite`: `model`, `messages`, `stream` `POST /v1/messages` · `gemini-3.5-flash-lite`: `model`, `messages`, `max_tokens`, `stream` `POST /v1/messages` · `gemini-flash-lite`: `model`, `messages`, `system`, `max_tokens`, `stream`, `metadata` `POST /v1beta/models/{model}:generateContent` · `gemini-flash-lite`: `contents`, `systemInstruction`, `sessionId` `POST /v1/messages` · `gemini-flash-lite-latest`: `model`, `messages`, `system`, `max_tokens`, `stream`, `metadata` `POST /v1beta/models/{model}:generateContent` · `gemini-flash-lite-latest`: `contents`, `systemInstruction`, `sessionId` `POST /v1/chat/completions` · `google/gemini-3.5-flash-lite`: `model`, `messages`, `stream`, `modalities`, `provider` `POST /v1/messages` · `google/gemini-3.5-flash-lite`: `model`, `messages`, `max_tokens`, `stream`

Kokie apribojimai taikomi?

`POST /v1/messages` · `gemini-3.5-flash-lite`: `ctx`: `1048576`; `max_out`: `65536`; `messages.min_items`: `1`; `max_tokens.minimum`: `1` `POST /v1beta/models/{model}:generateContent` · `gemini-3.5-flash-lite`: `contents.min_items`: `1` `POST /v1/chat/completions` · `gemini-3.5-flash-lite`: `messages.min_items`: `1` `POST /v1/messages` · `gemini-flash-lite`: `ctx`: `1048576`; `max_out`: `65536`; `messages.min_items`: `1`; `max_tokens.minimum`: `1` `POST /v1beta/models/{model}:generateContent` · `gemini-flash-lite`: `contents.min_items`: `1` `POST /v1/messages` · `gemini-flash-lite-latest`: `ctx`: `1048576`; `max_out`: `65536`; `messages.min_items`: `1`; `max_tokens.minimum`: `1` `POST /v1beta/models/{model}:generateContent` · `gemini-flash-lite-latest`: `contents.min_items`: `1` `POST /v1/chat/completions` · `google/gemini-3.5-flash-lite`: `messages.min_items`: `1`

Prijunkite Ailoot prie Claude Code, OpenCode, Hermes arba savo programos.

## Įmonė ir jos projektų portfelis

Įmonė ir jos projektų portfelis: milijonai klientų; mėnesio pardavimai siekia milijardus.

## Pirkite žetonus su nuolaida.

Prenumeratos nuolaida reguliariam darbui. Kodai — iki 50% žetonų pirkimui.

Prenumerata

Pasirinkite planą su nuolaida reguliarioms užklausoms.

Nuolaidos kodas iki 50%

Įveskite kodą perkant. Kaina perskaičiuojama pagal galiojančios akcijos sąlygas.

Išlaidos istorijoje

Kiekvienai užklausai išsaugomi modelis, žetonai ir suma.

[Pasirinkti prenumeratą](https://ailoot.ai/docs/lt/billing/subscriptions/) · [Peržiūrėti modelių kainas](https://ailoot.ai/models/lt/)

## Prijunkite API prie produkto, kurį parduodate.

SaaS, programos ir botai pagal Ailoot ofertą bei licencijos sutartį. Perpardavimui paprašykite perpardavėjo licencijos.

Komercinė programa

Teksto, vaizdų, video ir garso kūrimą integruokite į mokamas paslaugos funkcijas.

Perpardavėjo licencija

Atsiųskite projekto aprašymą ir prieigos schemą. Paprašykite rašytinių naudojimo ir perpardavimo sąlygų.

Dokumentai svetainėje

Oferta, licencijos sutartis ir duomenų tvarkymo politika prieinamos prieš prisijungiant.

[Paprašyti perpardavėjo licencijos](mailto:support@ailoot.ai) · [Oferta ir licencijos sutartis](https://ailoot.ai/legal/offer?lang=lt)

## Ailoot · Įmonė ir jos projektų portfelis





Ailoot remiasi sukaupta veiklos patirtimi, plačia klientų baze, stabiliomis paslaugomis ir nuolatine KPI kontrole.





Įmonė ir jos projektų portfelis: milijonai klientų; mėnesio pardavimai siekia milijardus.





Ailoot šią veiklos patirtį pritaiko teikdama API prieigą prie DI funkcijų klientų produktuose, agentuose, programose ir automatizavimo sprendimuose.
