modeli

Google: Gemini 3.5 Flash Lite

Markdown · JSON

Google: Gemini 3.5 Flash Lite

Gemini 3.5 Flash-Lite je Googlov multimodalni model za osredotočene naloge podagentov, razčlenjevanje dokumentov in ponavljajoče se izluščevanje podatkov. Njegovo privzeto sklepanje minimal ustreza omejenim zapisom; za delo z orodji v več korakih sta dokumentirani ravni medium ali high. Iz besedila, slik, zvoka, videa in PDF vrača besedilo ali strukturirane rezultate.

O modelu

Ta opis zajema zmožnosti modela. Vhodi, izhodi in možnosti, ki so na voljo v Ailoot, so spodaj navedeni za izbrano metodo.

Gemini 3.5 Flash-Lite je Googlov multimodalni besedilni profil, osredotočen na izvajanje ponavljajočega se dela s podatki in usmerjenih nalog podagentov. Nadgrajuje Gemini 3.1 Flash-Lite ter izboljšuje razumevanje dokumentov, zanesljivost orodij in sledenje navodilom v več izmenjavah. Sprejema besedilo, slike, zvok, video in PDF ter vrača besedilo. Uporaben rezultat je en izluščen zapis, razvrstitev, kratek prevod ali omejena analiza s pomočjo orodij znotraj večje naloge.

Za razčlenjevanje dokumentov določite pomembna polja in dokaze, ki jih mora vsako polje ohraniti. Priložite ustrezne strani in določite način predstavitve manjkajočih ali dvoumnih informacij. Pri izluščevanju iz sporočil podpori iz sporočila izluščite kodo izdelka, omenjeno težavo in podporno poved ter v odgovoru ohranite identifikator sporočila. Če dokument za isto polje vsebuje več možnih vrednosti, jih ne smete neopazno skrčiti na eno ugibano vrednost. Strukturirani JSON lahko omogoči uporabo rezultata v nadaljnji obdelavi, kadar njegova shema ustreza dejanski nalogi.

Dokumentirane ravni razmišljanja so minimal, low, medium in high, privzeta pa je minimal. Proizvajalec jo priporoča za obsežno izluščevanje, usmerjanje in razvrščanje, medtem ko sta medium ali high primerni za samostojno delo podagentov, ki vključuje klice orodij, izvajanje kode ali več korakov sklepanja. Vodnik pri takih daljših nalogah posebej svetuje povečanje intenzivnosti, da se prepreči prezgodnje končanje uporabe orodij. Izluščevanju enega polja in primerjavi dokumentov z izjemami zato koristijo različne izbire intenzivnosti. Minimal je podprta nastavitev te izdaje, ne splošna nastavitev, ki bi jo prenesli na vsak model Flash.

Osredotočena navodila za podagenta naj vsebujejo eno nalogo, izvorno gradivo, dovoljena orodja in zahtevano končno obliko. Podagent lahko na primer preveri preglednico glede na navedeno pravilo in vrne zadevne vrstice z ustreznimi vrednostmi. Proizvajalec izpostavlja tudi obdelavo tabelaričnih podatkov in delo z JavaScriptom za uporabniški vmesnik ob pomoči preprostega izvajanja kode. Okoliška aplikacija ostaja odgovorna za izvajanje zahtevane funkcije in vračanje dejanskega rezultata. Dokončan rezultat naj bo razločljiv od neizvedenega predloga ali nerazrešenega vprašanja o vhodu.

Stran za 3.5 Flash-Lite navaja klicanje funkcij, izvajanje kode, iskanje po datotekah, utemeljevanje z iskanjem, utemeljevanje s podatki Maps in kontekst URL, Computer Use pa je označen kot predogled. Podprta sta strukturiran izhod in razmišljanje. Pri vlogi ali nalogi v več izmenjavah ohranite dejanska navodila in opažanja orodij, da poznejši odgovori sledijo isti nalogi. Vodnik za razvijalce poudarja boljše ohranjanje vloge kot pri 3.1 Flash-Lite. Uporabite jedrnato vlogo in izhodna pravila, namesto da bi cilj na novo določali ob vsakem nadaljnjem sporočilu.

Vodnik za to izdajo tudi označuje stare nastavitve vzorčenja in vnaprej izpolnjene zadnje izmenjave modela kot zastarele. Omejen odgovor usmerjajte z izrecnimi navodili ali shemo, namesto da bi ga poskušali začeti v umetni izmenjavi z vlogo modela. Ohranite kontekst podpisov razmišljanja Gemini 3, kjer ga vmesnik zahteva, in rezultate funkcij povežite z njihovimi klici. Ta pravila priprave podpirajo nadaljevanje, ki še vedno vsebuje dokaze, potrebne za dokončanje iste naloge.

Izvirna kartica modela navaja do 1M konteksta in 64K besedilnega izhoda; natančna stran API določa 1,048,576 vhodnih žetonov in 65,536 izhodnih žetonov. Navodila, zapisi, zgodovina in medijsko gradivo vsi prispevajo k pripravi vhoda. Za proizvajalčev profil so navedene možnosti predpomnjenja, paketne obdelave, Flex in Priority. Pri ponavljajočih se zahtevah uporabite stalne identifikatorje ter strnjeno in dosledno obliko odgovora, da lahko vsako izluščenje primerjate z njegovim virom. Zvočni, slikovni ali video vhod pri tem profilu ustvari besedilno razlago ali prepis, ne ustvarjenega govora ali likovnega dela.

Možne omejitve vključujejo halucinacije ter občasne zamude ali časovne prekoračitve. Mejni datum znanja je marec 2026, na nekaterih področjih pa je znanje omejeno na januar 2025. Izluščevanje, odvisno od vira, naj vrne tisto, kar podpira priloženo gradivo; vprašanja o aktualnih dejstvih potrebujejo aktualne dokaze. V primerjavi s 3.1 Flash-Lite ta profil dodaja dokumentirane zmožnosti izvajanja in uporabe računalnika, medtem ko 3.6 Flash poudarja zahtevnejše programiranje in prostorsko delo. Pred vključitvijo odgovora v širši delovni postopek preglejte izluščena polja, rezultate orodij in ohranjena navodila.

Praktična naloga

Praktična naloga

Tehnični primer v angleščini

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.

Pričakovani rezultat

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

Preverjanje rezultata

Check that two purchased pumps do not become two defective pumps.
Ailoot · Anthropic Messages POST /v1/messages gemini-3.5-flash-lite

gemini-3.5-flash-lite

Google /gemini-3.5-flash-lite
ID modela
  • gemini-3.5-flash-lite
  • gemini-flash-lite
  • gemini-flash-lite-latest

Začetek

Gemini 3.5 Flash-Lite je Googlov multimodalni model za osredotočene naloge podagentov, razčlenjevanje dokumentov in ponavljajoče se izluščevanje podatkov. Njegovo privzeto sklepanje minimal ustreza omejenim zapisom; za delo z orodji v več korakih sta dokumentirani ravni medium ali high. Iz besedila, slik, zvoka, videa in PDF vrača besedilo ali strukturirane rezultate.

Dovoljeni vhodi
Besedilo · Slike
Rezultati
Besedilo

Na voljo v Ailoot · vhodi in metode

Ailoot · Anthropic Messages POST /v1/messages
Vhod
text, image
Izhod
text
Kontekst
1.048.576 tokens
Največji izhod
65.536 tokens
Izhodni format
json ali SSE
PoljeVrstaZahtevaVrednosti in omejitvePrivzeto
PoljemodelVrstastringZahtevaObveznoVrednosti in omejitve
gemini-3.5-flash-lite
Privzeto—
PoljemessagesVrstamessage[]ZahtevaObveznoVrednosti in omejitve
Najmanjše število elementov: 1
Privzeto—
Poljemessages[].roleVrstastringZahtevaObveznoVrednosti in omejitve
user, assistant
Privzeto—
Poljemessages[].contentVrstastring|content_block[]ZahtevaObveznoVrednosti in omejitvePrivzeto—
PoljesystemVrstastring|content_block[]ZahtevaIzbirnoVrednosti in omejitvePrivzeto—
Poljemax_tokensVrstaintegerZahtevaObveznoVrednosti in omejitve
Najmanj: 1
Omejitev velja za: natančna zgornja meja izbranega modela/kartice
Privzeto—
PoljestreamVrstabooleanZahtevaIzbirnoVrednosti in omejitvePrivzetofalse
PoljetemperatureVrstanumberZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Poljetop_pVrstanumberZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Poljestop_sequencesVrstastring[]ZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljetoolsVrstatool[]ZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Poljetools[].nameVrstastringZahtevaIzbirnoVrednosti in omejitve
Velja, ko: podano je orodje
Privzeto—
Poljetools[].descriptionVrstastringZahtevaIzbirnoVrednosti in omejitvePrivzeto—
Poljetools[].input_schemaVrstaJSON_schemaZahtevaIzbirnoVrednosti in omejitvePrivzeto—
Poljetool_choiceVrstaobjectZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Poljethinking.typeVrstastringZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Poljethinking.budget_tokensVrstaintegerZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Poljeoutput_config.effortVrstastringZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljemetadataVrstaobjectZahtevaIzbirnoVrednosti in omejitvePrivzeto—
Poljecache_controlVrstaobjectZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Kombinacije vhodnih gradiv

Besedilo · Besedilo UTF8

messages[].content ali blok type=text

Besedilo + slika

{type:image,source:{type:base64,media_type,data}} ali vir vrste type=url

