IBM: Granite 4.2 8B
Granite 4.2 8B er IBMs tette resonneringsmodell for tekst til matematikk, koding, flerspråklig dialog og verktøystyrte agenter. Den tilbyr full, direkte og lett resonneringsmodus, med en innebygd kontekst på 128K og en separat dokumentert utvidelse for lang kontekst.
- Ailoot Ultra · OpenAI Chat
POST /v1/chat/completionsibm-granite/granite-4.2-8b - Ailoot Ultra · Anthropic Messages
POST /v1/messagesibm-granite/granite-4.2-8b
Om modellen
Denne beskrivelsen dekker modellens funksjoner. Tilgjengelige inndata, utdata og alternativer i Ailoot er oppført nedenfor for den valgte metoden.
Granite 4.2 8B er IBMs mellomstore resonneringsmodell i Granite 4.2-familien. Den tette transformeren med bare dekoder og 8 milliarder parametere er ettertrent fra Granite 4.1 8B Base for resonnering, kodegenerering, instruksjonsfølging og verktøystyrt arbeid. Den tar imot tekst og produserer tekst, med en mellomliggende resonneringsblokk i resonneringsmodus og et separat sluttsvar.
Modellutforming og kontekst
Produsenten beskriver grouped-query attention, roterende posisjonskoding, SwiGLU-fremoverlag og RMS-normalisering. Modellen støtter en innebygd kontekst på 128K og dokumenterer en utvidelse til 512K. Dette er ulike konfigurasjoner: det utvidede tallet skal ikke erstatte den innebygde innstillingen i en oppgave som bruker standardvarianten. Samtale, kildemateriale, verktøyresultater og generert innhold må passe innenfor den valgte konteksten.
Tre resonneringsmoduser
Full resonnering er produsentens standard og utvikler analyse før svaret. Uten resonnering returneres et direkte svar. Modusen med lav innsats bruker en kortere resonneringsprosess for enklere spørsmål. Produsentens mal representerer disse valgene ulikt og skiller innholdet innenfor resonneringsmarkørene fra den endelige konklusjonen.
Ved matematikk eller kodeanalyse oppgir du alle betingelser, definisjoner og begrensninger og angir deretter sluttresultatet du trenger. En praktisk beskrivelse er: «Finn ut hvorfor denne funksjonen feiler for de oppgitte inndataene, forklar betingelsen som er årsaken, og foreslå en målrettet retting.» En rutinemessig uttrekkingsoppgave kan i stedet bare be om nødvendige felter. Velg en modus som passer oppgavens dybde uten å la mellomliggende analyse erstatte det etterspurte resultatet.
Veiledning for samtale og generering
IBM anbefaler temperature 1.0 og top-p 0.95 på tvers av referansemoduser og oppgaver. Eksempelbudsjettene for generering er 8 192 nye tokener for resonnering og 2 048 for direkte svar; modellkortet tillater uttrykkelig et større budsjett for kompleks resonnering. Eksemplene er konfigurasjonsveiledning, ikke selvstendig fastslåtte absolutte utdatagrenser.
Standardmalen for samtaler med flere runder fjerner resonneringen fra tidligere assistentsvar for å spare kontekst. Produsenten dokumenterer også bevaring av den når full resonneringshistorikk trengs. Hold sluttsvar og nyttige observasjoner tydelige, slik at en oppfølging kan revidere den relevante delen uten å forveksle en tidligere mellomliggende tanke med et akseptert funn.
Verktøykall og praktiske resultater
Modellen kan resonnere om hvilke oppgitte funksjoner som bør kalles, og returnere strukturert innhold for verktøykall. Definer verktøy med meningsfulle navn, beskrivelser og parameterskjemaer. Applikasjonen utfører den valgte operasjonen og returnerer observasjonen; en pågående oppgave bør bruke det faktiske resultatet. For en kodeagent angir du tillatte filer og oppførselen som fullfører endringen, og ber deretter om implementasjonen og valideringsobservasjonene som underbygger den.
Modellkortet oppgir tolv testede språk. Angi svarspråket og bevar egennavn eller kodeidentifikatorer. Treningen er hovedsakelig engelsk med flerspråklige data, så ytelsen på et annet språk kan variere; noen få relevante eksempler kan tydeliggjøre den tiltenkte oppgaven og utdatastilen.
Begrensninger og tolkning
IBM påpeker at modellen fortsatt kan produsere unøyaktige eller skjeve svar, og at resonneringsinnhold kan inneholde upolerte mellomliggende ideer. Kontroller sluttsvaret mot de innsendte kildene, kontroller tall som er hentet ut, og undersøk kode i den tiltenkte applikasjonen. Det nyttige resultatet er et svar, en kodeleveranse eller en analysepost med tydelige belegg og uavklart informasjon, samtidig som den nøyaktige utgaven 4.2 8B og forskjellene mellom modusene bevares.
Praktisk oppgave
Praktisk oppgave
Teknisk eksempel på engelsk
Fix a mutable default argument
Explain why this Python function shares results across calls and propose a correction: def collect(value, items=[]): items.append(value); return items. The caller may supply an existing list and expects it to be updated. Include tests for two omitted-list calls and one explicitly supplied list. Preserve the function name and calling convention.Forventet resultat
A corrected collect function, a brief cause explanation and tests distinguishing default-list isolation from explicit-list mutation.Kontroller resultatet
Check that omitted-list calls return independent lists while an explicitly supplied list is still updated.Ailoot Ultra · OpenAI Chat POST /v1/chat/completions ibm-granite/granite-4.2-8b
ibm-granite/granite-4.2-8bStart
Granite 4.2 8B er IBMs tette resonneringsmodell for tekst til matematikk, koding, flerspråklig dialog og verktøystyrte agenter. Den tilbyr full, direkte og lett resonneringsmodus, med en innebygd kontekst på 128K og en separat dokumentert utvidelse for lang kontekst.
- Godkjente inndata
- Tekst
- Resultater
- Tekst
Tilgjengelig i Ailoot · inndata & metoder
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
- Inndatatyper
text- Utdatatyper
text- Utdataformat
- json eller SSE
| Felt | Type | Krav | Verdier & grenser | Standard |
|---|---|---|---|---|
Feltmodel | Typestring | KravPåkrevd | Verdier & grenser ibm-granite/granite-4.2-8b | Standard— |
Feltmessages | Typemessage[] | KravPåkrevd | Verdier & grenser Minste antall elementer: 1 | Standard— |
Feltmessages[].role | Typestring | KravPåkrevd | Verdier & grenser Eksempler: system, user, assistant, tool, function Vilkår: Disse rollene representeres eksplisitt av kompatibilitetstyper i kildekoden; det eksakte rollesettet for modellen er fortsatt modellspesifikt. Avhenger av modellen | Standard— |
Feltmessages[].content | Typestring|content_part[]|null | KravValgfritt | Verdier & grenser | Standard— |
Feltmessages[].tool_calls | Typetool_call[] | KravValgfritt | Verdier & grenser | Standard— |
Feltmessages[].tool_call_id | Typestring | KravValgfritt | Verdier & grenser Gjelder når: role=tool; bruk faktisk returnert ID | Standard— |
Feltmessages[].name | Typestring | KravValgfritt | Verdier & grenser | Standard— |
Feltmessages[].reasoning_content | Typestring | KravValgfritt | Verdier & grenser Gjelder når: Send den faktisk returnerte resonneringen tilbake der denne modellen bruker den | Standard— |
Feltmessages[].reasoning_details | Typeobject|array | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltmax_tokens | Typeinteger | KravValgfritt | Verdier & grenser Minimum: 1 Avhenger av modellen | Standard— |
Feltmax_completion_tokens | Typeinteger | KravValgfritt | Verdier & grenser Minimum: 1 Avhenger av modellen | Standard— |
Feltstream | Typeboolean | KravValgfritt | Verdier & grenser | Standardfalse |
Feltstream_options.include_usage | Typeboolean | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Felttemperature | Typenumber | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Felttop_p | Typenumber | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltstop | Typestring|string[] | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Felttools | Typefunction_tool[] | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Felttools[].type | Typestring | KravValgfritt | Verdier & grenser function Avhenger av modellen | Standard— |
Felttools[].function.name | Typestring | KravPåkrevd | Verdier & grenser Gjelder når: funksjonsverktøy oppgitt | Standard— |
Felttools[].function.description | Typestring | KravValgfritt | Verdier & grenser | Standard— |
Felttools[].function.parameters | TypeJSON_schema | KravValgfritt | Verdier & grenser | Standard— |
Felttool_choice | Typestring|object | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltparallel_tool_calls | Typeboolean | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltresponse_format | Typeobject | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltreasoning_effort | Typestring | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltreasoning | Typeobject | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltservice_tier | Typestring | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltinstructions | Typestring | KravValgfritt | Verdier & grenser Kompatibilitetsfelt | Standard— |
Feltfunctions | Typefunction[] | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltfunction_call | Typestring|object | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltprompt_cache_options | Typeobject | KravValgfritt | Verdier & grenser Avhenger av modellen | Standard— |
Feltmodalities | Typestring[] | KravValgfritt | Verdier & grenser text | Standard— |
Feltprovider | Typeobject | KravValgfritt | Verdier & grenser Vilkår: provider.options avvises på denne Ultra-tekstruten | Standard— |
Feltcache_control.ttl | Typestring | KravValgfritt | Verdier & grenser Vilkår: 1h avvises på faktiske steder for mellomlagring av ledetekster | Standard— |
Kombinasjoner av inngående materialer
Tekst · UTF8-tekst
messages[].content
Metodeparametere og livssyklus
| Parameter | Avtale |
|---|---|
Parametercontent_type | Avtaleapplication/json |
Parameterrequired | Avtalemodel, messages |
Parametermaterial_types | Avtaletext |
Parametermessages | Avtalemeldingstabell med role/content-struktur |
Parameterfile_material | Avtalefaktisk UTF-8-dokument satt inn som bokstavelig tekst; ingen fil-ID utledes |
Parameteroptional_controls | Avtalestream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice |
Parametercontrol_scope | Avtalemodellspesifikt; brukerens funksjonsverktøy skiller seg fra driftede verktøy |
Parameteroutput_modalities | Avtaletext |
Parameterhosted_operations | Avtalefalse |
Parametermultimodal_input_binding | Avtalenull |
Livssyklus: synchronous_or_streamed
Send eksakt modell-ID sammen med messages.
Kontekstlengde er ikke en outputgrense.
En tekstfil kan levere bokstavelig tekst; bilde-, lyd- og filobjektinput trenger eksakt binding.
Priser
Tariffopplysninger legger ikke til forespørselsvalg. Støttede parametere står ved den valgte metoden.
- Hurtigmodus
- Standardpris Når hurtigmodus er valgt
- Flex-modus
- Standardpris Når flex-modus er valgt
- Maksimal resonneringsinnsats
- Standardpris Når justeringen «default» brukes for maksimal resonneringsinnsats
- Resonneringsinnsats · high
- Standardpris Når resonneringsinnsatsen er satt til high
- Resonneringsinnsats · low
- Standardpris Når resonneringsinnsatsen er satt til low
- Resonneringsinnsats · none
- Standardpris Når resonneringsinnsatsen er satt til none
Ailoot-satser
Priser etter konfigurasjon
Knytt hver kostnad til de viste vilkårene. Bruk én sats for hvert sett med alternative konfigurasjoner.
| Konfigurasjon | Prisplan | Konteksttokener, mer enn | Konteksttokener, opptil og med | Kostnad |
|---|---|---|---|---|
| KonfigurasjonGrunnpriser for tokener | PrisplanGrunnsats | Konteksttokener, mer enn— | Konteksttokener, opptil og medIngen øvre grense | Kostnad Inndata · Inngående tokener $0.0002 / 1K tokener Utdata · Utgående tokener $0.0003 / 1K tokener Inndata · Lesing fra hurtigbuffer $0.0001 / 1K tokener Inndata · Skriving til hurtigbuffer — / 1K tokener Inndata · Skriving til hurtigbuffer, 1 time — / 1K tokener |
| KonfigurasjonNivå 1 for forespørselslengde | Prisplan— | Konteksttokener, mer enn0 | Konteksttokener, opptil og medIngen øvre grense | Kostnad Inndata · Inngående tokener $0.0002 / 1K tokener Utdata · Utgående tokener $0.0003 / 1K tokener Inndata · Lesing fra hurtigbuffer $0.0001 / 1K tokener Inndata · Skriving til hurtigbuffer — / 1K tokener Inndata · Skriving til hurtigbuffer, 1 time — / 1K tokener |
Ailoot reserverer et estimert beløp før en forespørsel. Etter resultatet gjøres det endelige beløpet opp basert på målt forbruk. Oppgjør for strømming bruker den endelige forbruksposten. Slik fungerer reservasjon og oppgjør →
Eksempelforespørsler
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": "ibm-granite/granite-4.2-8b", "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='ibm-granite/granite-4.2-8b',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='ibm-granite/granite-4.2-8b',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")
Motta og lagre resultater
Ailoot Ultra · OpenAI Chat
json eller SSE
Behold alle ferdige resultater
Behold alle fullstendige returnerte svar, filer og innholdsdeler.
Behold hvert svaralternativ med innhold, verktøykall og resonnering. Sett sammen endringer i SSE etter svaralternativets/verktøyets indeks, og behold endelig avslutningsgrunn og bruksdata.
Hvis det opprinnelige svaret må kontrolleres
Behold forespørsels-/svar-ID-er og headere. Ingen generell URL for henting av tekstjobber oppgis.
Svarfelter
| Felt | Type |
|---|---|
Feltchoices[].index | Typeinteger |
Feltchoices[].message.content | Typestring|null |
Feltchoices[].message.tool_calls | Typetool_call[] |
Feltchoices[].message.reasoning_content | Typestring |
Feltchoices[].message.reasoning_details | Typeobject|array |
Feltchoices[].finish_reason | Typestring|null |
Feltusage | Typeobject |
Feil og neste trinn
| Svar | Vilkår | Neste trinn |
|---|---|---|
Svar400 · invalid_request_error | VilkårUgyldige påkrevde felter, materialrepresentasjon eller parameterverdi | Neste trinnKorriger de angitte feltene før en ny opprettelsesforespørsel. |
Aliaser
Modellaliaser
Ailoot Ultra ibm-granite/granite-4.2-8b
Aliaser for metodestier
Bruk metodestiene som vises ovenfor.
Tilknyttede anroper-ID-er
Ailoot Ultra · Anthropic Messages POST /v1/messages ibm-granite/granite-4.2-8b
ibm-granite/granite-4.2-8bStart
Granite 4.2 8B er IBMs tette resonneringsmodell for tekst til matematikk, koding, flerspråklig dialog og verktøystyrte agenter. Den tilbyr full, direkte og lett resonneringsmodus, med en innebygd kontekst på 128K og en separat dokumentert utvidelse for lang kontekst.
- Godkjente inndata
- Tekst
- Resultater
- json · sse
Tilgjengelig i Ailoot · inndata & metoder
Ailoot Ultra · Anthropic Messages POST /v1/messages
- Inndatatyper
text- Utdatatyper
json,sse- Utdataformat
- JSON eller SSE
| Felt | Type | Krav | Verdier & grenser | Standard |
|---|---|---|---|---|
Feltmodel | Typestring | KravPåkrevd | Verdier & grenser ibm-granite/granite-4.2-8b | Standard— |
Feltmessages | Typemessage[] | KravPåkrevd | Verdier & grenser | Standard— |
Feltmessages[].role | Typestring | KravPåkrevd | Verdier & grenser user, assistant | Standard— |
Feltmessages[].content | Typestring | KravPåkrevd | Verdier & grenser | Standard— |
Feltmax_tokens | Typeinteger | KravPåkrevd | Verdier & grenser | Standard— |
Feltstream | Typeboolean | KravValgfritt | Verdier & grenser | Standardfalse |
Kombinasjoner av inngående materialer
Tekst · UTF-8-tekst
messages[].content-streng
Metodeparametere og livssyklus
| Parameter | Avtale |
|---|---|
Parametercontent_type | Avtaleapplication/json |
Parameterrequired | Avtalemodel, messages, max_tokens |
Parameteroptional_controls | Avtalestream |
Parametermaterial_types | Avtaletext |
Parametertext_file_material | AvtaleLes det faktiske UTF-8-dokumentet og legg teksten i den angitte input- eller meldingsinnholdsstrengen. |
Livssyklus: synchronous_or_streamed
Priser
Tariffopplysninger legger ikke til forespørselsvalg. Støttede parametere står ved den valgte metoden.
- Hurtigmodus
- Standardpris Når hurtigmodus er valgt
- Flex-modus
- Standardpris Når flex-modus er valgt
- Maksimal resonneringsinnsats
- Standardpris Når justeringen «default» brukes for maksimal resonneringsinnsats
- Resonneringsinnsats · high
- Standardpris Når resonneringsinnsatsen er satt til high
- Resonneringsinnsats · low
- Standardpris Når resonneringsinnsatsen er satt til low
- Resonneringsinnsats · none
- Standardpris Når resonneringsinnsatsen er satt til none
Ailoot-satser
Priser etter konfigurasjon
Knytt hver kostnad til de viste vilkårene. Bruk én sats for hvert sett med alternative konfigurasjoner.
| Konfigurasjon | Prisplan | Konteksttokener, mer enn | Konteksttokener, opptil og med | Kostnad |
|---|---|---|---|---|
| KonfigurasjonGrunnpriser for tokener | PrisplanGrunnsats | Konteksttokener, mer enn— | Konteksttokener, opptil og medIngen øvre grense | Kostnad Inndata · Inngående tokener $0.0002 / 1K tokener Utdata · Utgående tokener $0.0003 / 1K tokener Inndata · Lesing fra hurtigbuffer $0.0001 / 1K tokener Inndata · Skriving til hurtigbuffer — / 1K tokener Inndata · Skriving til hurtigbuffer, 1 time — / 1K tokener |
| KonfigurasjonNivå 1 for forespørselslengde | Prisplan— | Konteksttokener, mer enn0 | Konteksttokener, opptil og medIngen øvre grense | Kostnad Inndata · Inngående tokener $0.0002 / 1K tokener Utdata · Utgående tokener $0.0003 / 1K tokener Inndata · Lesing fra hurtigbuffer $0.0001 / 1K tokener Inndata · Skriving til hurtigbuffer — / 1K tokener Inndata · Skriving til hurtigbuffer, 1 time — / 1K tokener |
Ailoot reserverer et estimert beløp før en forespørsel. Etter resultatet gjøres det endelige beløpet opp basert på målt forbruk. Oppgjør for strømming bruker den endelige forbruksposten. Slik fungerer reservasjon og oppgjør →
Eksempelforespørsler
Ailoot Ultra · Anthropic Messages
{
"model": "ibm-granite/granite-4.2-8b",
"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': 'ibm-granite/granite-4.2-8b', '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': 'ibm-granite/granite-4.2-8b', '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))
Motta og lagre resultater
Ailoot Ultra · Anthropic Messages
JSON eller SSE
Behold alle ferdige resultater
Behold alle fullstendige returnerte svar, filer og innholdsdeler.
Behold alle innholdsblokker, resonneringssignaturer og faktiske ID-er for verktøybruk. Sett sammen alle SSE-blokkendringer; den første tekstblokken er ikke hele resultatet.
Hvis det opprinnelige svaret må kontrolleres
Behold forespørsels-/svar-ID-er og headere. Ingen generell URL for henting av tekstjobber oppgis.
Svarfelter
| Felt | Type |
|---|---|
Feltid | Typestring |
Feltmodel | Typestring |
Feltcontent[] | Typetext|thinking|tool_use|other content block |
Feltstop_reason | Typestring|null |
Feltusage | Typeobject |
Feil og neste trinn
| Svar | Vilkår | Neste trinn |
|---|---|---|
Svar400 · invalid_request_error | VilkårUgyldige påkrevde felter, materialrepresentasjon eller parameterverdi | Neste trinnKorriger de angitte feltene før en ny opprettelsesforespørsel. |
Aliaser
Modellaliaser
Ailoot Ultra ibm-granite/granite-4.2-8b
Aliaser for metodestier
Bruk metodestiene som vises ovenfor.
Tilknyttede anroper-ID-er
FAQ · IBM: Granite 4.2 8B
- Hvilke inndata og resultater er tilgjengelige?
POST /v1/chat/completions·ibm-granite/granite-4.2-8b:text→textPOST /v1/messages·ibm-granite/granite-4.2-8b:text→json,sse- Hvilke felt bruker forespørselen?
POST /v1/chat/completions·ibm-granite/granite-4.2-8b:model,messages,stream,modalities,providerPOST /v1/messages·ibm-granite/granite-4.2-8b:model,messages,max_tokens,stream- Hvilke grenser gjelder?
POST /v1/chat/completions·ibm-granite/granite-4.2-8b:messages.min_items:1