Google: Gemini 2.5 Pro
Gemini 2.5 Pro on Googlen vakaa ajattelumalli vaativaan ohjelmointiin, matematiikkaan, STEM-tehtäviin ja pitkän kontekstin analyysiin. Se vastaanottaa tekstiä, kuvia, ääntä, videota ja PDF-aineistoa ja palauttaa tekstiä sekä tukee työkaluja ja rakenteista tulostetta. Sen dynaaminen päättelybudjetti tukee 128–32 768 tokenia, eikä ajattelua voi poistaa kokonaan käytöstä.
- Ailoot · Anthropic Messages
POST /v1/messagesgemini-2.5-pro - Ailoot · Gemini generateContent
POST /v1beta/models/{model}:generateContentgemini-2.5-pro - Ailoot Ultra · OpenAI Chat
POST /v1/chat/completionsgemini-2.5-pro - Ailoot Ultra · Anthropic Messages
POST /v1/messagesgemini-2.5-pro - Ailoot Ultra · OpenAI Chat
POST /v1/chat/completionsgoogle/gemini-2.5-pro - Ailoot Ultra · Anthropic Messages
POST /v1/messagesgoogle/gemini-2.5-pro
Tietoa mallista
Tämä kuvaus kattaa mallin ominaisuudet. Ailootissa saatavilla olevat syötteet, tulosteet ja asetukset luetellaan alla valitulle menetelmälle.
Gemini 2.5 Pro on Googlen vakaa ajatteluprofiili edistyneeseen ohjelmointiin, matematiikkaan, STEM-tehtäviin ja pitkän kontekstin analyysiin. Se ymmärtää tekstiä, ääntä, kuvia, videota ja kokonaisia koodivarastoja, ja sen Gemini API -profiili hyväksyy myös PDF-syötteen. Tuloste on tekstiä, kuten koodia, kirjallista analyysiä tai rakenteinen tietue. Hyödyllinen toimeksianto sisältää näytön ja pyytää tarkistettavaa tulosta, kuten perusteltua ratkaisua, koodikannasta tehtyä havaintoa tai usean asiakirjan vertailua.
Anna ohjelmointitehtävään olennaiset tiedostot, havaittu toiminta sekä merkityksellinen muutos tai kysymys. Pitkä konteksti voi auttaa mallia yhdistämään moduulit toisiinsa sen sijaan, että se päättelisi yhden irrallisen katkelman perusteella. Pyydä koodipolun selvityksessä mallia jäljittämään tunniste syöttölomakkeesta käsittelyn kautta tallennukseen, tunnistamaan kohta, jossa sopimus muuttuu, ja ehdottamaan kohdennettua korjausta. Säilytä rajoitteet ja pyydä havaintojen tueksi viitteitä. Ehdotettua muutosta on verrattava varsinaiseen koodiin ja mahdollisiin liitettyjen työkalujen kautta tehtyihin tarkistuksiin.
Esitä matematiikan tai tieteellisen analyysin tehtävissä ongelma, oletukset, yksiköt ja vastauksen vaadittu muoto. Anna laskelmien perustana olevat tiedot tai kuviot. Pyydä aineiston tukema tulos ja tarkistukset, joiden avulla sitä voi arvioida, kuten rajatapaukset tai vertailu alkuperäisiin arvoihin. Mallin päättelykyky ei poista ongelmanasettelun epäselvyyksiä. Pidä tuntematon suure tai vailla tukea oleva oletus näkyvissä sen sijaan, että korvaisit sen sopivalla arvolla.
Dynaaminen ajattelu on dokumentoitu oletus. Gemini 2.5 GenerateContent -opas tukee Prolle nimenomaista 128–32 768 tokenin päättelybudjettia tai arvoa -1 mukautuvaa ajattelua varten. Tässä versiossa ajattelua ei voi poistaa kokonaan käytöstä. Nämä säätimet eroavat Flashin nollabudjettivaihtoehdosta ja Gemini 3:n ajattelutasoasetuksista. Ajattelubudjetti ohjaa päättelyä takaamatta tarkkaa sisäisten tokenien määrää, ja myös vastauksen enimmäispituuteen on jätettävä tilaa lopulliselle tuotokselle.
Määritä multimodaalisessa asiakirjatyössä sivut, kaavio, kuva-alue tai tallenteen tapahtuma, joiden tulee tukea vastausta. Käytännöllinen synteesitehtävä voi pyytää useiden lähdeasiakirjojen keskenään kilpailevat väitteet, niitä tukevat kohdat ja erot, joilla on merkitystä yhdelle päätökselle. Pyydä mallia erottamaan esitetty tosiasia päätelmästä. Määritä video- tai ääniaineistolle, tuleeko tuloksen olla kuvaus, litterointi, yhteenveto vai vertailu. Kuva ja ääni toimivat tässä profiilissa tekstimuotoisen tuloksen näyttönä.
Tämän version API-sivu dokumentoi funktiokutsut, koodin suorittamisen, tiedostohaun, hakutuloksiin ankkuroinnin, Maps-tietoihin ankkuroinnin, URL-kontekstin ja rakenteiset tulosteet. Määritä funktioiden tarkoitukset ja parametrikentät ja säilytä todelliset tulokset myöhemmillä keskustelukierroksilla. Määritä skeeman rajaamalle tietueelle pakolliset kentät ja tapa esittää puuttuvat tiedot. Natiivi arkkitehtuuri on multimodaalinen harva mixture-of-experts-transformer; tämä mallirakenne ei itsessään tuota ulkoista työkalusuoritusta tai valmista sovellusta palautetun tekstin tai koodin lisäksi.
Natiivi mallikortti ilmoittaa 1M:n syötekontekstin ja 64K:n tekstitulosteen; API-taulukko täsmentää rajat 1 048 576 syötetokeniin ja 65 536 tulostetokeniin. Ohjeet, lähdesisältö ja säilytetty historia vaikuttavat syötteen valmisteluun. Vastauksen enimmäisvaraus sisältää päättelytokenit, joten liian pieni raja voi katkaista lopullisen vastauksen. Välimuisti ja eräkäsittely on dokumentoitu yhdessä Flex- ja Priority-vaihtoehtojen kanssa. Säilytä kunkin lähteen tunniste ja pyydetty lopullinen muoto, kun valmistelet erillisiä pitkän kontekstin tehtäviä.
Vakaa tunniste on eri kuin yhteisessä Pro-mallikortissa erikseen käsitellyt Experimental- ja Preview-versiot. Älä liitä niiden versiokohtaisia tuloksia tähän profiiliin vain siksi, että niillä on sama Pro-nimi. Mallikortti tunnistaa mahdolliset hallusinaatiot sekä kausaalisen ymmärtämisen, monimutkaisen deduktion ja kontrafaktuaalisen päättelyn rajoitukset, ja sen tietämyksen katkaisukohta on tammikuu 2025. Anna ajantasaista näyttöä, kun sillä on merkitystä, ja tarkista lähdeviitteet, laskelmat ja ehdotetut muutokset. Hyödyllinen tuloste on tehtävässä pyydetty, aineiston tukema teksti- tai koodituotos.
Käytännön tehtävä
Käytännön tehtävä
Tekninen esimerkki englanniksi
Trace an identifier through storage
Trace this identifier through three excerpts: form sends {customer_id:'0017'}; service computes id=Number(body.customer_id); repository stores String(id). Requirement: preserve leading zeros. Identify where the contract changes, propose a minimal consistent correction and give tests for '0017', '17' and a missing ID. Do not claim the tests were executed.Odotettu tulos
A source-path explanation, a proposed patch and a three-case regression-test plan.Tarkista tulos
Check that the proposed path preserves distinct strings 0017 and 17 while specifying missing-ID behavior.Ailoot · Anthropic Messages POST /v1/messages gemini-2.5-pro
gemini-2.5-proAloitus
Gemini 2.5 Pro on Googlen vakaa ajattelumalli vaativaan ohjelmointiin, matematiikkaan, STEM-tehtäviin ja pitkän kontekstin analyysiin. Se vastaanottaa tekstiä, kuvia, ääntä, videota ja PDF-aineistoa ja palauttaa tekstiä sekä tukee työkaluja ja rakenteista tulostetta. Sen dynaaminen päättelybudjetti tukee 128–32 768 tokenia, eikä ajattelua voi poistaa kokonaan käytöstä.
- Hyväksytyt syötteet
- Teksti · Kuvat
- Tulokset
- Teksti
Saatavilla Ailootissa · syötteet & menetelmät
Ailoot · Anthropic Messages POST /v1/messages
- Syötetyypit
text,image- Tulostyypit
text- Konteksti
- 1 048 576 tokens
- Enimmäistuloste
- 65 536 tokens
- Tulosteen muoto
- json tai SSE
| Kenttä | Tyyppi | Vaatimus | Arvot & rajat | Oletus |
|---|---|---|---|---|
Kenttämodel | Tyyppistring | VaatimusPakollinen | Arvot & rajat gemini-2.5-pro | Oletus— |
Kenttämessages | Tyyppimessage[] | VaatimusPakollinen | Arvot & rajat Kohteiden vähimmäismäärä: 1 | Oletus— |
Kenttämessages[].role | Tyyppistring | VaatimusPakollinen | Arvot & rajat user, assistant | Oletus— |
Kenttämessages[].content | Tyyppistring|content_block[] | VaatimusPakollinen | Arvot & rajat | Oletus— |
Kenttäsystem | Tyyppistring|content_block[] | VaatimusValinnainen | Arvot & rajat | Oletus— |
Kenttämax_tokens | Tyyppiinteger | VaatimusPakollinen | Arvot & rajat Vähimmäismäärä: 1 Rajoitus koskee: valitun mallin/kortin täsmällinen yläraja | Oletus— |
Kenttästream | Tyyppiboolean | VaatimusValinnainen | Arvot & rajat | Oletusfalse |
Kenttätemperature | Tyyppinumber | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttätop_p | Tyyppinumber | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttästop_sequences | Tyyppistring[] | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttätools | Tyyppitool[] | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttätools[].name | Tyyppistring | VaatimusValinnainen | Arvot & rajat Sovelletaan, kun: työkalu annettu | Oletus— |
Kenttätools[].description | Tyyppistring | VaatimusValinnainen | Arvot & rajat | Oletus— |
Kenttätools[].input_schema | TyyppiJSON_schema | VaatimusValinnainen | Arvot & rajat | Oletus— |
Kenttätool_choice | Tyyppiobject | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttäthinking.type | Tyyppistring | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttäthinking.budget_tokens | Tyyppiinteger | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttäoutput_config.effort | Tyyppistring | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttämetadata | Tyyppiobject | VaatimusValinnainen | Arvot & rajat | Oletus— |
Kenttäcache_control | Tyyppiobject | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Syöteaineistojen yhdistelmät
Teksti · UTF8-teksti
messages[].content tai type=text-lohko
Teksti + kuva
{type:image,source:{type:base64,media_type,data}} tai lähde, jossa type=url
Menetelmän parametrit ja elinkaari
| Parametri | Sopimus |
|---|---|
Parametrimaterial_types | Sopimustext, image |
Parametrirequired | Sopimusmodel, messages, max_tokens |
Parametrioptional_controls | Sopimusnull |
Parametricontent_type | Sopimusapplication/json |
Parametritext_file_material | Sopimusvarsinainen UTF-8-sisältö lisätään tekstinä; tiedostojen ID- tai URLs-arvot tarvitsevat erillisen täsmällisen tuen |
Elinkaari: exact retained published method
Menetelmien rakenteet ja ID:t ovat täsmällisiä; toimittajan kyvykkyys on erillinen pyynnön hyväksymisestä.
Hinnoittelu
Ailoot-menetelmien hinnat
POST /v1/messages- Syöte
- 0,00125 $ / 1K
- Tuloste
- 0,01 $ / 1K
- Välimuistin luku
- 0,000125 $ / 1K
Hinnat pyynnön pituuden mukaan · Anthropic Messages
| Pyynnön koko tokeneina | Syöte | Tuloste | Välimuistin luku | Välimuistiin kirjoitus | Välimuisti 5 min | Välimuisti 1 tunti |
|---|---|---|---|---|---|---|
| Pyynnön koko tokeneina(0; 200 000] | Syöte0,00125 $ | Tuloste0,01 $ | Välimuistin luku0,000125 $ | Välimuistiin kirjoitusPerushinta: — | Välimuisti 5 minPerushinta: — | Välimuisti 1 tuntiPerushinta: — |
| Pyynnön koko tokeneina(200 000; ∞) | Syöte0,0025 $ | Tuloste0,015 $ | Välimuistin luku0,00025 $ | Välimuistiin kirjoitusPerushinta: — | Välimuisti 5 minPerushinta: — | Välimuisti 1 tuntiPerushinta: — |
Hinnat USD-määräisinä 1K tokenia kohden. Jos hintaa ei ole asetettu, käytetään tämän menetelmän perushintaa; «—» tarkoittaa, ettei perushintaa ole asetettu.
Ailoot varaa arvioidun summan ennen pyyntöä. Tuloksen jälkeen lopullinen veloitus toteutetaan mitatun käytön perusteella. Suoratoiston veloituksessa käytetään lopullista käyttötietuetta. Varauksen ja lopullisen veloituksen toiminta →
Viitehinnaston tiedot
Mallitason viitehinnastot eivät muuta menetelmän valintaa, hinta-arvioita tai veloituksia. Käytössä olevat veloitukset käyttävät valitun Ailoot-menetelmän hintoja.
Mallin viitehinnastot
Hinnat asetusten mukaan
Kohdista kukin veloitus näytettyihin ehtoihin. Käytä yhtä hintaa kutakin vaihtoehtoisten asetusten ryhmää kohden.
| Asetukset | Hinnasto | Kontekstin tokenit, enemmän kuin | Kontekstin tokenit, enintään raja-arvo mukaan lukien | Veloitus |
|---|---|---|---|---|
| AsetuksetOpenAI Chat · Tokenien perushinnat | HinnastoPerushinta | Kontekstin tokenit, enemmän kuin— | Kontekstin tokenit, enintään raja-arvo mukaan lukienEi ylärajaa | Veloitus Syöte · Syötetokenit $0.0025 / 1K tokenia Tuloste · Tulostokenit $0.02 / 1K tokenia Syöte · Välimuistin luku $0.00025 / 1K tokenia Syöte · Välimuistiin kirjoitus $0.00075 / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti — / 1K tokenia Tuloste · Päättelyn tulostokenit $0.02 / 1K tokenia |
| AsetuksetOpenAI Chat · Pyynnön pituuden mukainen taso 1 | Hinnasto— | Kontekstin tokenit, enemmän kuin0 | Kontekstin tokenit, enintään raja-arvo mukaan lukien200 000 | Veloitus Syöte · Syötetokenit $0.0025 / 1K tokenia Tuloste · Tulostokenit $0.02 / 1K tokenia Syöte · Välimuistin luku $0.00025 / 1K tokenia Syöte · Välimuistiin kirjoitus $0.00075 / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti — / 1K tokenia |
| AsetuksetOpenAI Chat · Pyynnön pituuden mukainen taso 2 | Hinnasto— | Kontekstin tokenit, enemmän kuin200 000 | Kontekstin tokenit, enintään raja-arvo mukaan lukienEi ylärajaa | Veloitus Syöte · Syötetokenit $0.005 / 1K tokenia Tuloste · Tulostokenit $0.03 / 1K tokenia Syöte · Välimuistin luku $0.0005 / 1K tokenia Syöte · Välimuistiin kirjoitus $0.00075 / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti — / 1K tokenia |
| AsetuksetAnthropic Messages · Tokenien perushinnat | HinnastoPerushinta | Kontekstin tokenit, enemmän kuin— | Kontekstin tokenit, enintään raja-arvo mukaan lukienEi ylärajaa | Veloitus Syöte · Syötetokenit $0.0025 / 1K tokenia Tuloste · Tulostokenit $0.02 / 1K tokenia Syöte · Välimuistin luku $0.00025 / 1K tokenia Syöte · Välimuistiin kirjoitus $0.00075 / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti — / 1K tokenia Tuloste · Päättelyn tulostokenit $0.02 / 1K tokenia |
| AsetuksetAnthropic Messages · Pyynnön pituuden mukainen taso 1 | Hinnasto— | Kontekstin tokenit, enemmän kuin0 | Kontekstin tokenit, enintään raja-arvo mukaan lukien200 000 | Veloitus Syöte · Syötetokenit $0.0025 / 1K tokenia Tuloste · Tulostokenit $0.02 / 1K tokenia Syöte · Välimuistin luku $0.00025 / 1K tokenia Syöte · Välimuistiin kirjoitus $0.00075 / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti — / 1K tokenia |
| AsetuksetAnthropic Messages · Pyynnön pituuden mukainen taso 2 | Hinnasto— | Kontekstin tokenit, enemmän kuin200 000 | Kontekstin tokenit, enintään raja-arvo mukaan lukienEi ylärajaa | Veloitus Syöte · Syötetokenit $0.005 / 1K tokenia Tuloste · Tulostokenit $0.03 / 1K tokenia Syöte · Välimuistin luku $0.0005 / 1K tokenia Syöte · Välimuistiin kirjoitus $0.00075 / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti — / 1K tokenia |
Esimerkkipyynnöt
Ailoot · Anthropic Messages
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-2.5-pro", "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-2.5-pro", "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-2.5-pro",
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-2.5-pro",
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-2.5-pro',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")
Vastaanota ja tallenna tulokset
Ailoot · Anthropic Messages
json tai SSE
Säilytä kaikki valmistuneet tulokset
Säilytä jokainen kokonainen palautettu vastaus, tiedosto ja sisällön osa.
Säilytä kaikki sisältölohkot, päättelyallekirjoitukset ja todelliset työkalukäytön ID:t. Kokoa kaikki SSE-lohkomuutokset; ensimmäinen tekstilohko ei ole koko tulos.
Jos alkuperäinen vastaus on tarkistettava
Säilytä pyyntöjen/vastausten ID:t ja otsakkeet. Yleistä tekstityön haku-URL:ää ei anneta.
Vastauksen kentät
| Kenttä | Tyyppi |
|---|---|
Kenttäid | Tyyppistring |
Kenttämodel | Tyyppistring |
Kenttäcontent[] | Tyyppitext|thinking|tool_use|other content block |
Kenttästop_reason | Tyyppistring|null |
Kenttäusage | Tyyppiobject |
Virheet ja seuraavat vaiheet
| Vastaus | Ehto | Seuraava vaihe |
|---|---|---|
Vastaus400 · invalid_request_error | EhtoVirheelliset pakolliset kentät, aineiston esitysmuoto tai parametrin arvo | Seuraava vaiheKorjaa ilmoitetut kentät ennen uutta luontipyyntöä. |
Aliakset
Mallin aliakset
Ailoot gemini-2.5-pro
Ailoot Ultra gemini-2.5-pro, google/gemini-2.5-pro
Menetelmäpolkujen aliakset
/chat/completions
Liittyvät kutsujan ID:t
Ailoot · Gemini generateContent POST /v1beta/models/{model}:generateContent gemini-2.5-pro
gemini-2.5-proAloitus
Gemini 2.5 Pro on Googlen vakaa ajattelumalli vaativaan ohjelmointiin, matematiikkaan, STEM-tehtäviin ja pitkän kontekstin analyysiin. Se vastaanottaa tekstiä, kuvia, ääntä, videota ja PDF-aineistoa ja palauttaa tekstiä sekä tukee työkaluja ja rakenteista tulostetta. Sen dynaaminen päättelybudjetti tukee 128–32 768 tokenia, eikä ajattelua voi poistaa kokonaan käytöstä.
- Hyväksytyt syötteet
- Teksti · Kuvat
- Tulokset
- Teksti
Saatavilla Ailootissa · syötteet & menetelmät
Ailoot · Gemini generateContent POST /v1beta/models/{model}:generateContent
- Syötetyypit
text,image- Tulostyypit
text- Konteksti
- 1 048 576 tokens
- Enimmäistuloste
- 65 536 tokens
- Tulosteen muoto
- json tai tuettu virtakäsittely
| Kenttä | Tyyppi | Vaatimus | Arvot & rajat | Oletus |
|---|---|---|---|---|
Kenttäpath.model | Tyyppistring | VaatimusPakollinen | Arvot & rajat gemini-2.5-pro | Oletus— |
Kenttäcontents | Tyyppicontent[] | VaatimusPakollinen | Arvot & rajat Kohteiden vähimmäismäärä: 1 | Oletus— |
Kenttäcontents[].role | Tyyppistring | VaatimusValinnainen | Arvot & rajat user, model | Oletus— |
Kenttäcontents[].parts | Tyyppipart[] | VaatimusPakollinen | Arvot & rajat | Oletus— |
KenttäsystemInstruction | Tyyppicontent | VaatimusValinnainen | Arvot & rajat | Oletus— |
KenttägenerationConfig.maxOutputTokens | Tyyppiinteger | VaatimusValinnainen | Arvot & rajat Vähimmäismäärä: 1 Riippuu mallista | Oletus— |
KenttägenerationConfig.temperature | Tyyppinumber | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
KenttägenerationConfig.topP | Tyyppinumber | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
KenttägenerationConfig.topK | Tyyppiinteger | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
KenttägenerationConfig.stopSequences | Tyyppistring[] | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
KenttägenerationConfig.thinkingConfig.includeThoughts | Tyyppiboolean | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
KenttägenerationConfig.thinkingConfig.thinkingBudget | Tyyppiinteger | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttätools[].functionDeclarations | Tyyppifunction_declaration[] | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
KenttätoolConfig.functionCallingConfig.mode | Tyyppistring | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
KenttäsafetySettings | Tyyppiobject[] | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
KenttäsessionId | Tyyppistring | VaatimusValinnainen | Arvot & rajat | Oletus— |
Syöteaineistojen yhdistelmät
Teksti · UTF8-teksti
contents[].parts[].text
Teksti + kuva
parts[].inlineData={mimeType,data}
Menetelmän parametrit ja elinkaari
| Parametri | Sopimus |
|---|---|
Parametrimaterial_types | Sopimustext, image |
Parametrirequired | Sopimuscontents |
Parametrioptional_controls | Sopimusnull |
Parametricontent_type | Sopimusapplication/json |
Parametritext_file_material | Sopimusvarsinainen UTF-8-sisältö lisätään tekstinä; tiedostojen ID- tai URLs-arvot tarvitsevat erillisen täsmällisen tuen |
Elinkaari: exact retained published method
Menetelmien rakenteet ja ID:t ovat täsmällisiä; toimittajan kyvykkyys on erillinen pyynnön hyväksymisestä.
Hinnoittelu
Ailoot-menetelmien hinnat
POST /v1beta/models/{model}:generateContent- Syöte
- 0,00125 $ / 1K
- Tuloste
- 0,01 $ / 1K
- Välimuistin luku
- 0,000125 $ / 1K
Hinnat pyynnön pituuden mukaan · Gemini generateContent
| Pyynnön koko tokeneina | Syöte | Tuloste | Välimuistin luku | Välimuistiin kirjoitus | Välimuisti 5 min | Välimuisti 1 tunti |
|---|---|---|---|---|---|---|
| Pyynnön koko tokeneina(0; 200 000] | Syöte0,00125 $ | Tuloste0,01 $ | Välimuistin luku0,000125 $ | Välimuistiin kirjoitusPerushinta: — | Välimuisti 5 minPerushinta: — | Välimuisti 1 tuntiPerushinta: — |
| Pyynnön koko tokeneina(200 000; ∞) | Syöte0,0025 $ | Tuloste0,015 $ | Välimuistin luku0,00025 $ | Välimuistiin kirjoitusPerushinta: — | Välimuisti 5 minPerushinta: — | Välimuisti 1 tuntiPerushinta: — |
Hinnat USD-määräisinä 1K tokenia kohden. Jos hintaa ei ole asetettu, käytetään tämän menetelmän perushintaa; «—» tarkoittaa, ettei perushintaa ole asetettu.
Ailoot varaa arvioidun summan ennen pyyntöä. Tuloksen jälkeen lopullinen veloitus toteutetaan mitatun käytön perusteella. Suoratoiston veloituksessa käytetään lopullista käyttötietuetta. Varauksen ja lopullisen veloituksen toiminta →
Viitehinnaston tiedot
Mallitason viitehinnastot eivät muuta menetelmän valintaa, hinta-arvioita tai veloituksia. Käytössä olevat veloitukset käyttävät valitun Ailoot-menetelmän hintoja.
Mallin viitehinnastot
Hinnat asetusten mukaan
Kohdista kukin veloitus näytettyihin ehtoihin. Käytä yhtä hintaa kutakin vaihtoehtoisten asetusten ryhmää kohden.
| Asetukset | Hinnasto | Kontekstin tokenit, enemmän kuin | Kontekstin tokenit, enintään raja-arvo mukaan lukien | Veloitus |
|---|---|---|---|---|
| AsetuksetOpenAI Chat · Tokenien perushinnat | HinnastoPerushinta | Kontekstin tokenit, enemmän kuin— | Kontekstin tokenit, enintään raja-arvo mukaan lukienEi ylärajaa | Veloitus Syöte · Syötetokenit $0.0025 / 1K tokenia Tuloste · Tulostokenit $0.02 / 1K tokenia Syöte · Välimuistin luku $0.00025 / 1K tokenia Syöte · Välimuistiin kirjoitus $0.00075 / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti — / 1K tokenia Tuloste · Päättelyn tulostokenit $0.02 / 1K tokenia |
| AsetuksetOpenAI Chat · Pyynnön pituuden mukainen taso 1 | Hinnasto— | Kontekstin tokenit, enemmän kuin0 | Kontekstin tokenit, enintään raja-arvo mukaan lukien200 000 | Veloitus Syöte · Syötetokenit $0.0025 / 1K tokenia Tuloste · Tulostokenit $0.02 / 1K tokenia Syöte · Välimuistin luku $0.00025 / 1K tokenia Syöte · Välimuistiin kirjoitus $0.00075 / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti — / 1K tokenia |
| AsetuksetOpenAI Chat · Pyynnön pituuden mukainen taso 2 | Hinnasto— | Kontekstin tokenit, enemmän kuin200 000 | Kontekstin tokenit, enintään raja-arvo mukaan lukienEi ylärajaa | Veloitus Syöte · Syötetokenit $0.005 / 1K tokenia Tuloste · Tulostokenit $0.03 / 1K tokenia Syöte · Välimuistin luku $0.0005 / 1K tokenia Syöte · Välimuistiin kirjoitus $0.00075 / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti — / 1K tokenia |
| AsetuksetAnthropic Messages · Tokenien perushinnat | HinnastoPerushinta | Kontekstin tokenit, enemmän kuin— | Kontekstin tokenit, enintään raja-arvo mukaan lukienEi ylärajaa | Veloitus Syöte · Syötetokenit $0.0025 / 1K tokenia Tuloste · Tulostokenit $0.02 / 1K tokenia Syöte · Välimuistin luku $0.00025 / 1K tokenia Syöte · Välimuistiin kirjoitus $0.00075 / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti — / 1K tokenia Tuloste · Päättelyn tulostokenit $0.02 / 1K tokenia |
| AsetuksetAnthropic Messages · Pyynnön pituuden mukainen taso 1 | Hinnasto— | Kontekstin tokenit, enemmän kuin0 | Kontekstin tokenit, enintään raja-arvo mukaan lukien200 000 | Veloitus Syöte · Syötetokenit $0.0025 / 1K tokenia Tuloste · Tulostokenit $0.02 / 1K tokenia Syöte · Välimuistin luku $0.00025 / 1K tokenia Syöte · Välimuistiin kirjoitus $0.00075 / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti — / 1K tokenia |
| AsetuksetAnthropic Messages · Pyynnön pituuden mukainen taso 2 | Hinnasto— | Kontekstin tokenit, enemmän kuin200 000 | Kontekstin tokenit, enintään raja-arvo mukaan lukienEi ylärajaa | Veloitus Syöte · Syötetokenit $0.005 / 1K tokenia Tuloste · Tulostokenit $0.03 / 1K tokenia Syöte · Välimuistin luku $0.0005 / 1K tokenia Syöte · Välimuistiin kirjoitus $0.00075 / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti — / 1K tokenia |
Esimerkkipyynnöt
Ailoot · Gemini generateContent
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-2.5-pro: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-2.5-pro: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-2.5-pro", 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-2.5-pro", 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-2.5-pro',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
Vastaanota ja tallenna tulokset
Ailoot · Gemini generateContent
json tai tuettu virtakäsittely
Säilytä kaikki valmistuneet tulokset
Säilytä jokainen kokonainen palautettu vastaus, tiedosto ja sisällön osa.
Säilytä kaikki ehdokkaat ja osat, mukaan lukien funktiokutsut, päättelyallekirjoitukset ja käyttötiedot; kokoa virran lohkot järjestyksessä.
Jos alkuperäinen vastaus on tarkistettava
Säilytä pyyntöjen/vastausten ID:t ja otsakkeet. Yleistä tekstityön haku-URL:ää ei anneta.
Vastauksen kentät
| Kenttä | Tyyppi |
|---|---|
KenttäresponseId | Tyyppistring |
KenttämodelVersion | Tyyppistring |
Kenttäcandidates[].content.parts[] | Tyyppitext|inlineData|functionCall|other part |
Kenttäcandidates[].finishReason | Tyyppistring |
KenttäusageMetadata | Tyyppiobject |
Virheet ja seuraavat vaiheet
| Vastaus | Ehto | Seuraava vaihe |
|---|---|---|
Vastaus400 · invalid_request_error | EhtoVirheelliset pakolliset kentät, aineiston esitysmuoto tai parametrin arvo | Seuraava vaiheKorjaa ilmoitetut kentät ennen uutta luontipyyntöä. |
Aliakset
Mallin aliakset
Ailoot gemini-2.5-pro
Ailoot Ultra gemini-2.5-pro, google/gemini-2.5-pro
Menetelmäpolkujen aliakset
/chat/completions
Liittyvät kutsujan ID:t
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions gemini-2.5-pro
gemini-2.5-progemini-2.5-progoogle/gemini-2.5-pro
Aloitus
Gemini 2.5 Pro on Googlen vakaa ajattelumalli vaativaan ohjelmointiin, matematiikkaan, STEM-tehtäviin ja pitkän kontekstin analyysiin. Se vastaanottaa tekstiä, kuvia, ääntä, videota ja PDF-aineistoa ja palauttaa tekstiä sekä tukee työkaluja ja rakenteista tulostetta. Sen dynaaminen päättelybudjetti tukee 128–32 768 tokenia, eikä ajattelua voi poistaa kokonaan käytöstä.
- Hyväksytyt syötteet
- Teksti
- Tulokset
- Teksti
Saatavilla Ailootissa · syötteet & menetelmät
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
- Syötetyypit
text- Tulostyypit
text- Tulosteen muoto
- json tai SSE
| Kenttä | Tyyppi | Vaatimus | Arvot & rajat | Oletus |
|---|---|---|---|---|
Kenttämodel | Tyyppistring | VaatimusPakollinen | Arvot & rajat gemini-2.5-pro | Oletus— |
Kenttämessages | Tyyppimessage[] | VaatimusPakollinen | Arvot & rajat Kohteiden vähimmäismäärä: 1 | Oletus— |
Kenttämessages[].role | Tyyppistring | VaatimusPakollinen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttämessages[].content | Tyyppistring | VaatimusValinnainen | Arvot & rajat Sovelletaan, kun: Tekstikeskustelu | Oletus— |
Kenttästream | Tyyppiboolean | VaatimusValinnainen | Arvot & rajat | Oletusfalse |
Syöteaineistojen yhdistelmät
Teksti · UTF8-teksti
messages[].content
Menetelmän parametrit ja elinkaari
| Parametri | Sopimus |
|---|---|
Parametricontent_type | Sopimusapplication/json |
Parametrirequired | Sopimusmodel, messages |
Parametrimaterial_types | Sopimustext |
Parametrimessages | Sopimusviestitaulukko role/content-rakenteella |
Parametrifile_material | Sopimusvarsinainen UTF-8-asiakirja lisätään sellaisenaan tekstinä; tiedoston ID:tä ei päätellä |
Parametrioptional_controls | Sopimusstream |
Parametricontrol_scope | SopimusTekstikeskustelu; stream on totuusarvo, jonka oletus on false. |
Parametrioutput_modalities | Sopimustext |
Parametrihosted_operations | Sopimusfalse |
Parametrimultimodal_input_binding | Sopimusnull |
Menetelmien aliakset: /chat/completions
Elinkaari: synchronous_or_streamed
Lähetä mallin täsmällinen ID yhdessä messages-kentän kanssa.
Kontekstin pituus ei ole tuloksen yläraja.
Tekstitiedosto voi antaa tekstiä sellaisenaan; kuva-, ääni- ja tiedosto-objektisyötteet tarvitsevat täsmällisen sidonnan.
Hinnoittelu
Hintatiedot eivät lisää pyyntövalintoja. Tuetut parametrit on lueteltu valitulle menetelmälle.
- Nopea tila
- Vakiohinta Kun nopea tila on valittu
- Flex-tila
- Vakiohinta Kun flex-tila on valittu
- Päättelyn enimmäisteho
- Vakiohinta Kun päättelyn enimmäistehoon sovelletaan default-oletussäätöä
- Eksplisiittisen välimuistin hinnoittelu
- Ei käytössä Kun eksplisiittistä välimuistia pyydetään
- Päättelytulos
- Päättelyyn sovelletaan lueteltua osajoukon hintaa kokonaistuloksen sisällä; älä lisää näitä tokeneita kahdesti. Kun tulos sisältää päättelytokeneita
Ailoot-hinnat
Hinnat asetusten mukaan
Kohdista kukin veloitus näytettyihin ehtoihin. Käytä yhtä hintaa kutakin vaihtoehtoisten asetusten ryhmää kohden.
| Asetukset | Hinnasto | Kontekstin tokenit, enemmän kuin | Kontekstin tokenit, enintään raja-arvo mukaan lukien | Veloitus |
|---|---|---|---|---|
| AsetuksetTokenien perushinnat | HinnastoPerushinta | Kontekstin tokenit, enemmän kuin— | Kontekstin tokenit, enintään raja-arvo mukaan lukienEi ylärajaa | Veloitus Syöte · Syötetokenit $0.0025 / 1K tokenia Tuloste · Tulostokenit $0.02 / 1K tokenia Syöte · Välimuistin luku $0.00025 / 1K tokenia Syöte · Välimuistiin kirjoitus $0.00075 / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti — / 1K tokenia Tuloste · Päättelyn tulostokenit $0.02 / 1K tokenia |
| AsetuksetPyynnön pituusluokka 1 | Hinnasto— | Kontekstin tokenit, enemmän kuin0 | Kontekstin tokenit, enintään raja-arvo mukaan lukien200 000 | Veloitus Syöte · Syötetokenit $0.0025 / 1K tokenia Tuloste · Tulostokenit $0.02 / 1K tokenia Syöte · Välimuistin luku $0.00025 / 1K tokenia Syöte · Välimuistiin kirjoitus $0.00075 / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti — / 1K tokenia |
| AsetuksetPyynnön pituusluokka 2 | Hinnasto— | Kontekstin tokenit, enemmän kuin200 000 | Kontekstin tokenit, enintään raja-arvo mukaan lukienEi ylärajaa | Veloitus Syöte · Syötetokenit $0.005 / 1K tokenia Tuloste · Tulostokenit $0.03 / 1K tokenia Syöte · Välimuistin luku $0.0005 / 1K tokenia Syöte · Välimuistiin kirjoitus $0.00075 / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti — / 1K tokenia |
Ailoot varaa arvioidun summan ennen pyyntöä. Tuloksen jälkeen lopullinen veloitus toteutetaan mitatun käytön perusteella. Suoratoiston veloituksessa käytetään lopullista käyttötietuetta. Varauksen ja lopullisen veloituksen toiminta →
Esimerkkipyynnöt
Ailoot Ultra · OpenAI Chat
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-2.5-pro","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-2.5-pro", 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"))
Vastaanota ja tallenna tulokset
Ailoot Ultra · OpenAI Chat
json tai SSE
Säilytä kaikki valmistuneet tulokset
Säilytä jokainen kokonainen palautettu vastaus, tiedosto ja sisällön osa.
Säilytä jokainen vastausvaihtoehto sisältöineen, työkalukutsuineen ja päättelyineen. Kokoa SSE:ssä muutokset vastausvaihtoehdon ja työkalun indeksin mukaan ja säilytä lopullinen päättymissyy sekä käyttötiedot.
Jos alkuperäinen vastaus on tarkistettava
Säilytä pyyntöjen/vastausten ID:t ja otsakkeet. Yleistä tekstityön haku-URL:ää ei anneta.
Vastauksen kentät
| Kenttä | Tyyppi |
|---|---|
Kenttächoices[].index | Tyyppiinteger |
Kenttächoices[].message.content | Tyyppistring|null |
Kenttächoices[].message.tool_calls | Tyyppitool_call[] |
Kenttächoices[].message.reasoning_content | Tyyppistring |
Kenttächoices[].message.reasoning_details | Tyyppiobject|array |
Kenttächoices[].finish_reason | Tyyppistring|null |
Kenttäusage | Tyyppiobject |
Virheet ja seuraavat vaiheet
| Vastaus | Ehto | Seuraava vaihe |
|---|---|---|
Vastaus400 · invalid_request_error | EhtoVirheelliset pakolliset kentät, aineiston esitysmuoto tai parametrin arvo | Seuraava vaiheKorjaa ilmoitetut kentät ennen uutta luontipyyntöä. |
Aliakset
Mallin aliakset
Ailoot gemini-2.5-pro
Ailoot Ultra gemini-2.5-pro, google/gemini-2.5-pro
Menetelmäpolkujen aliakset
/chat/completions
Liittyvät kutsujan ID:t
Ailoot Ultra · Anthropic Messages POST /v1/messages gemini-2.5-pro
gemini-2.5-progemini-2.5-progoogle/gemini-2.5-pro
Aloitus
Gemini 2.5 Pro on Googlen vakaa ajattelumalli vaativaan ohjelmointiin, matematiikkaan, STEM-tehtäviin ja pitkän kontekstin analyysiin. Se vastaanottaa tekstiä, kuvia, ääntä, videota ja PDF-aineistoa ja palauttaa tekstiä sekä tukee työkaluja ja rakenteista tulostetta. Sen dynaaminen päättelybudjetti tukee 128–32 768 tokenia, eikä ajattelua voi poistaa kokonaan käytöstä.
- Hyväksytyt syötteet
- Teksti
- Tulokset
- json · sse
Saatavilla Ailootissa · syötteet & menetelmät
Ailoot Ultra · Anthropic Messages POST /v1/messages
- Syötetyypit
text- Tulostyypit
json,sse- Tulosteen muoto
- JSON tai SSE
| Kenttä | Tyyppi | Vaatimus | Arvot & rajat | Oletus |
|---|---|---|---|---|
Kenttämodel | Tyyppistring | VaatimusPakollinen | Arvot & rajat gemini-2.5-pro | Oletus— |
Kenttämessages | Tyyppimessage[] | VaatimusPakollinen | Arvot & rajat | Oletus— |
Kenttämessages[].role | Tyyppistring | VaatimusPakollinen | Arvot & rajat user, assistant | Oletus— |
Kenttämessages[].content | Tyyppistring | VaatimusPakollinen | Arvot & rajat | Oletus— |
Kenttämax_tokens | Tyyppiinteger | VaatimusPakollinen | Arvot & rajat | Oletus— |
Kenttästream | Tyyppiboolean | VaatimusValinnainen | Arvot & rajat | Oletusfalse |
Syöteaineistojen yhdistelmät
Teksti · UTF-8-teksti
messages[].content-merkkijono
Menetelmän parametrit ja elinkaari
| Parametri | Sopimus |
|---|---|
Parametricontent_type | Sopimusapplication/json |
Parametrirequired | Sopimusmodel, messages, max_tokens |
Parametrioptional_controls | Sopimusstream |
Parametrimaterial_types | Sopimustext |
Parametritext_file_material | SopimusLue varsinainen UTF-8-asiakirja ja sijoita sen teksti ilmoitettuun syöte- tai viestisisällön merkkijonoon. |
Elinkaari: synchronous_or_streamed
Hinnoittelu
Hintatiedot eivät lisää pyyntövalintoja. Tuetut parametrit on lueteltu valitulle menetelmälle.
- Nopea tila
- Vakiohinta Kun nopea tila on valittu
- Flex-tila
- Vakiohinta Kun flex-tila on valittu
- Päättelyn enimmäisteho
- Vakiohinta Kun päättelyn enimmäistehoon sovelletaan default-oletussäätöä
- Eksplisiittisen välimuistin hinnoittelu
- Ei käytössä Kun eksplisiittistä välimuistia pyydetään
- Päättelytulos
- Päättelyyn sovelletaan lueteltua osajoukon hintaa kokonaistuloksen sisällä; älä lisää näitä tokeneita kahdesti. Kun tulos sisältää päättelytokeneita
Ailoot-hinnat
Hinnat asetusten mukaan
Kohdista kukin veloitus näytettyihin ehtoihin. Käytä yhtä hintaa kutakin vaihtoehtoisten asetusten ryhmää kohden.
| Asetukset | Hinnasto | Kontekstin tokenit, enemmän kuin | Kontekstin tokenit, enintään raja-arvo mukaan lukien | Veloitus |
|---|---|---|---|---|
| AsetuksetTokenien perushinnat | HinnastoPerushinta | Kontekstin tokenit, enemmän kuin— | Kontekstin tokenit, enintään raja-arvo mukaan lukienEi ylärajaa | Veloitus Syöte · Syötetokenit $0.0025 / 1K tokenia Tuloste · Tulostokenit $0.02 / 1K tokenia Syöte · Välimuistin luku $0.00025 / 1K tokenia Syöte · Välimuistiin kirjoitus $0.00075 / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti — / 1K tokenia Tuloste · Päättelyn tulostokenit $0.02 / 1K tokenia |
| AsetuksetPyynnön pituusluokka 1 | Hinnasto— | Kontekstin tokenit, enemmän kuin0 | Kontekstin tokenit, enintään raja-arvo mukaan lukien200 000 | Veloitus Syöte · Syötetokenit $0.0025 / 1K tokenia Tuloste · Tulostokenit $0.02 / 1K tokenia Syöte · Välimuistin luku $0.00025 / 1K tokenia Syöte · Välimuistiin kirjoitus $0.00075 / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti — / 1K tokenia |
| AsetuksetPyynnön pituusluokka 2 | Hinnasto— | Kontekstin tokenit, enemmän kuin200 000 | Kontekstin tokenit, enintään raja-arvo mukaan lukienEi ylärajaa | Veloitus Syöte · Syötetokenit $0.005 / 1K tokenia Tuloste · Tulostokenit $0.03 / 1K tokenia Syöte · Välimuistin luku $0.0005 / 1K tokenia Syöte · Välimuistiin kirjoitus $0.00075 / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti — / 1K tokenia |
Ailoot varaa arvioidun summan ennen pyyntöä. Tuloksen jälkeen lopullinen veloitus toteutetaan mitatun käytön perusteella. Suoratoiston veloituksessa käytetään lopullista käyttötietuetta. Varauksen ja lopullisen veloituksen toiminta →
Esimerkkipyynnöt
Ailoot Ultra · Anthropic Messages
{
"model": "gemini-2.5-pro",
"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-2.5-pro', '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-2.5-pro', '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))
Vastaanota ja tallenna tulokset
Ailoot Ultra · Anthropic Messages
JSON tai SSE
Säilytä kaikki valmistuneet tulokset
Säilytä jokainen kokonainen palautettu vastaus, tiedosto ja sisällön osa.
Säilytä kaikki sisältölohkot, päättelyallekirjoitukset ja todelliset työkalukäytön ID:t. Kokoa kaikki SSE-lohkomuutokset; ensimmäinen tekstilohko ei ole koko tulos.
Jos alkuperäinen vastaus on tarkistettava
Säilytä pyyntöjen/vastausten ID:t ja otsakkeet. Yleistä tekstityön haku-URL:ää ei anneta.
Vastauksen kentät
| Kenttä | Tyyppi |
|---|---|
Kenttäid | Tyyppistring |
Kenttämodel | Tyyppistring |
Kenttäcontent[] | Tyyppitext|thinking|tool_use|other content block |
Kenttästop_reason | Tyyppistring|null |
Kenttäusage | Tyyppiobject |
Virheet ja seuraavat vaiheet
| Vastaus | Ehto | Seuraava vaihe |
|---|---|---|
Vastaus400 · invalid_request_error | EhtoVirheelliset pakolliset kentät, aineiston esitysmuoto tai parametrin arvo | Seuraava vaiheKorjaa ilmoitetut kentät ennen uutta luontipyyntöä. |
Aliakset
Mallin aliakset
Ailoot gemini-2.5-pro
Ailoot Ultra gemini-2.5-pro, google/gemini-2.5-pro
Menetelmäpolkujen aliakset
/chat/completions
Liittyvät kutsujan ID:t
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions google/gemini-2.5-pro
google/gemini-2.5-progemini-2.5-progoogle/gemini-2.5-pro
Aloitus
Gemini 2.5 Pro on Googlen vakaa ajattelumalli vaativaan ohjelmointiin, matematiikkaan, STEM-tehtäviin ja pitkän kontekstin analyysiin. Se vastaanottaa tekstiä, kuvia, ääntä, videota ja PDF-aineistoa ja palauttaa tekstiä sekä tukee työkaluja ja rakenteista tulostetta. Sen dynaaminen päättelybudjetti tukee 128–32 768 tokenia, eikä ajattelua voi poistaa kokonaan käytöstä.
- Hyväksytyt syötteet
- Teksti
- Tulokset
- Teksti
Saatavilla Ailootissa · syötteet & menetelmät
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
- Syötetyypit
text- Tulostyypit
text- Tulosteen muoto
- json tai SSE
| Kenttä | Tyyppi | Vaatimus | Arvot & rajat | Oletus |
|---|---|---|---|---|
Kenttämodel | Tyyppistring | VaatimusPakollinen | Arvot & rajat google/gemini-2.5-pro | Oletus— |
Kenttämessages | Tyyppimessage[] | VaatimusPakollinen | Arvot & rajat Kohteiden vähimmäismäärä: 1 | Oletus— |
Kenttämessages[].role | Tyyppistring | VaatimusPakollinen | Arvot & rajat Esimerkit: system, user, assistant, tool, function Ehdot: Nämä roolit esitetään nimenomaisesti lähdekoodin yhteensopivuustyypeissä; mallin täsmällinen roolijoukko pysyy mallikohtaisena. Riippuu mallista | Oletus— |
Kenttämessages[].content | Tyyppistring|content_part[]|null | VaatimusValinnainen | Arvot & rajat | Oletus— |
Kenttämessages[].tool_calls | Tyyppitool_call[] | VaatimusValinnainen | Arvot & rajat | Oletus— |
Kenttämessages[].tool_call_id | Tyyppistring | VaatimusValinnainen | Arvot & rajat Sovelletaan, kun: role=tool; käytä todella palautettua ID:tä | Oletus— |
Kenttämessages[].name | Tyyppistring | VaatimusValinnainen | Arvot & rajat | Oletus— |
Kenttämessages[].reasoning_content | Tyyppistring | VaatimusValinnainen | Arvot & rajat Sovelletaan, kun: Palauta todella saatu päättely takaisin mallille, kun kyseinen malli käyttää sitä | Oletus— |
Kenttämessages[].reasoning_details | Tyyppiobject|array | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttämax_tokens | Tyyppiinteger | VaatimusValinnainen | Arvot & rajat Vähimmäismäärä: 1 Riippuu mallista | Oletus— |
Kenttämax_completion_tokens | Tyyppiinteger | VaatimusValinnainen | Arvot & rajat Vähimmäismäärä: 1 Riippuu mallista | Oletus— |
Kenttästream | Tyyppiboolean | VaatimusValinnainen | Arvot & rajat | Oletusfalse |
Kenttästream_options.include_usage | Tyyppiboolean | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttätemperature | Tyyppinumber | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttätop_p | Tyyppinumber | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttästop | Tyyppistring|string[] | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttätools | Tyyppifunction_tool[] | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttätools[].type | Tyyppistring | VaatimusValinnainen | Arvot & rajat function Riippuu mallista | Oletus— |
Kenttätools[].function.name | Tyyppistring | VaatimusPakollinen | Arvot & rajat Sovelletaan, kun: funktiotyökalu annettu | Oletus— |
Kenttätools[].function.description | Tyyppistring | VaatimusValinnainen | Arvot & rajat | Oletus— |
Kenttätools[].function.parameters | TyyppiJSON_schema | VaatimusValinnainen | Arvot & rajat | Oletus— |
Kenttätool_choice | Tyyppistring|object | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttäparallel_tool_calls | Tyyppiboolean | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttäresponse_format | Tyyppiobject | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttäreasoning_effort | Tyyppistring | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttäreasoning | Tyyppiobject | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttäservice_tier | Tyyppistring | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttäinstructions | Tyyppistring | VaatimusValinnainen | Arvot & rajat Yhteensopivuuskenttä | Oletus— |
Kenttäfunctions | Tyyppifunction[] | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttäfunction_call | Tyyppistring|object | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttäprompt_cache_options | Tyyppiobject | VaatimusValinnainen | Arvot & rajat Riippuu mallista | Oletus— |
Kenttämodalities | Tyyppistring[] | VaatimusValinnainen | Arvot & rajat text | Oletus— |
Kenttäprovider | Tyyppiobject | VaatimusValinnainen | Arvot & rajat Ehdot: provider.options hylätään tällä Ultran tekstireitillä | Oletus— |
Kenttäcache_control.ttl | Tyyppistring | VaatimusValinnainen | Arvot & rajat Ehdot: 1h hylätään varsinaisissa kehotevälimuistin kohdissa | Oletus— |
Syöteaineistojen yhdistelmät
Teksti · UTF8-teksti
messages[].content
Menetelmän parametrit ja elinkaari
| Parametri | Sopimus |
|---|---|
Parametricontent_type | Sopimusapplication/json |
Parametrirequired | Sopimusmodel, messages |
Parametrimaterial_types | Sopimustext |
Parametrimessages | Sopimusviestitaulukko role/content-rakenteella |
Parametrifile_material | Sopimusvarsinainen UTF-8-asiakirja lisätään sellaisenaan tekstinä; tiedoston ID:tä ei päätellä |
Parametrioptional_controls | Sopimusstream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice |
Parametricontrol_scope | Sopimusmallikohtainen; käyttäjän funktiotyökalut eroavat palvelun isännöimistä työkaluista |
Parametrioutput_modalities | Sopimustext |
Parametrihosted_operations | Sopimusfalse |
Parametrimultimodal_input_binding | Sopimusnull |
Elinkaari: synchronous_or_streamed
Lähetä mallin täsmällinen ID yhdessä messages-kentän kanssa.
Kontekstin pituus ei ole tuloksen yläraja.
Tekstitiedosto voi antaa tekstiä sellaisenaan; kuva-, ääni- ja tiedosto-objektisyötteet tarvitsevat täsmällisen sidonnan.
Hinnoittelu
Hintatiedot eivät lisää pyyntövalintoja. Tuetut parametrit on lueteltu valitulle menetelmälle.
- Nopea tila
- Vakiohinta Kun nopea tila on valittu
- Flex-tila
- Vakiohinta Kun flex-tila on valittu
- Päättelyn enimmäisteho
- Vakiohinta Kun päättelyn enimmäistehoon sovelletaan default-oletussäätöä
- Eksplisiittisen välimuistin hinnoittelu
- Ei käytössä Kun eksplisiittistä välimuistia pyydetään
- Päättelytulos
- Päättelyyn sovelletaan lueteltua osajoukon hintaa kokonaistuloksen sisällä; älä lisää näitä tokeneita kahdesti. Kun tulos sisältää päättelytokeneita
Ailoot-hinnat
Hinnat asetusten mukaan
Kohdista kukin veloitus näytettyihin ehtoihin. Käytä yhtä hintaa kutakin vaihtoehtoisten asetusten ryhmää kohden.
| Asetukset | Hinnasto | Kontekstin tokenit, enemmän kuin | Kontekstin tokenit, enintään raja-arvo mukaan lukien | Veloitus |
|---|---|---|---|---|
| AsetuksetTokenien perushinnat | HinnastoPerushinta | Kontekstin tokenit, enemmän kuin— | Kontekstin tokenit, enintään raja-arvo mukaan lukienEi ylärajaa | Veloitus Syöte · Syötetokenit $0.0025 / 1K tokenia Tuloste · Tulostokenit $0.02 / 1K tokenia Syöte · Välimuistin luku $0.00025 / 1K tokenia Syöte · Välimuistiin kirjoitus $0.00075 / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti — / 1K tokenia Tuloste · Päättelyn tulostokenit $0.02 / 1K tokenia |
| AsetuksetPyynnön pituusluokka 1 | Hinnasto— | Kontekstin tokenit, enemmän kuin0 | Kontekstin tokenit, enintään raja-arvo mukaan lukien200 000 | Veloitus Syöte · Syötetokenit $0.0025 / 1K tokenia Tuloste · Tulostokenit $0.02 / 1K tokenia Syöte · Välimuistin luku $0.00025 / 1K tokenia Syöte · Välimuistiin kirjoitus $0.00075 / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti — / 1K tokenia |
| AsetuksetPyynnön pituusluokka 2 | Hinnasto— | Kontekstin tokenit, enemmän kuin200 000 | Kontekstin tokenit, enintään raja-arvo mukaan lukienEi ylärajaa | Veloitus Syöte · Syötetokenit $0.005 / 1K tokenia Tuloste · Tulostokenit $0.03 / 1K tokenia Syöte · Välimuistin luku $0.0005 / 1K tokenia Syöte · Välimuistiin kirjoitus $0.00075 / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti — / 1K tokenia |
Ailoot varaa arvioidun summan ennen pyyntöä. Tuloksen jälkeen lopullinen veloitus toteutetaan mitatun käytön perusteella. Suoratoiston veloituksessa käytetään lopullista käyttötietuetta. Varauksen ja lopullisen veloituksen toiminta →
Esimerkkipyynnöt
Ailoot Ultra · OpenAI Chat
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-2.5-pro", "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-2.5-pro',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-2.5-pro',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")
Vastaanota ja tallenna tulokset
Ailoot Ultra · OpenAI Chat
json tai SSE
Säilytä kaikki valmistuneet tulokset
Säilytä jokainen kokonainen palautettu vastaus, tiedosto ja sisällön osa.
Säilytä jokainen vastausvaihtoehto sisältöineen, työkalukutsuineen ja päättelyineen. Kokoa SSE:ssä muutokset vastausvaihtoehdon ja työkalun indeksin mukaan ja säilytä lopullinen päättymissyy sekä käyttötiedot.
Jos alkuperäinen vastaus on tarkistettava
Säilytä pyyntöjen/vastausten ID:t ja otsakkeet. Yleistä tekstityön haku-URL:ää ei anneta.
Vastauksen kentät
| Kenttä | Tyyppi |
|---|---|
Kenttächoices[].index | Tyyppiinteger |
Kenttächoices[].message.content | Tyyppistring|null |
Kenttächoices[].message.tool_calls | Tyyppitool_call[] |
Kenttächoices[].message.reasoning_content | Tyyppistring |
Kenttächoices[].message.reasoning_details | Tyyppiobject|array |
Kenttächoices[].finish_reason | Tyyppistring|null |
Kenttäusage | Tyyppiobject |
Virheet ja seuraavat vaiheet
| Vastaus | Ehto | Seuraava vaihe |
|---|---|---|
Vastaus400 · invalid_request_error | EhtoVirheelliset pakolliset kentät, aineiston esitysmuoto tai parametrin arvo | Seuraava vaiheKorjaa ilmoitetut kentät ennen uutta luontipyyntöä. |
Aliakset
Mallin aliakset
Ailoot gemini-2.5-pro
Ailoot Ultra gemini-2.5-pro, google/gemini-2.5-pro
Menetelmäpolkujen aliakset
/chat/completions
Liittyvät kutsujan ID:t
Ailoot Ultra · Anthropic Messages POST /v1/messages google/gemini-2.5-pro
google/gemini-2.5-progemini-2.5-progoogle/gemini-2.5-pro
Aloitus
Gemini 2.5 Pro on Googlen vakaa ajattelumalli vaativaan ohjelmointiin, matematiikkaan, STEM-tehtäviin ja pitkän kontekstin analyysiin. Se vastaanottaa tekstiä, kuvia, ääntä, videota ja PDF-aineistoa ja palauttaa tekstiä sekä tukee työkaluja ja rakenteista tulostetta. Sen dynaaminen päättelybudjetti tukee 128–32 768 tokenia, eikä ajattelua voi poistaa kokonaan käytöstä.
- Hyväksytyt syötteet
- Teksti
- Tulokset
- json · sse
Saatavilla Ailootissa · syötteet & menetelmät
Ailoot Ultra · Anthropic Messages POST /v1/messages
- Syötetyypit
text- Tulostyypit
json,sse- Tulosteen muoto
- JSON tai SSE
| Kenttä | Tyyppi | Vaatimus | Arvot & rajat | Oletus |
|---|---|---|---|---|
Kenttämodel | Tyyppistring | VaatimusPakollinen | Arvot & rajat google/gemini-2.5-pro | Oletus— |
Kenttämessages | Tyyppimessage[] | VaatimusPakollinen | Arvot & rajat | Oletus— |
Kenttämessages[].role | Tyyppistring | VaatimusPakollinen | Arvot & rajat user, assistant | Oletus— |
Kenttämessages[].content | Tyyppistring | VaatimusPakollinen | Arvot & rajat | Oletus— |
Kenttämax_tokens | Tyyppiinteger | VaatimusPakollinen | Arvot & rajat | Oletus— |
Kenttästream | Tyyppiboolean | VaatimusValinnainen | Arvot & rajat | Oletusfalse |
Syöteaineistojen yhdistelmät
Teksti · UTF-8-teksti
messages[].content-merkkijono
Menetelmän parametrit ja elinkaari
| Parametri | Sopimus |
|---|---|
Parametricontent_type | Sopimusapplication/json |
Parametrirequired | Sopimusmodel, messages, max_tokens |
Parametrioptional_controls | Sopimusstream |
Parametrimaterial_types | Sopimustext |
Parametritext_file_material | SopimusLue varsinainen UTF-8-asiakirja ja sijoita sen teksti ilmoitettuun syöte- tai viestisisällön merkkijonoon. |
Elinkaari: synchronous_or_streamed
Hinnoittelu
Hintatiedot eivät lisää pyyntövalintoja. Tuetut parametrit on lueteltu valitulle menetelmälle.
- Nopea tila
- Vakiohinta Kun nopea tila on valittu
- Flex-tila
- Vakiohinta Kun flex-tila on valittu
- Päättelyn enimmäisteho
- Vakiohinta Kun päättelyn enimmäistehoon sovelletaan default-oletussäätöä
- Eksplisiittisen välimuistin hinnoittelu
- Ei käytössä Kun eksplisiittistä välimuistia pyydetään
- Päättelytulos
- Päättelyyn sovelletaan lueteltua osajoukon hintaa kokonaistuloksen sisällä; älä lisää näitä tokeneita kahdesti. Kun tulos sisältää päättelytokeneita
Ailoot-hinnat
Hinnat asetusten mukaan
Kohdista kukin veloitus näytettyihin ehtoihin. Käytä yhtä hintaa kutakin vaihtoehtoisten asetusten ryhmää kohden.
| Asetukset | Hinnasto | Kontekstin tokenit, enemmän kuin | Kontekstin tokenit, enintään raja-arvo mukaan lukien | Veloitus |
|---|---|---|---|---|
| AsetuksetTokenien perushinnat | HinnastoPerushinta | Kontekstin tokenit, enemmän kuin— | Kontekstin tokenit, enintään raja-arvo mukaan lukienEi ylärajaa | Veloitus Syöte · Syötetokenit $0.0025 / 1K tokenia Tuloste · Tulostokenit $0.02 / 1K tokenia Syöte · Välimuistin luku $0.00025 / 1K tokenia Syöte · Välimuistiin kirjoitus $0.00075 / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti — / 1K tokenia Tuloste · Päättelyn tulostokenit $0.02 / 1K tokenia |
| AsetuksetPyynnön pituusluokka 1 | Hinnasto— | Kontekstin tokenit, enemmän kuin0 | Kontekstin tokenit, enintään raja-arvo mukaan lukien200 000 | Veloitus Syöte · Syötetokenit $0.0025 / 1K tokenia Tuloste · Tulostokenit $0.02 / 1K tokenia Syöte · Välimuistin luku $0.00025 / 1K tokenia Syöte · Välimuistiin kirjoitus $0.00075 / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti — / 1K tokenia |
| AsetuksetPyynnön pituusluokka 2 | Hinnasto— | Kontekstin tokenit, enemmän kuin200 000 | Kontekstin tokenit, enintään raja-arvo mukaan lukienEi ylärajaa | Veloitus Syöte · Syötetokenit $0.005 / 1K tokenia Tuloste · Tulostokenit $0.03 / 1K tokenia Syöte · Välimuistin luku $0.0005 / 1K tokenia Syöte · Välimuistiin kirjoitus $0.00075 / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti — / 1K tokenia |
Ailoot varaa arvioidun summan ennen pyyntöä. Tuloksen jälkeen lopullinen veloitus toteutetaan mitatun käytön perusteella. Suoratoiston veloituksessa käytetään lopullista käyttötietuetta. Varauksen ja lopullisen veloituksen toiminta →
Esimerkkipyynnöt
Ailoot Ultra · Anthropic Messages
{
"model": "google/gemini-2.5-pro",
"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-2.5-pro', '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-2.5-pro', '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))
Vastaanota ja tallenna tulokset
Ailoot Ultra · Anthropic Messages
JSON tai SSE
Säilytä kaikki valmistuneet tulokset
Säilytä jokainen kokonainen palautettu vastaus, tiedosto ja sisällön osa.
Säilytä kaikki sisältölohkot, päättelyallekirjoitukset ja todelliset työkalukäytön ID:t. Kokoa kaikki SSE-lohkomuutokset; ensimmäinen tekstilohko ei ole koko tulos.
Jos alkuperäinen vastaus on tarkistettava
Säilytä pyyntöjen/vastausten ID:t ja otsakkeet. Yleistä tekstityön haku-URL:ää ei anneta.
Vastauksen kentät
| Kenttä | Tyyppi |
|---|---|
Kenttäid | Tyyppistring |
Kenttämodel | Tyyppistring |
Kenttäcontent[] | Tyyppitext|thinking|tool_use|other content block |
Kenttästop_reason | Tyyppistring|null |
Kenttäusage | Tyyppiobject |
Virheet ja seuraavat vaiheet
| Vastaus | Ehto | Seuraava vaihe |
|---|---|---|
Vastaus400 · invalid_request_error | EhtoVirheelliset pakolliset kentät, aineiston esitysmuoto tai parametrin arvo | Seuraava vaiheKorjaa ilmoitetut kentät ennen uutta luontipyyntöä. |
Aliakset
Mallin aliakset
Ailoot gemini-2.5-pro
Ailoot Ultra gemini-2.5-pro, google/gemini-2.5-pro
Menetelmäpolkujen aliakset
/chat/completions
Liittyvät kutsujan ID:t
FAQ · Google: Gemini 2.5 Pro
- Mitä syötteitä ja tuloksia on saatavilla?
POST /v1/messages·gemini-2.5-pro:text,image→textPOST /v1beta/models/{model}:generateContent·gemini-2.5-pro:text,image→textPOST /v1/chat/completions·gemini-2.5-pro:text→textPOST /v1/messages·gemini-2.5-pro:text→json,ssePOST /v1/chat/completions·google/gemini-2.5-pro:text→textPOST /v1/messages·google/gemini-2.5-pro:text→json,sse- Mitä kenttiä pyyntö käyttää?
POST /v1/messages·gemini-2.5-pro:model,messages,system,max_tokens,stream,metadataPOST /v1beta/models/{model}:generateContent·gemini-2.5-pro:contents,systemInstruction,sessionIdPOST /v1/chat/completions·gemini-2.5-pro:model,messages,streamPOST /v1/messages·gemini-2.5-pro:model,messages,max_tokens,streamPOST /v1/chat/completions·google/gemini-2.5-pro:model,messages,stream,modalities,providerPOST /v1/messages·google/gemini-2.5-pro:model,messages,max_tokens,stream- Mitä rajoja sovelletaan?
POST /v1/messages·gemini-2.5-pro:ctx:1048576;max_out:65536;messages.min_items:1;max_tokens.minimum:1POST /v1beta/models/{model}:generateContent·gemini-2.5-pro:ctx:1048576;max_out:65536;contents.min_items:1POST /v1/chat/completions·gemini-2.5-pro:messages.min_items:1POST /v1/chat/completions·google/gemini-2.5-pro:messages.min_items:1