Parametri in življenjski cikel metode
ParameterSpecifikacija
Parametermaterial_typesSpecifikacijatext, image
ParameterrequiredSpecifikacijamodel, messages, max_tokens
Parameteroptional_controlsSpecifikacijanull
Parametercontent_typeSpecifikacijaapplication/json
Parametertext_file_materialSpecifikacijadejanska vsebina UTF-8 je vstavljena kot besedilo; ID datotek in URLs potrebujejo ločeno, natančno določeno podporo

Življenjski cikel: exact retained published method

Strukture metod in ID so natančno določeni; zmožnost ponudnika je ločena od sprejema zahteve.

Cenik

Cene metod Ailoot

Ailoot Anthropic MessagesPOST /v1/messages
Vhod
0,0003 $ / 1K
Izhod
0,0025 $ / 1K
Branje predpomnilnika
≈0,00003 $ / 1K

Ailoot pred zahtevo rezervira ocenjeni znesek. Po rezultatu obračuna končni strošek na podlagi izmerjene porabe. Obračun pretakanja uporablja končni zapis porabe. Kako delujeta rezervacija in obračun →

Podrobnosti referenčne tarife

Referenčne lestvice modela ne spreminjajo izbire metode, ocen cen ali stroškov. Veljavni stroški uporabljajo cene izbrane metode Ailoot.

Referenčne lestvice modela

Cene po nastavitvah

Vsak strošek povežite s prikazanimi pogoji. Za vsak nabor alternativnih nastavitev uporabite eno ceno.

NastavitevCenovna lestvicaŽetonov konteksta več kotŽetonov konteksta do vključnoStrošek
NastavitevOpenAI Chat · Osnovne cene žetonovCenovna lestvicaOsnovna cenaŽetonov konteksta več kot—Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov
NastavitevOpenAI Chat · Razred 1 glede na dolžino zahteveCenovna lestvica—Žetonov konteksta več kot0Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov
NastavitevAnthropic Messages · Osnovne cene žetonovCenovna lestvicaOsnovna cenaŽetonov konteksta več kot—Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov
NastavitevAnthropic Messages · Razred 1 glede na dolžino zahteveCenovna lestvica—Žetonov konteksta več kot0Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov

Primeri zahtev

Ailoot · Anthropic Messages

Primer besedilaVhod, slikaPython SDKNode.js SDKTok Python
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
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
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"))
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);
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")

Prejmi in shrani rezultate

Ailoot · Anthropic Messages

json ali SSE

Ohrani vse dokončane rezultate

Shranite vsak v celoti vrnjen odgovor, datoteko in del vsebine.

Ohranite vse vsebinske bloke, podpise sklepanja in dejanske ID uporabe orodij. Sestavite vse delne spremembe blokov SSE; prvi besedilni blok ni celoten izhod.

Če je treba preveriti izvirni odgovor

Ohranite ID zahtev/odgovorov in glave. Splošni URL za pridobivanje besedilne naloge ni podan.

Polja odgovora
PoljeVrsta
PoljeidVrstastring
PoljemodelVrstastring
Poljecontent[]Vrstatext|thinking|tool_use|other content block
Poljestop_reasonVrstastring|null
PoljeusageVrstaobject
Napake in naslednji koraki
OdgovorPogojNaslednji korak
Odgovor400 · invalid_request_errorPogojNeveljavna obvezna polja, predstavitev gradiva ali vrednost parametraNaslednji korakPred novo zahtevo za ustvarjanje popravite navedena polja.

Druga imena

Druga imena modelov

Ailoot gemini-3.5-flash-lite, gemini-flash-lite, gemini-flash-lite-latest
Ailoot Ultra gemini-3.5-flash-lite, google/gemini-3.5-flash-lite

Druga imena poti metod

/chat/completions

Povezani ID-ji za klic

google/gemini-3.5-flash-lite, gemini-flash-lite, gemini-flash-lite-latest, gemini-3.5-flash-lite, gemini-3.5-flash-lite

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

gemini-3.5-flash-lite

Google /gemini-3.5-flash-lite
ID modela
  • gemini-3.5-flash-lite
  • gemini-flash-lite
  • gemini-flash-lite-latest

Začetek

Gemini 3.5 Flash-Lite je Googlov multimodalni model za osredotočene naloge podagentov, razčlenjevanje dokumentov in ponavljajoče se izluščevanje podatkov. Njegovo privzeto sklepanje minimal ustreza omejenim zapisom; za delo z orodji v več korakih sta dokumentirani ravni medium ali high. Iz besedila, slik, zvoka, videa in PDF vrača besedilo ali strukturirane rezultate.

Dovoljeni vhodi
Besedilo · Slike
Rezultati
Besedilo

Na voljo v Ailoot · vhodi in metode

Ailoot · Gemini generateContent POST /v1beta/models/{model}:generateContent
Vhod
text, image
Izhod
text
Izhodni format
json ali podprti pretočni izhod
PoljeVrstaZahtevaVrednosti in omejitvePrivzeto
Poljepath.modelVrstastringZahtevaObveznoVrednosti in omejitve
gemini-3.5-flash-lite
Privzeto—
PoljecontentsVrstacontent[]ZahtevaObveznoVrednosti in omejitve
Najmanjše število elementov: 1
Privzeto—
Poljecontents[].roleVrstastringZahtevaIzbirnoVrednosti in omejitve
user, model
Privzeto—
Poljecontents[].partsVrstapart[]ZahtevaObveznoVrednosti in omejitvePrivzeto—
PoljesystemInstructionVrstacontentZahtevaIzbirnoVrednosti in omejitvePrivzeto—
PoljegenerationConfig.maxOutputTokensVrstaintegerZahtevaIzbirnoVrednosti in omejitve
Najmanj: 1
Odvisno od modela
Privzeto—
PoljegenerationConfig.temperatureVrstanumberZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljegenerationConfig.topPVrstanumberZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljegenerationConfig.topKVrstaintegerZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljegenerationConfig.stopSequencesVrstastring[]ZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljegenerationConfig.thinkingConfig.includeThoughtsVrstabooleanZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljegenerationConfig.thinkingConfig.thinkingBudgetVrstaintegerZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Poljetools[].functionDeclarationsVrstafunction_declaration[]ZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljetoolConfig.functionCallingConfig.modeVrstastringZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljesafetySettingsVrstaobject[]ZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljesessionIdVrstastringZahtevaIzbirnoVrednosti in omejitvePrivzeto—
Kombinacije vhodnih gradiv

Besedilo · Besedilo UTF8

contents[].parts[].text

Besedilo + slika

parts[].inlineData={mimeType,data}

Parametri in življenjski cikel metode
ParameterSpecifikacija
Parametermaterial_typesSpecifikacijatext, image
ParameterrequiredSpecifikacijacontents
Parameteroptional_controlsSpecifikacijanull
Parametercontent_typeSpecifikacijaapplication/json
Parametertext_file_materialSpecifikacijadejanska vsebina UTF-8 je vstavljena kot besedilo; ID datotek in URLs potrebujejo ločeno, natančno določeno podporo

Življenjski cikel: exact retained published method

Strukture metod in ID so natančno določeni; zmožnost ponudnika je ločena od sprejema zahteve.

Cenik

Cene metod Ailoot

Ailoot Gemini generateContentPOST /v1beta/models/{model}:generateContent
Vhod
0,0003 $ / 1K
Izhod
0,0025 $ / 1K
Branje predpomnilnika
≈0,00003 $ / 1K

Ailoot pred zahtevo rezervira ocenjeni znesek. Po rezultatu obračuna končni strošek na podlagi izmerjene porabe. Obračun pretakanja uporablja končni zapis porabe. Kako delujeta rezervacija in obračun →

Podrobnosti referenčne tarife

Referenčne lestvice modela ne spreminjajo izbire metode, ocen cen ali stroškov. Veljavni stroški uporabljajo cene izbrane metode Ailoot.

Referenčne lestvice modela

Cene po nastavitvah

Vsak strošek povežite s prikazanimi pogoji. Za vsak nabor alternativnih nastavitev uporabite eno ceno.

NastavitevCenovna lestvicaŽetonov konteksta več kotŽetonov konteksta do vključnoStrošek
NastavitevOpenAI Chat · Osnovne cene žetonovCenovna lestvicaOsnovna cenaŽetonov konteksta več kot—Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov
NastavitevOpenAI Chat · Razred 1 glede na dolžino zahteveCenovna lestvica—Žetonov konteksta več kot0Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov
NastavitevAnthropic Messages · Osnovne cene žetonovCenovna lestvicaOsnovna cenaŽetonov konteksta več kot—Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov
NastavitevAnthropic Messages · Razred 1 glede na dolžino zahteveCenovna lestvica—Žetonov konteksta več kot0Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov

Primeri zahtev

Ailoot · Gemini generateContent

Primer besedilaVhod, slikaPython SDKNode.js SDKTok Python
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
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
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())
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);
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

Prejmi in shrani rezultate

Ailoot · Gemini generateContent

json ali podprti pretočni izhod

Ohrani vse dokončane rezultate

Shranite vsak v celoti vrnjen odgovor, datoteko in del vsebine.

Ohranite vse kandidate in dele, vključno s klici funkcij, podpisi sklepanja in podatki o porabi; dele toka sestavite po vrsti.

Če je treba preveriti izvirni odgovor

Ohranite ID zahtev/odgovorov in glave. Splošni URL za pridobivanje besedilne naloge ni podan.

Polja odgovora
PoljeVrsta
PoljeresponseIdVrstastring
PoljemodelVersionVrstastring
Poljecandidates[].content.parts[]Vrstatext|inlineData|functionCall|other part
Poljecandidates[].finishReasonVrstastring
PoljeusageMetadataVrstaobject
Napake in naslednji koraki
OdgovorPogojNaslednji korak
Odgovor400 · invalid_request_errorPogojNeveljavna obvezna polja, predstavitev gradiva ali vrednost parametraNaslednji korakPred novo zahtevo za ustvarjanje popravite navedena polja.

Druga imena

Druga imena modelov

Ailoot gemini-3.5-flash-lite, gemini-flash-lite, gemini-flash-lite-latest
Ailoot Ultra gemini-3.5-flash-lite, google/gemini-3.5-flash-lite

Druga imena poti metod

/chat/completions

Povezani ID-ji za klic

google/gemini-3.5-flash-lite, gemini-flash-lite, gemini-flash-lite-latest, gemini-3.5-flash-lite, gemini-3.5-flash-lite

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions gemini-3.5-flash-lite

gemini-3.5-flash-lite

Google /gemini-3.5-flash-lite
ID modela
  • gemini-3.5-flash-lite
  • google/gemini-3.5-flash-lite

Začetek

Gemini 3.5 Flash-Lite je Googlov multimodalni model za osredotočene naloge podagentov, razčlenjevanje dokumentov in ponavljajoče se izluščevanje podatkov. Njegovo privzeto sklepanje minimal ustreza omejenim zapisom; za delo z orodji v več korakih sta dokumentirani ravni medium ali high. Iz besedila, slik, zvoka, videa in PDF vrača besedilo ali strukturirane rezultate.

Dovoljeni vhodi
Besedilo
Rezultati
Besedilo

Na voljo v Ailoot · vhodi in metode

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
Vhod
text
Izhod
text
Izhodni format
json ali SSE
PoljeVrstaZahtevaVrednosti in omejitvePrivzeto
PoljemodelVrstastringZahtevaObveznoVrednosti in omejitve
gemini-3.5-flash-lite
Privzeto—
PoljemessagesVrstamessage[]ZahtevaObveznoVrednosti in omejitve
Najmanjše število elementov: 1
Privzeto—
Poljemessages[].roleVrstastringZahtevaObveznoVrednosti in omejitve
Odvisno od modela
Privzeto—
Poljemessages[].contentVrstastringZahtevaIzbirnoVrednosti in omejitve
Velja, ko: Besedilni pogovor
Privzeto—
PoljestreamVrstabooleanZahtevaIzbirnoVrednosti in omejitvePrivzetofalse
Kombinacije vhodnih gradiv

Besedilo · Besedilo UTF8

messages[].content

Parametri in življenjski cikel metode
ParameterSpecifikacija
Parametercontent_typeSpecifikacijaapplication/json
ParameterrequiredSpecifikacijamodel, messages
Parametermaterial_typesSpecifikacijatext
ParametermessagesSpecifikacijapolje sporočil s strukturo role/content
Parameterfile_materialSpecifikacijadejanski dokument UTF-8 je vstavljen kot dobesedno besedilo; ID datoteke se ne izpeljuje
Parameteroptional_controlsSpecifikacijastream
Parametercontrol_scopeSpecifikacijaBesedilni pogovor; stream je logična vrednost in je privzeto false.
Parameteroutput_modalitiesSpecifikacijatext
Parameterhosted_operationsSpecifikacijafalse
Parametermultimodal_input_bindingSpecifikacijanull

Druga imena metode: /chat/completions

Življenjski cikel: synchronous_or_streamed

Pošljite natančen ID modela skupaj z messages.

Dolžina konteksta ni zgornja meja izhoda.

Besedilna datoteka lahko poda dobesedno besedilo; slikovni, zvočni vhodi in vhodi z datotečnimi objekti potrebujejo natančno vezavo.

Cenik

Tarifni podatki ne dodajajo možnosti zahteve. Podprti parametri so navedeni pri izbrani metodi.

Hitri način
Standardna tarifa Ko je izbran hitri način
Način flex
Standardna tarifa Ko je izbran način flex
Najvišja raven razmišljanja
Standardna tarifa Ko najvišja raven razmišljanja uporablja privzeto prilagoditev (default)
Raven razmišljanja · visoka
Standardna tarifa Ko je raven razmišljanja visoka
Raven razmišljanja · nizka
Standardna tarifa Ko je raven razmišljanja nizka
Raven razmišljanja · srednja
Standardna tarifa Ko je raven razmišljanja srednja
Raven razmišljanja · minimalna
Standardna tarifa Ko je raven razmišljanja minimalna
Cene izrecnega predpomnjenja
Ni omogočeno Ko je zahtevano eksplicitno predpomnjenje

Cene Ailoot

Cene po nastavitvah

Vsak strošek povežite s prikazanimi pogoji. Za vsak nabor alternativnih nastavitev uporabite eno ceno.

NastavitevCenovna lestvicaŽetonov konteksta več kotŽetonov konteksta do vključnoStrošek
NastavitevOsnovne cene za žetoneCenovna lestvicaOsnovna cenaŽetonov konteksta več kot—Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov
NastavitevRazred 1 glede na dolžino zahteveCenovna lestvica—Žetonov konteksta več kot0Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov

Ailoot pred zahtevo rezervira ocenjeni znesek. Po rezultatu obračuna končni strošek na podlagi izmerjene porabe. Obračun pretakanja uporablja končni zapis porabe. Kako delujeta rezervacija in obračun →

Primeri zahtev

Ailoot Ultra · OpenAI Chat

curlPython SDK
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
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"))

Prejmi in shrani rezultate

Ailoot Ultra · OpenAI Chat

json ali SSE

Ohrani vse dokončane rezultate

Shranite vsak v celoti vrnjen odgovor, datoteko in del vsebine.

Ohranite vsako možnost odgovora ter njeno vsebino, klice orodij in sklepanje. V SSE sestavite delne spremembe po indeksu možnosti/orodja ter ohranite končni razlog zaključka in podatke o porabi.

Če je treba preveriti izvirni odgovor

Ohranite ID zahtev/odgovorov in glave. Splošni URL za pridobivanje besedilne naloge ni podan.

Polja odgovora
PoljeVrsta
Poljechoices[].indexVrstainteger
Poljechoices[].message.contentVrstastring|null
Poljechoices[].message.tool_callsVrstatool_call[]
Poljechoices[].message.reasoning_contentVrstastring
Poljechoices[].message.reasoning_detailsVrstaobject|array
Poljechoices[].finish_reasonVrstastring|null
PoljeusageVrstaobject
Napake in naslednji koraki
OdgovorPogojNaslednji korak
Odgovor400 · invalid_request_errorPogojNeveljavna obvezna polja, predstavitev gradiva ali vrednost parametraNaslednji korakPred novo zahtevo za ustvarjanje popravite navedena polja.

Druga imena

Druga imena modelov

Ailoot gemini-3.5-flash-lite, gemini-flash-lite, gemini-flash-lite-latest
Ailoot Ultra gemini-3.5-flash-lite, google/gemini-3.5-flash-lite

Druga imena poti metod

/chat/completions

Povezani ID-ji za klic

google/gemini-3.5-flash-lite, gemini-flash-lite, gemini-flash-lite-latest, gemini-3.5-flash-lite, gemini-3.5-flash-lite

Ailoot Ultra · Anthropic Messages POST /v1/messages gemini-3.5-flash-lite

gemini-3.5-flash-lite

Google /gemini-3.5-flash-lite
ID modela
  • gemini-3.5-flash-lite
  • google/gemini-3.5-flash-lite

Začetek

Gemini 3.5 Flash-Lite je Googlov multimodalni model za osredotočene naloge podagentov, razčlenjevanje dokumentov in ponavljajoče se izluščevanje podatkov. Njegovo privzeto sklepanje minimal ustreza omejenim zapisom; za delo z orodji v več korakih sta dokumentirani ravni medium ali high. Iz besedila, slik, zvoka, videa in PDF vrača besedilo ali strukturirane rezultate.

Dovoljeni vhodi
Besedilo
Rezultati
json · sse

Na voljo v Ailoot · vhodi in metode

Ailoot Ultra · Anthropic Messages POST /v1/messages
Vhod
text
Izhod
json, sse
Izhodni format
JSON ali SSE
PoljeVrstaZahtevaVrednosti in omejitvePrivzeto
PoljemodelVrstastringZahtevaObveznoVrednosti in omejitve
gemini-3.5-flash-lite
Privzeto—
PoljemessagesVrstamessage[]ZahtevaObveznoVrednosti in omejitvePrivzeto—
Poljemessages[].roleVrstastringZahtevaObveznoVrednosti in omejitve
user, assistant
Privzeto—
Poljemessages[].contentVrstastringZahtevaObveznoVrednosti in omejitvePrivzeto—
Poljemax_tokensVrstaintegerZahtevaObveznoVrednosti in omejitvePrivzeto—
PoljestreamVrstabooleanZahtevaIzbirnoVrednosti in omejitvePrivzetofalse
Kombinacije vhodnih gradiv

Besedilo · Besedilo UTF-8

niz messages[].content

Parametri in življenjski cikel metode
ParameterSpecifikacija
Parametercontent_typeSpecifikacijaapplication/json
ParameterrequiredSpecifikacijamodel, messages, max_tokens
Parameteroptional_controlsSpecifikacijastream
Parametermaterial_typesSpecifikacijatext
Parametertext_file_materialSpecifikacijaPreberite dejanski dokument UTF-8 in njegovo besedilo vstavite v navedeni vhodni niz ali niz vsebine sporočila.

Življenjski cikel: synchronous_or_streamed

Cenik

Tarifni podatki ne dodajajo možnosti zahteve. Podprti parametri so navedeni pri izbrani metodi.

Hitri način
Standardna tarifa Ko je izbran hitri način
Način flex
Standardna tarifa Ko je izbran način flex
Najvišja raven razmišljanja
Standardna tarifa Ko najvišja raven razmišljanja uporablja privzeto prilagoditev (default)
Raven razmišljanja · visoka
Standardna tarifa Ko je raven razmišljanja visoka
Raven razmišljanja · nizka
Standardna tarifa Ko je raven razmišljanja nizka
Raven razmišljanja · srednja
Standardna tarifa Ko je raven razmišljanja srednja
Raven razmišljanja · minimalna
Standardna tarifa Ko je raven razmišljanja minimalna
Cene izrecnega predpomnjenja
Ni omogočeno Ko je zahtevano eksplicitno predpomnjenje

Cene Ailoot

Cene po nastavitvah

Vsak strošek povežite s prikazanimi pogoji. Za vsak nabor alternativnih nastavitev uporabite eno ceno.

NastavitevCenovna lestvicaŽetonov konteksta več kotŽetonov konteksta do vključnoStrošek
NastavitevOsnovne cene za žetoneCenovna lestvicaOsnovna cenaŽetonov konteksta več kot—Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov
NastavitevRazred 1 glede na dolžino zahteveCenovna lestvica—Žetonov konteksta več kot0Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov

Ailoot pred zahtevo rezervira ocenjeni znesek. Po rezultatu obračuna končni strošek na podlagi izmerjene porabe. Obračun pretakanja uporablja končni zapis porabe. Kako delujeta rezervacija in obračun →

Primeri zahtev

Ailoot Ultra · Anthropic Messages

Popolno minimalno telo zahteve JSONcurl · uporabite svoj dokument UTF-8Python · shranite celoten rezultat
{
  "model": "gemini-3.5-flash-lite",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
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
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))

Prejmi in shrani rezultate

Ailoot Ultra · Anthropic Messages

JSON ali SSE

Ohrani vse dokončane rezultate

Shranite vsak v celoti vrnjen odgovor, datoteko in del vsebine.

Ohranite vse vsebinske bloke, podpise sklepanja in dejanske ID uporabe orodij. Sestavite vse delne spremembe blokov SSE; prvi besedilni blok ni celoten izhod.

Če je treba preveriti izvirni odgovor

Ohranite ID zahtev/odgovorov in glave. Splošni URL za pridobivanje besedilne naloge ni podan.

Polja odgovora
PoljeVrsta
PoljeidVrstastring
PoljemodelVrstastring
Poljecontent[]Vrstatext|thinking|tool_use|other content block
Poljestop_reasonVrstastring|null
PoljeusageVrstaobject
Napake in naslednji koraki
OdgovorPogojNaslednji korak
Odgovor400 · invalid_request_errorPogojNeveljavna obvezna polja, predstavitev gradiva ali vrednost parametraNaslednji korakPred novo zahtevo za ustvarjanje popravite navedena polja.

Druga imena

Druga imena modelov

Ailoot gemini-3.5-flash-lite, gemini-flash-lite, gemini-flash-lite-latest
Ailoot Ultra gemini-3.5-flash-lite, google/gemini-3.5-flash-lite

Druga imena poti metod

/chat/completions

Povezani ID-ji za klic

google/gemini-3.5-flash-lite, gemini-flash-lite, gemini-flash-lite-latest, gemini-3.5-flash-lite, gemini-3.5-flash-lite

Ailoot · Anthropic Messages POST /v1/messages gemini-flash-lite

gemini-flash-lite

Google /gemini-flash-lite
ID modela
  • gemini-3.5-flash-lite
  • gemini-flash-lite
  • gemini-flash-lite-latest

Začetek

Gemini 3.5 Flash-Lite je Googlov multimodalni model za osredotočene naloge podagentov, razčlenjevanje dokumentov in ponavljajoče se izluščevanje podatkov. Njegovo privzeto sklepanje minimal ustreza omejenim zapisom; za delo z orodji v več korakih sta dokumentirani ravni medium ali high. Iz besedila, slik, zvoka, videa in PDF vrača besedilo ali strukturirane rezultate.

Dovoljeni vhodi
Besedilo · Slike
Rezultati
Besedilo

Na voljo v Ailoot · vhodi in metode

Ailoot · Anthropic Messages POST /v1/messages
Vhod
text, image
Izhod
text
Kontekst
1.048.576 tokens
Največji izhod
65.536 tokens
Izhodni format
json ali SSE
PoljeVrstaZahtevaVrednosti in omejitvePrivzeto
PoljemodelVrstastringZahtevaObveznoVrednosti in omejitve
gemini-flash-lite
Privzeto—
PoljemessagesVrstamessage[]ZahtevaObveznoVrednosti in omejitve
Najmanjše število elementov: 1
Privzeto—
Poljemessages[].roleVrstastringZahtevaObveznoVrednosti in omejitve
user, assistant
Privzeto—
Poljemessages[].contentVrstastring|content_block[]ZahtevaObveznoVrednosti in omejitvePrivzeto—
PoljesystemVrstastring|content_block[]ZahtevaIzbirnoVrednosti in omejitvePrivzeto—
Poljemax_tokensVrstaintegerZahtevaObveznoVrednosti in omejitve
Najmanj: 1
Omejitev velja za: natančna zgornja meja izbranega modela/kartice
Privzeto—
PoljestreamVrstabooleanZahtevaIzbirnoVrednosti in omejitvePrivzetofalse
PoljetemperatureVrstanumberZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Poljetop_pVrstanumberZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Poljestop_sequencesVrstastring[]ZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljetoolsVrstatool[]ZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Poljetools[].nameVrstastringZahtevaIzbirnoVrednosti in omejitve
Velja, ko: podano je orodje
Privzeto—
Poljetools[].descriptionVrstastringZahtevaIzbirnoVrednosti in omejitvePrivzeto—
Poljetools[].input_schemaVrstaJSON_schemaZahtevaIzbirnoVrednosti in omejitvePrivzeto—
Poljetool_choiceVrstaobjectZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Poljethinking.typeVrstastringZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Poljethinking.budget_tokensVrstaintegerZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Poljeoutput_config.effortVrstastringZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljemetadataVrstaobjectZahtevaIzbirnoVrednosti in omejitvePrivzeto—
Poljecache_controlVrstaobjectZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Kombinacije vhodnih gradiv

Besedilo · Besedilo UTF8

messages[].content ali blok type=text

Besedilo + slika

{type:image,source:{type:base64,media_type,data}} ali vir vrste type=url

Parametri in življenjski cikel metode
ParameterSpecifikacija
Parametermaterial_typesSpecifikacijatext, image
ParameterrequiredSpecifikacijamodel, messages, max_tokens
Parameteroptional_controlsSpecifikacijanull
Parametercontent_typeSpecifikacijaapplication/json
Parametertext_file_materialSpecifikacijadejanska vsebina UTF-8 je vstavljena kot besedilo; ID datotek in URLs potrebujejo ločeno, natančno določeno podporo

Življenjski cikel: exact retained published method

Strukture metod in ID so natančno določeni; zmožnost ponudnika je ločena od sprejema zahteve.

Cenik

Cene metod Ailoot

Ailoot Anthropic MessagesPOST /v1/messages
Vhod
0,0003 $ / 1K
Izhod
0,0025 $ / 1K
Branje predpomnilnika
≈0,00003 $ / 1K

Ailoot pred zahtevo rezervira ocenjeni znesek. Po rezultatu obračuna končni strošek na podlagi izmerjene porabe. Obračun pretakanja uporablja končni zapis porabe. Kako delujeta rezervacija in obračun →

Podrobnosti referenčne tarife

Referenčne lestvice modela ne spreminjajo izbire metode, ocen cen ali stroškov. Veljavni stroški uporabljajo cene izbrane metode Ailoot.

Referenčne lestvice modela

Cene po nastavitvah

Vsak strošek povežite s prikazanimi pogoji. Za vsak nabor alternativnih nastavitev uporabite eno ceno.

NastavitevCenovna lestvicaŽetonov konteksta več kotŽetonov konteksta do vključnoStrošek
NastavitevOpenAI Chat · Osnovne cene žetonovCenovna lestvicaOsnovna cenaŽetonov konteksta več kot—Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov
NastavitevOpenAI Chat · Razred 1 glede na dolžino zahteveCenovna lestvica—Žetonov konteksta več kot0Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov
NastavitevAnthropic Messages · Osnovne cene žetonovCenovna lestvicaOsnovna cenaŽetonov konteksta več kot—Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov
NastavitevAnthropic Messages · Razred 1 glede na dolžino zahteveCenovna lestvica—Žetonov konteksta več kot0Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov

Primeri zahtev

Ailoot · Anthropic Messages

Primer besedilaVhod, slikaPython SDKNode.js SDKTok Python
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
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
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"))
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);
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")

Prejmi in shrani rezultate

Ailoot · Anthropic Messages

json ali SSE

Ohrani vse dokončane rezultate

Shranite vsak v celoti vrnjen odgovor, datoteko in del vsebine.

Ohranite vse vsebinske bloke, podpise sklepanja in dejanske ID uporabe orodij. Sestavite vse delne spremembe blokov SSE; prvi besedilni blok ni celoten izhod.

Če je treba preveriti izvirni odgovor

Ohranite ID zahtev/odgovorov in glave. Splošni URL za pridobivanje besedilne naloge ni podan.

Polja odgovora
PoljeVrsta
PoljeidVrstastring
PoljemodelVrstastring
Poljecontent[]Vrstatext|thinking|tool_use|other content block
Poljestop_reasonVrstastring|null
PoljeusageVrstaobject
Napake in naslednji koraki
OdgovorPogojNaslednji korak
Odgovor400 · invalid_request_errorPogojNeveljavna obvezna polja, predstavitev gradiva ali vrednost parametraNaslednji korakPred novo zahtevo za ustvarjanje popravite navedena polja.

Druga imena

Druga imena modelov

Ailoot gemini-3.5-flash-lite, gemini-flash-lite, gemini-flash-lite-latest
Ailoot Ultra gemini-3.5-flash-lite, google/gemini-3.5-flash-lite

Druga imena poti metod

/chat/completions

Povezani ID-ji za klic

google/gemini-3.5-flash-lite, gemini-flash-lite, gemini-flash-lite-latest, gemini-3.5-flash-lite, gemini-3.5-flash-lite

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

gemini-flash-lite

Google /gemini-flash-lite
ID modela
  • gemini-3.5-flash-lite
  • gemini-flash-lite
  • gemini-flash-lite-latest

Začetek

Gemini 3.5 Flash-Lite je Googlov multimodalni model za osredotočene naloge podagentov, razčlenjevanje dokumentov in ponavljajoče se izluščevanje podatkov. Njegovo privzeto sklepanje minimal ustreza omejenim zapisom; za delo z orodji v več korakih sta dokumentirani ravni medium ali high. Iz besedila, slik, zvoka, videa in PDF vrača besedilo ali strukturirane rezultate.

Dovoljeni vhodi
Besedilo · Slike
Rezultati
Besedilo

Na voljo v Ailoot · vhodi in metode

Ailoot · Gemini generateContent POST /v1beta/models/{model}:generateContent
Vhod
text, image
Izhod
text
Izhodni format
json ali podprti pretočni izhod
PoljeVrstaZahtevaVrednosti in omejitvePrivzeto
Poljepath.modelVrstastringZahtevaObveznoVrednosti in omejitve
gemini-flash-lite
Privzeto—
PoljecontentsVrstacontent[]ZahtevaObveznoVrednosti in omejitve
Najmanjše število elementov: 1
Privzeto—
Poljecontents[].roleVrstastringZahtevaIzbirnoVrednosti in omejitve
user, model
Privzeto—
Poljecontents[].partsVrstapart[]ZahtevaObveznoVrednosti in omejitvePrivzeto—
PoljesystemInstructionVrstacontentZahtevaIzbirnoVrednosti in omejitvePrivzeto—
PoljegenerationConfig.maxOutputTokensVrstaintegerZahtevaIzbirnoVrednosti in omejitve
Najmanj: 1
Odvisno od modela
Privzeto—
PoljegenerationConfig.temperatureVrstanumberZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljegenerationConfig.topPVrstanumberZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljegenerationConfig.topKVrstaintegerZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljegenerationConfig.stopSequencesVrstastring[]ZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljegenerationConfig.thinkingConfig.includeThoughtsVrstabooleanZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljegenerationConfig.thinkingConfig.thinkingBudgetVrstaintegerZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Poljetools[].functionDeclarationsVrstafunction_declaration[]ZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljetoolConfig.functionCallingConfig.modeVrstastringZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljesafetySettingsVrstaobject[]ZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljesessionIdVrstastringZahtevaIzbirnoVrednosti in omejitvePrivzeto—
Kombinacije vhodnih gradiv

Besedilo · Besedilo UTF8

contents[].parts[].text

Besedilo + slika

parts[].inlineData={mimeType,data}

Parametri in življenjski cikel metode
ParameterSpecifikacija
Parametermaterial_typesSpecifikacijatext, image
ParameterrequiredSpecifikacijacontents
Parameteroptional_controlsSpecifikacijanull
Parametercontent_typeSpecifikacijaapplication/json
Parametertext_file_materialSpecifikacijadejanska vsebina UTF-8 je vstavljena kot besedilo; ID datotek in URLs potrebujejo ločeno, natančno določeno podporo

Življenjski cikel: exact retained published method

Strukture metod in ID so natančno določeni; zmožnost ponudnika je ločena od sprejema zahteve.

Cenik

Cene metod Ailoot

Ailoot Gemini generateContentPOST /v1beta/models/{model}:generateContent
Vhod
0,0003 $ / 1K
Izhod
0,0025 $ / 1K
Branje predpomnilnika
≈0,00003 $ / 1K

Ailoot pred zahtevo rezervira ocenjeni znesek. Po rezultatu obračuna končni strošek na podlagi izmerjene porabe. Obračun pretakanja uporablja končni zapis porabe. Kako delujeta rezervacija in obračun →

Podrobnosti referenčne tarife

Referenčne lestvice modela ne spreminjajo izbire metode, ocen cen ali stroškov. Veljavni stroški uporabljajo cene izbrane metode Ailoot.

Referenčne lestvice modela

Cene po nastavitvah

Vsak strošek povežite s prikazanimi pogoji. Za vsak nabor alternativnih nastavitev uporabite eno ceno.

NastavitevCenovna lestvicaŽetonov konteksta več kotŽetonov konteksta do vključnoStrošek
NastavitevOpenAI Chat · Osnovne cene žetonovCenovna lestvicaOsnovna cenaŽetonov konteksta več kot—Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov
NastavitevOpenAI Chat · Razred 1 glede na dolžino zahteveCenovna lestvica—Žetonov konteksta več kot0Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov
NastavitevAnthropic Messages · Osnovne cene žetonovCenovna lestvicaOsnovna cenaŽetonov konteksta več kot—Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov
NastavitevAnthropic Messages · Razred 1 glede na dolžino zahteveCenovna lestvica—Žetonov konteksta več kot0Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov

Primeri zahtev

Ailoot · Gemini generateContent

Primer besedilaVhod, slikaPython SDKNode.js SDKTok Python
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
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
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())
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);
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

Prejmi in shrani rezultate

Ailoot · Gemini generateContent

json ali podprti pretočni izhod

Ohrani vse dokončane rezultate

Shranite vsak v celoti vrnjen odgovor, datoteko in del vsebine.

Ohranite vse kandidate in dele, vključno s klici funkcij, podpisi sklepanja in podatki o porabi; dele toka sestavite po vrsti.

Če je treba preveriti izvirni odgovor

Ohranite ID zahtev/odgovorov in glave. Splošni URL za pridobivanje besedilne naloge ni podan.

Polja odgovora
PoljeVrsta
PoljeresponseIdVrstastring
PoljemodelVersionVrstastring
Poljecandidates[].content.parts[]Vrstatext|inlineData|functionCall|other part
Poljecandidates[].finishReasonVrstastring
PoljeusageMetadataVrstaobject
Napake in naslednji koraki
OdgovorPogojNaslednji korak
Odgovor400 · invalid_request_errorPogojNeveljavna obvezna polja, predstavitev gradiva ali vrednost parametraNaslednji korakPred novo zahtevo za ustvarjanje popravite navedena polja.

Druga imena

Druga imena modelov

Ailoot gemini-3.5-flash-lite, gemini-flash-lite, gemini-flash-lite-latest
Ailoot Ultra gemini-3.5-flash-lite, google/gemini-3.5-flash-lite

Druga imena poti metod

/chat/completions

Povezani ID-ji za klic

google/gemini-3.5-flash-lite, gemini-flash-lite, gemini-flash-lite-latest, gemini-3.5-flash-lite, gemini-3.5-flash-lite

Ailoot · Anthropic Messages POST /v1/messages gemini-flash-lite-latest

gemini-flash-lite-latest

Google /gemini-flash-lite-latest
ID modela
  • gemini-3.5-flash-lite
  • gemini-flash-lite
  • gemini-flash-lite-latest

Začetek

Gemini 3.5 Flash-Lite je Googlov multimodalni model za osredotočene naloge podagentov, razčlenjevanje dokumentov in ponavljajoče se izluščevanje podatkov. Njegovo privzeto sklepanje minimal ustreza omejenim zapisom; za delo z orodji v več korakih sta dokumentirani ravni medium ali high. Iz besedila, slik, zvoka, videa in PDF vrača besedilo ali strukturirane rezultate.

Dovoljeni vhodi
Besedilo · Slike
Rezultati
Besedilo

Na voljo v Ailoot · vhodi in metode

Ailoot · Anthropic Messages POST /v1/messages
Vhod
text, image
Izhod
text
Kontekst
1.048.576 tokens
Največji izhod
65.536 tokens
Izhodni format
json ali SSE
PoljeVrstaZahtevaVrednosti in omejitvePrivzeto
PoljemodelVrstastringZahtevaObveznoVrednosti in omejitve
gemini-flash-lite-latest
Privzeto—
PoljemessagesVrstamessage[]ZahtevaObveznoVrednosti in omejitve
Najmanjše število elementov: 1
Privzeto—
Poljemessages[].roleVrstastringZahtevaObveznoVrednosti in omejitve
user, assistant
Privzeto—
Poljemessages[].contentVrstastring|content_block[]ZahtevaObveznoVrednosti in omejitvePrivzeto—
PoljesystemVrstastring|content_block[]ZahtevaIzbirnoVrednosti in omejitvePrivzeto—
Poljemax_tokensVrstaintegerZahtevaObveznoVrednosti in omejitve
Najmanj: 1
Omejitev velja za: natančna zgornja meja izbranega modela/kartice
Privzeto—
PoljestreamVrstabooleanZahtevaIzbirnoVrednosti in omejitvePrivzetofalse
PoljetemperatureVrstanumberZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Poljetop_pVrstanumberZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Poljestop_sequencesVrstastring[]ZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljetoolsVrstatool[]ZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Poljetools[].nameVrstastringZahtevaIzbirnoVrednosti in omejitve
Velja, ko: podano je orodje
Privzeto—
Poljetools[].descriptionVrstastringZahtevaIzbirnoVrednosti in omejitvePrivzeto—
Poljetools[].input_schemaVrstaJSON_schemaZahtevaIzbirnoVrednosti in omejitvePrivzeto—
Poljetool_choiceVrstaobjectZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Poljethinking.typeVrstastringZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Poljethinking.budget_tokensVrstaintegerZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Poljeoutput_config.effortVrstastringZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljemetadataVrstaobjectZahtevaIzbirnoVrednosti in omejitvePrivzeto—
Poljecache_controlVrstaobjectZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Kombinacije vhodnih gradiv

Besedilo · Besedilo UTF8

messages[].content ali blok type=text

Besedilo + slika

{type:image,source:{type:base64,media_type,data}} ali vir vrste type=url

Parametri in življenjski cikel metode
ParameterSpecifikacija
Parametermaterial_typesSpecifikacijatext, image
ParameterrequiredSpecifikacijamodel, messages, max_tokens
Parameteroptional_controlsSpecifikacijanull
Parametercontent_typeSpecifikacijaapplication/json
Parametertext_file_materialSpecifikacijadejanska vsebina UTF-8 je vstavljena kot besedilo; ID datotek in URLs potrebujejo ločeno, natančno določeno podporo

Življenjski cikel: exact retained published method

Strukture metod in ID so natančno določeni; zmožnost ponudnika je ločena od sprejema zahteve.

Cenik

Cene metod Ailoot

Ailoot Anthropic MessagesPOST /v1/messages
Vhod
0,0003 $ / 1K
Izhod
0,0025 $ / 1K
Branje predpomnilnika
≈0,00003 $ / 1K

Ailoot pred zahtevo rezervira ocenjeni znesek. Po rezultatu obračuna končni strošek na podlagi izmerjene porabe. Obračun pretakanja uporablja končni zapis porabe. Kako delujeta rezervacija in obračun →

Podrobnosti referenčne tarife

Referenčne lestvice modela ne spreminjajo izbire metode, ocen cen ali stroškov. Veljavni stroški uporabljajo cene izbrane metode Ailoot.

Referenčne lestvice modela

Cene po nastavitvah

Vsak strošek povežite s prikazanimi pogoji. Za vsak nabor alternativnih nastavitev uporabite eno ceno.

NastavitevCenovna lestvicaŽetonov konteksta več kotŽetonov konteksta do vključnoStrošek
NastavitevOpenAI Chat · Osnovne cene žetonovCenovna lestvicaOsnovna cenaŽetonov konteksta več kot—Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov
NastavitevOpenAI Chat · Razred 1 glede na dolžino zahteveCenovna lestvica—Žetonov konteksta več kot0Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov
NastavitevAnthropic Messages · Osnovne cene žetonovCenovna lestvicaOsnovna cenaŽetonov konteksta več kot—Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov
NastavitevAnthropic Messages · Razred 1 glede na dolžino zahteveCenovna lestvica—Žetonov konteksta več kot0Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov

Primeri zahtev

Ailoot · Anthropic Messages

Primer besedilaVhod, slikaPython SDKNode.js SDKTok Python
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
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
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"))
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);
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")

Prejmi in shrani rezultate

Ailoot · Anthropic Messages

json ali SSE

Ohrani vse dokončane rezultate

Shranite vsak v celoti vrnjen odgovor, datoteko in del vsebine.

Ohranite vse vsebinske bloke, podpise sklepanja in dejanske ID uporabe orodij. Sestavite vse delne spremembe blokov SSE; prvi besedilni blok ni celoten izhod.

Če je treba preveriti izvirni odgovor

Ohranite ID zahtev/odgovorov in glave. Splošni URL za pridobivanje besedilne naloge ni podan.

Polja odgovora
PoljeVrsta
PoljeidVrstastring
PoljemodelVrstastring
Poljecontent[]Vrstatext|thinking|tool_use|other content block
Poljestop_reasonVrstastring|null
PoljeusageVrstaobject
Napake in naslednji koraki
OdgovorPogojNaslednji korak
Odgovor400 · invalid_request_errorPogojNeveljavna obvezna polja, predstavitev gradiva ali vrednost parametraNaslednji korakPred novo zahtevo za ustvarjanje popravite navedena polja.

Druga imena

Druga imena modelov

Ailoot gemini-3.5-flash-lite, gemini-flash-lite, gemini-flash-lite-latest
Ailoot Ultra gemini-3.5-flash-lite, google/gemini-3.5-flash-lite

Druga imena poti metod

/chat/completions

Povezani ID-ji za klic

google/gemini-3.5-flash-lite, gemini-flash-lite, gemini-flash-lite-latest, gemini-3.5-flash-lite, gemini-3.5-flash-lite

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

gemini-flash-lite-latest

Google /gemini-flash-lite-latest
ID modela
  • gemini-3.5-flash-lite
  • gemini-flash-lite
  • gemini-flash-lite-latest

Začetek

Gemini 3.5 Flash-Lite je Googlov multimodalni model za osredotočene naloge podagentov, razčlenjevanje dokumentov in ponavljajoče se izluščevanje podatkov. Njegovo privzeto sklepanje minimal ustreza omejenim zapisom; za delo z orodji v več korakih sta dokumentirani ravni medium ali high. Iz besedila, slik, zvoka, videa in PDF vrača besedilo ali strukturirane rezultate.

Dovoljeni vhodi
Besedilo · Slike
Rezultati
Besedilo

Na voljo v Ailoot · vhodi in metode

Ailoot · Gemini generateContent POST /v1beta/models/{model}:generateContent
Vhod
text, image
Izhod
text
Izhodni format
json ali podprti pretočni izhod
PoljeVrstaZahtevaVrednosti in omejitvePrivzeto
Poljepath.modelVrstastringZahtevaObveznoVrednosti in omejitve
gemini-flash-lite-latest
Privzeto—
PoljecontentsVrstacontent[]ZahtevaObveznoVrednosti in omejitve
Najmanjše število elementov: 1
Privzeto—
Poljecontents[].roleVrstastringZahtevaIzbirnoVrednosti in omejitve
user, model
Privzeto—
Poljecontents[].partsVrstapart[]ZahtevaObveznoVrednosti in omejitvePrivzeto—
PoljesystemInstructionVrstacontentZahtevaIzbirnoVrednosti in omejitvePrivzeto—
PoljegenerationConfig.maxOutputTokensVrstaintegerZahtevaIzbirnoVrednosti in omejitve
Najmanj: 1
Odvisno od modela
Privzeto—
PoljegenerationConfig.temperatureVrstanumberZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljegenerationConfig.topPVrstanumberZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljegenerationConfig.topKVrstaintegerZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljegenerationConfig.stopSequencesVrstastring[]ZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljegenerationConfig.thinkingConfig.includeThoughtsVrstabooleanZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljegenerationConfig.thinkingConfig.thinkingBudgetVrstaintegerZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Poljetools[].functionDeclarationsVrstafunction_declaration[]ZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljetoolConfig.functionCallingConfig.modeVrstastringZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljesafetySettingsVrstaobject[]ZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljesessionIdVrstastringZahtevaIzbirnoVrednosti in omejitvePrivzeto—
Kombinacije vhodnih gradiv

Besedilo · Besedilo UTF8

contents[].parts[].text

Besedilo + slika

parts[].inlineData={mimeType,data}

Parametri in življenjski cikel metode
ParameterSpecifikacija
Parametermaterial_typesSpecifikacijatext, image
ParameterrequiredSpecifikacijacontents
Parameteroptional_controlsSpecifikacijanull
Parametercontent_typeSpecifikacijaapplication/json
Parametertext_file_materialSpecifikacijadejanska vsebina UTF-8 je vstavljena kot besedilo; ID datotek in URLs potrebujejo ločeno, natančno določeno podporo

Življenjski cikel: exact retained published method

Strukture metod in ID so natančno določeni; zmožnost ponudnika je ločena od sprejema zahteve.

Cenik

Cene metod Ailoot

Ailoot Gemini generateContentPOST /v1beta/models/{model}:generateContent
Vhod
0,0003 $ / 1K
Izhod
0,0025 $ / 1K
Branje predpomnilnika
≈0,00003 $ / 1K

Ailoot pred zahtevo rezervira ocenjeni znesek. Po rezultatu obračuna končni strošek na podlagi izmerjene porabe. Obračun pretakanja uporablja končni zapis porabe. Kako delujeta rezervacija in obračun →

Podrobnosti referenčne tarife

Referenčne lestvice modela ne spreminjajo izbire metode, ocen cen ali stroškov. Veljavni stroški uporabljajo cene izbrane metode Ailoot.

Referenčne lestvice modela

Cene po nastavitvah

Vsak strošek povežite s prikazanimi pogoji. Za vsak nabor alternativnih nastavitev uporabite eno ceno.

NastavitevCenovna lestvicaŽetonov konteksta več kotŽetonov konteksta do vključnoStrošek
NastavitevOpenAI Chat · Osnovne cene žetonovCenovna lestvicaOsnovna cenaŽetonov konteksta več kot—Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov
NastavitevOpenAI Chat · Razred 1 glede na dolžino zahteveCenovna lestvica—Žetonov konteksta več kot0Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov
NastavitevAnthropic Messages · Osnovne cene žetonovCenovna lestvicaOsnovna cenaŽetonov konteksta več kot—Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov
NastavitevAnthropic Messages · Razred 1 glede na dolžino zahteveCenovna lestvica—Žetonov konteksta več kot0Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov

Primeri zahtev

Ailoot · Gemini generateContent

Primer besedilaVhod, slikaPython SDKNode.js SDKTok Python
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
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
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())
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);
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

Prejmi in shrani rezultate

Ailoot · Gemini generateContent

json ali podprti pretočni izhod

Ohrani vse dokončane rezultate

Shranite vsak v celoti vrnjen odgovor, datoteko in del vsebine.

Ohranite vse kandidate in dele, vključno s klici funkcij, podpisi sklepanja in podatki o porabi; dele toka sestavite po vrsti.

Če je treba preveriti izvirni odgovor

Ohranite ID zahtev/odgovorov in glave. Splošni URL za pridobivanje besedilne naloge ni podan.

Polja odgovora
PoljeVrsta
PoljeresponseIdVrstastring
PoljemodelVersionVrstastring
Poljecandidates[].content.parts[]Vrstatext|inlineData|functionCall|other part
Poljecandidates[].finishReasonVrstastring
PoljeusageMetadataVrstaobject
Napake in naslednji koraki
OdgovorPogojNaslednji korak
Odgovor400 · invalid_request_errorPogojNeveljavna obvezna polja, predstavitev gradiva ali vrednost parametraNaslednji korakPred novo zahtevo za ustvarjanje popravite navedena polja.

Druga imena

Druga imena modelov

Ailoot gemini-3.5-flash-lite, gemini-flash-lite, gemini-flash-lite-latest
Ailoot Ultra gemini-3.5-flash-lite, google/gemini-3.5-flash-lite

Druga imena poti metod

/chat/completions

Povezani ID-ji za klic

google/gemini-3.5-flash-lite, gemini-flash-lite, gemini-flash-lite-latest, gemini-3.5-flash-lite, gemini-3.5-flash-lite

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions google/gemini-3.5-flash-lite

google/gemini-3.5-flash-lite

Google /google/gemini-3.5-flash-lite
ID modela
  • gemini-3.5-flash-lite
  • google/gemini-3.5-flash-lite

Začetek

Gemini 3.5 Flash-Lite je Googlov multimodalni model za osredotočene naloge podagentov, razčlenjevanje dokumentov in ponavljajoče se izluščevanje podatkov. Njegovo privzeto sklepanje minimal ustreza omejenim zapisom; za delo z orodji v več korakih sta dokumentirani ravni medium ali high. Iz besedila, slik, zvoka, videa in PDF vrača besedilo ali strukturirane rezultate.

Dovoljeni vhodi
Besedilo
Rezultati
Besedilo

Na voljo v Ailoot · vhodi in metode

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
Vhod
text
Izhod
text
Izhodni format
json ali SSE
PoljeVrstaZahtevaVrednosti in omejitvePrivzeto
PoljemodelVrstastringZahtevaObveznoVrednosti in omejitve
google/gemini-3.5-flash-lite
Privzeto—
PoljemessagesVrstamessage[]ZahtevaObveznoVrednosti in omejitve
Najmanjše število elementov: 1
Privzeto—
Poljemessages[].roleVrstastringZahtevaObveznoVrednosti in omejitve
Primeri: system, user, assistant, tool, function
Pogoji: Te vloge so izrecno predstavljene s tipi združljivosti v izvorni kodi; natančen nabor vlog ostaja odvisen od modela.
Odvisno od modela
Privzeto—
Poljemessages[].contentVrstastring|content_part[]|nullZahtevaIzbirnoVrednosti in omejitvePrivzeto—
Poljemessages[].tool_callsVrstatool_call[]ZahtevaIzbirnoVrednosti in omejitvePrivzeto—
Poljemessages[].tool_call_idVrstastringZahtevaIzbirnoVrednosti in omejitve
Velja, ko: role=tool; uporabite dejansko vrnjeni ID
Privzeto—
Poljemessages[].nameVrstastringZahtevaIzbirnoVrednosti in omejitvePrivzeto—
Poljemessages[].reasoning_contentVrstastringZahtevaIzbirnoVrednosti in omejitve
Velja, ko: Pošljite nazaj dejansko vrnjeno sklepanje, kadar ga ta model uporablja
Privzeto—
Poljemessages[].reasoning_detailsVrstaobject|arrayZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Poljemax_tokensVrstaintegerZahtevaIzbirnoVrednosti in omejitve
Najmanj: 1
Odvisno od modela
Privzeto—
Poljemax_completion_tokensVrstaintegerZahtevaIzbirnoVrednosti in omejitve
Najmanj: 1
Odvisno od modela
Privzeto—
PoljestreamVrstabooleanZahtevaIzbirnoVrednosti in omejitvePrivzetofalse
Poljestream_options.include_usageVrstabooleanZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljetemperatureVrstanumberZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Poljetop_pVrstanumberZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljestopVrstastring|string[]ZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljetoolsVrstafunction_tool[]ZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Poljetools[].typeVrstastringZahtevaIzbirnoVrednosti in omejitve
function
Odvisno od modela
Privzeto—
Poljetools[].function.nameVrstastringZahtevaObveznoVrednosti in omejitve
Velja, ko: podano je funkcijsko orodje
Privzeto—
Poljetools[].function.descriptionVrstastringZahtevaIzbirnoVrednosti in omejitvePrivzeto—
Poljetools[].function.parametersVrstaJSON_schemaZahtevaIzbirnoVrednosti in omejitvePrivzeto—
Poljetool_choiceVrstastring|objectZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Poljeparallel_tool_callsVrstabooleanZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Poljeresponse_formatVrstaobjectZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Poljereasoning_effortVrstastringZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljereasoningVrstaobjectZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Poljeservice_tierVrstastringZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljeinstructionsVrstastringZahtevaIzbirnoVrednosti in omejitve
Polje združljivosti
Privzeto—
PoljefunctionsVrstafunction[]ZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Poljefunction_callVrstastring|objectZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
Poljeprompt_cache_optionsVrstaobjectZahtevaIzbirnoVrednosti in omejitve
Odvisno od modela
Privzeto—
PoljemodalitiesVrstastring[]ZahtevaIzbirnoVrednosti in omejitve
text
Privzeto—
PoljeproviderVrstaobjectZahtevaIzbirnoVrednosti in omejitve
Pogoji: provider.options je na tej besedilni poti Ultra zavrnjen
Privzeto—
Poljecache_control.ttlVrstastringZahtevaIzbirnoVrednosti in omejitve
Pogoji: 1h je zavrnjen na dejanskih mestih za predpomnjenje pozivov
Privzeto—
Kombinacije vhodnih gradiv

Besedilo · Besedilo UTF8

messages[].content

Parametri in življenjski cikel metode
ParameterSpecifikacija
Parametercontent_typeSpecifikacijaapplication/json
ParameterrequiredSpecifikacijamodel, messages
Parametermaterial_typesSpecifikacijatext
ParametermessagesSpecifikacijapolje sporočil s strukturo role/content
Parameterfile_materialSpecifikacijadejanski dokument UTF-8 je vstavljen kot dobesedno besedilo; ID datoteke se ne izpeljuje
Parameteroptional_controlsSpecifikacijastream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice
Parametercontrol_scopeSpecifikacijaodvisno od modela; uporabniška funkcijska orodja se razlikujejo od orodij, ki jih izvaja storitev
Parameteroutput_modalitiesSpecifikacijatext
Parameterhosted_operationsSpecifikacijafalse
Parametermultimodal_input_bindingSpecifikacijanull

Življenjski cikel: synchronous_or_streamed

Pošljite natančen ID modela skupaj z messages.

Dolžina konteksta ni zgornja meja izhoda.

Besedilna datoteka lahko poda dobesedno besedilo; slikovni, zvočni vhodi in vhodi z datotečnimi objekti potrebujejo natančno vezavo.

Cenik

Tarifni podatki ne dodajajo možnosti zahteve. Podprti parametri so navedeni pri izbrani metodi.

Hitri način
Standardna tarifa Ko je izbran hitri način
Način flex
Standardna tarifa Ko je izbran način flex
Najvišja raven razmišljanja
Standardna tarifa Ko najvišja raven razmišljanja uporablja privzeto prilagoditev (default)
Raven razmišljanja · visoka
Standardna tarifa Ko je raven razmišljanja visoka
Raven razmišljanja · nizka
Standardna tarifa Ko je raven razmišljanja nizka
Raven razmišljanja · srednja
Standardna tarifa Ko je raven razmišljanja srednja
Raven razmišljanja · minimalna
Standardna tarifa Ko je raven razmišljanja minimalna
Cene izrecnega predpomnjenja
Ni omogočeno Ko je zahtevano eksplicitno predpomnjenje

Cene Ailoot

Cene po nastavitvah

Vsak strošek povežite s prikazanimi pogoji. Za vsak nabor alternativnih nastavitev uporabite eno ceno.

NastavitevCenovna lestvicaŽetonov konteksta več kotŽetonov konteksta do vključnoStrošek
NastavitevOsnovne cene za žetoneCenovna lestvicaOsnovna cenaŽetonov konteksta več kot—Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov
NastavitevRazred 1 glede na dolžino zahteveCenovna lestvica—Žetonov konteksta več kot0Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov

Ailoot pred zahtevo rezervira ocenjeni znesek. Po rezultatu obračuna končni strošek na podlagi izmerjene porabe. Obračun pretakanja uporablja končni zapis porabe. Kako delujeta rezervacija in obračun →

Primeri zahtev

Ailoot Ultra · OpenAI Chat

curlPython SDKTok Python
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
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"))
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")

Prejmi in shrani rezultate

Ailoot Ultra · OpenAI Chat

json ali SSE

Ohrani vse dokončane rezultate

Shranite vsak v celoti vrnjen odgovor, datoteko in del vsebine.

Ohranite vsako možnost odgovora ter njeno vsebino, klice orodij in sklepanje. V SSE sestavite delne spremembe po indeksu možnosti/orodja ter ohranite končni razlog zaključka in podatke o porabi.

Če je treba preveriti izvirni odgovor

Ohranite ID zahtev/odgovorov in glave. Splošni URL za pridobivanje besedilne naloge ni podan.

Polja odgovora
PoljeVrsta
Poljechoices[].indexVrstainteger
Poljechoices[].message.contentVrstastring|null
Poljechoices[].message.tool_callsVrstatool_call[]
Poljechoices[].message.reasoning_contentVrstastring
Poljechoices[].message.reasoning_detailsVrstaobject|array
Poljechoices[].finish_reasonVrstastring|null
PoljeusageVrstaobject
Napake in naslednji koraki
OdgovorPogojNaslednji korak
Odgovor400 · invalid_request_errorPogojNeveljavna obvezna polja, predstavitev gradiva ali vrednost parametraNaslednji korakPred novo zahtevo za ustvarjanje popravite navedena polja.

Druga imena

Druga imena modelov

Ailoot gemini-3.5-flash-lite, gemini-flash-lite, gemini-flash-lite-latest
Ailoot Ultra gemini-3.5-flash-lite, google/gemini-3.5-flash-lite

Druga imena poti metod

/chat/completions

Povezani ID-ji za klic

google/gemini-3.5-flash-lite, gemini-flash-lite, gemini-flash-lite-latest, gemini-3.5-flash-lite, gemini-3.5-flash-lite

Ailoot Ultra · Anthropic Messages POST /v1/messages google/gemini-3.5-flash-lite

google/gemini-3.5-flash-lite

Google /google/gemini-3.5-flash-lite
ID modela
  • gemini-3.5-flash-lite
  • google/gemini-3.5-flash-lite

Začetek

Gemini 3.5 Flash-Lite je Googlov multimodalni model za osredotočene naloge podagentov, razčlenjevanje dokumentov in ponavljajoče se izluščevanje podatkov. Njegovo privzeto sklepanje minimal ustreza omejenim zapisom; za delo z orodji v več korakih sta dokumentirani ravni medium ali high. Iz besedila, slik, zvoka, videa in PDF vrača besedilo ali strukturirane rezultate.

Dovoljeni vhodi
Besedilo
Rezultati
json · sse

Na voljo v Ailoot · vhodi in metode

Ailoot Ultra · Anthropic Messages POST /v1/messages
Vhod
text
Izhod
json, sse
Izhodni format
JSON ali SSE
PoljeVrstaZahtevaVrednosti in omejitvePrivzeto
PoljemodelVrstastringZahtevaObveznoVrednosti in omejitve
google/gemini-3.5-flash-lite
Privzeto—
PoljemessagesVrstamessage[]ZahtevaObveznoVrednosti in omejitvePrivzeto—
Poljemessages[].roleVrstastringZahtevaObveznoVrednosti in omejitve
user, assistant
Privzeto—
Poljemessages[].contentVrstastringZahtevaObveznoVrednosti in omejitvePrivzeto—
Poljemax_tokensVrstaintegerZahtevaObveznoVrednosti in omejitvePrivzeto—
PoljestreamVrstabooleanZahtevaIzbirnoVrednosti in omejitvePrivzetofalse
Kombinacije vhodnih gradiv

Besedilo · Besedilo UTF-8

niz messages[].content

Parametri in življenjski cikel metode
ParameterSpecifikacija
Parametercontent_typeSpecifikacijaapplication/json
ParameterrequiredSpecifikacijamodel, messages, max_tokens
Parameteroptional_controlsSpecifikacijastream
Parametermaterial_typesSpecifikacijatext
Parametertext_file_materialSpecifikacijaPreberite dejanski dokument UTF-8 in njegovo besedilo vstavite v navedeni vhodni niz ali niz vsebine sporočila.

Življenjski cikel: synchronous_or_streamed

Cenik

Tarifni podatki ne dodajajo možnosti zahteve. Podprti parametri so navedeni pri izbrani metodi.

Hitri način
Standardna tarifa Ko je izbran hitri način
Način flex
Standardna tarifa Ko je izbran način flex
Najvišja raven razmišljanja
Standardna tarifa Ko najvišja raven razmišljanja uporablja privzeto prilagoditev (default)
Raven razmišljanja · visoka
Standardna tarifa Ko je raven razmišljanja visoka
Raven razmišljanja · nizka
Standardna tarifa Ko je raven razmišljanja nizka
Raven razmišljanja · srednja
Standardna tarifa Ko je raven razmišljanja srednja
Raven razmišljanja · minimalna
Standardna tarifa Ko je raven razmišljanja minimalna
Cene izrecnega predpomnjenja
Ni omogočeno Ko je zahtevano eksplicitno predpomnjenje

Cene Ailoot

Cene po nastavitvah

Vsak strošek povežite s prikazanimi pogoji. Za vsak nabor alternativnih nastavitev uporabite eno ceno.

NastavitevCenovna lestvicaŽetonov konteksta več kotŽetonov konteksta do vključnoStrošek
NastavitevOsnovne cene za žetoneCenovna lestvicaOsnovna cenaŽetonov konteksta več kot—Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov
NastavitevRazred 1 glede na dolžino zahteveCenovna lestvica—Žetonov konteksta več kot0Žetonov konteksta do vključnoBrez zgornje mejeStrošek
Vhod · Vhodni žetoni $0.0006 / 1K žetonov
Izhod · Izhodni žetoni $0.005 / 1K žetonov
Vhod · Branje predpomnilnika $0.00006 / 1K žetonov
Vhod · Zapis v predpomnilnik $0.0001666666666666666 / 1K žetonov
Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov

Ailoot pred zahtevo rezervira ocenjeni znesek. Po rezultatu obračuna končni strošek na podlagi izmerjene porabe. Obračun pretakanja uporablja končni zapis porabe. Kako delujeta rezervacija in obračun →

Primeri zahtev

Ailoot Ultra · Anthropic Messages

Popolno minimalno telo zahteve JSONcurl · uporabite svoj dokument UTF-8Python · shranite celoten rezultat
{
  "model": "google/gemini-3.5-flash-lite",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
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
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))

Prejmi in shrani rezultate

Ailoot Ultra · Anthropic Messages

JSON ali SSE

Ohrani vse dokončane rezultate

Shranite vsak v celoti vrnjen odgovor, datoteko in del vsebine.

Ohranite vse vsebinske bloke, podpise sklepanja in dejanske ID uporabe orodij. Sestavite vse delne spremembe blokov SSE; prvi besedilni blok ni celoten izhod.

Če je treba preveriti izvirni odgovor

Ohranite ID zahtev/odgovorov in glave. Splošni URL za pridobivanje besedilne naloge ni podan.

Polja odgovora
PoljeVrsta
PoljeidVrstastring
PoljemodelVrstastring
Poljecontent[]Vrstatext|thinking|tool_use|other content block
Poljestop_reasonVrstastring|null
PoljeusageVrstaobject
Napake in naslednji koraki
OdgovorPogojNaslednji korak
Odgovor400 · invalid_request_errorPogojNeveljavna obvezna polja, predstavitev gradiva ali vrednost parametraNaslednji korakPred novo zahtevo za ustvarjanje popravite navedena polja.

Druga imena

Druga imena modelov

Ailoot gemini-3.5-flash-lite, gemini-flash-lite, gemini-flash-lite-latest
Ailoot Ultra gemini-3.5-flash-lite, google/gemini-3.5-flash-lite

Druga imena poti metod

/chat/completions

Povezani ID-ji za klic

google/gemini-3.5-flash-lite, gemini-flash-lite, gemini-flash-lite-latest, gemini-3.5-flash-lite, gemini-3.5-flash-lite

FAQ · Google: Gemini 3.5 Flash Lite
Kateri vhodi in rezultati so na voljo?

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

Katera polja uporablja zahteva?

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

Katere omejitve veljajo?

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

Več podrobnosti

Ailoot povežite s Claude Code, OpenCode, Hermes ali svojo aplikacijo.

Podjetje in njegov portfelj projektov

Podjetje in njegov portfelj projektov: milijoni strank; mesečna prodaja v milijardah.

Žetone kupujte s popustom.

Naročniški popust za redno delo. Promocijske kode prinesejo do 50% popusta na nakup žetonov.

Naročnina
Za redne zahteve izberite paket s popustom.
Promocijska koda do 50%
Kodo vnesite ob nakupu. Cena se preračuna po veljavni akciji.
Poraba v zgodovini
Za vsako zahtevo se shranijo model, žetoni in znesek.

Izberite naročnino · Oglejte si cene modelov

API povežite z izdelkom, ki ga prodajate.

SaaS, aplikacije in boti po ponudbi in licenčni pogodbi Ailoot. Za nadaljnjo prodajo zaprosite za preprodajno licenco.

Komercialna aplikacija
Ustvarjanje besedila, slik, videa in zvoka vključite v plačljive funkcije svoje storitve.
Licenca za preprodajalca
Pošljite opis projekta in shemo dostopa. Zahtevajte pisne pogoje uporabe in nadaljnje prodaje.
Dokumenti na strani
Ponudba, licenčna pogodba in politika obdelave podatkov so dostopne pred povezavo.

Zaprosite za preprodajno licenco · Ponudba in licenčna pogodba