modeller

Anthropic: Claude Sonnet 4.5

Markdown · JSON

Anthropic: Claude Sonnet 4.5

Claude Sonnet 4.5 är Anthropics text- och bildmodell för programvaruutveckling, komplexa agenter, datoranvändning och analytiskt arbete. Den stöder direkta svar eller manuellt utökat resonemang, med resonemang mellan verktygsanrop i det dokumenterade beta-arbetsflödet.

Om modellen

Den här beskrivningen omfattar modellens förmågor. Tillgängliga indata, utdata och alternativ i Ailoot anges nedan för den valda metoden.

Claude Sonnet 4.5 är Anthropics Sonnet-utgåva med fokus på programvaruutveckling, komplexa agentuppgifter och datoranvändning, med förbättringar inom resonemang och matematik. Den tar emot text och bilder och genererar text. Utgåvan beskrivs som avsedd för långvarigt arbete över flera steg, kodförståelse och ändringar som berör ett större projekt snarare än en enskild isolerad funktion. Ett användbart underlag anger det önskade beteendet, relevant källmaterial och artefakten som ska levereras: en föreslagen korrigering, en implementationsförklaring, en dokumentanalys eller ett strukturerat svar.

För programvaruarbete tillhandahåller du projektets begränsningar, relevanta filer eller utdrag, det observerade felet och ett konkret exempel på det förväntade resultatet. Begär den berörda koden och en förklaring av hur den föreslagna ändringen hanterar exemplet. Tillverkaren presenterar modellen som lämplig för att bygga agenter och genomföra utvecklingsuppgifter med verktyg. Den omgivande applikationen läser och redigerar filer, kör ett kommando eller en kontroll och returnerar dess faktiska utdata; modellen resonerar utifrån detta underlag. Håll den föreslagna ändringen och den utförda kontrollen åtskilda i slutrapporten.

Datoranvändning är en separat tillämpning av modellens visuella förmågor och agentförmågor. Anthropics lanseringsmaterial visar interaktion med webbläsare, navigering på sidor och arbete med kalkylblad genom en ansluten miljö. Ett visuellt underlag kan innehålla en skärmbild, ange målet och definiera vilka åtgärder applikationen tillåter. Applikationen utför sedan den valda interaktionen och returnerar den ändrade skärmen eller ett annat resultat. På samma sätt kan modellen förbereda innehåll och kod för dokument, kalkylblad och presentationsbilder, medan miljön producerar den färdiga filen. Text- och bildförståelse gör inte modellen till en inbyggd bild- eller ljudgenerator.

Tillverkarens exakta specifikation anger ett kontextfönster på 200K token och upp till 64K utdatatoken. Modellens gräns för tillförlitlig kunskap är januari 2025, vilket skiljer sig från den senare gräns för träningsdata som anges på sidan. Håll dokumentgränser, sidbeteckningar, enheter och kodidentifierare tydliga i långa indata och reservera utrymme för det begärda svaret och eventuellt resonemang. Tillverkaren dokumenterar även kontextmedvetenhet för denna utgåva, så det arbetsflöde som stöds håller reda på hur mycket utrymme som återstår under samtalet. Det hjälper till att hantera en långvarig uppgift inom fönstret; det ersätter inte fönstret med den större kapaciteten hos en senare Sonnet-utgåva.

Sonnet 4.5 stöder vanliga svar och manuellt utökat resonemang. I det senare läget anger budget_tokens ett mål för det interna resonemanget före det synliga svaret. Det dokumenterade minimumet är 1 024 token, och budgeten måste normalt vara lägre än max_tokens eftersom resonemanget och slutsvaret delar på genereringsutrymmet. Budgeten är ett mål, inte ett löfte om att förbruka exakt så många token. Denna utgåva har inte det adaptiva resonemangsläge eller de effort-kontroller som beskrivs för senare Sonnet-modeller. Välj det begärda analysdjupet och lämna tillräckligt utrymme för ett användbart slutsvar.

Tillverkarens beta-funktion för sammanflätat resonemang låter Sonnet 4.5 resonera mellan verktygsanrop inom en samtalstur och använda de returnerade observationerna för att avgöra nästa steg. Den kräver den dokumenterade beta-funktionen i det Messages-arbetsflöde som stöds. I detta fall kan resonemangsbudgeten överstiga max_tokens eftersom den sträcker sig över flera resonemangsblock i samma assistenttur. Returnera verktygsresultaten tillsammans med tillhörande resonemangsinnehåll utan ändringar, inklusive dess signatur; redigering gör innehållet ogiltigt. En forsknings- eller felsökningsuppgift kan därmed växla mellan en föreslagen kontroll, det faktiska returnerade resultatet och en uppdaterad analys utan att behandla ett textförslag som en utförd åtgärd.

För visuellt material stöder tillverkaren JPEG, PNG, GIF och WebP och använder endast den första bildrutan i en animation. Den standardnivå för modellens egen bildhantering som används i denna utgåva har en gräns på 1 568 pixlar för långsidan och 1 568 visuella token; större bilder skalas ned. Tillverkarens bildguide anger upp till 100 bilder per API-begäran för modeller med 200K-kontext, med villkor för bildstorlek och total begäransstorlek som kan nås först. Placera om möjligt bilderna före frågan, märk upp flera bilder och bevara liten text eller diagrambeteckningar. Guiden rekommenderar tydliga bilder och tillräckligt mycket omgivande sammanhang för att tolka den synliga detaljen.

Kontextredigering och ett minnesverktyg introducerades samtidigt med modellen för att stödja längre agentarbetsflöden. Detta är applikationsstödda sätt att bevara användbart tillstånd eller ta bort gammalt verktygsmaterial; de är inte ett obegränsat modellminne eller den senare serverkomprimeringsfunktionen. För en uppgift i flera steg bevarar du redan fattade beslut, den återstående frågan och det underlag som behövs för nästa steg. Anthropic beskriver också starkare motstånd mot dolda instruktioner i externt innehåll och påpekar samtidigt att modellspecifika klassificerare ibland kan flagga ofarligt material. Det användbara resultatet förblir en granskningsbar artefakt knuten till tillhandahållet underlag, där de exakta lägena och gränserna för Sonnet 4.5 hålls åtskilda från senare utgåvor.

Praktisk uppgift

Praktisk uppgift

Tekniskt exempel på engelska

Repair an empty-cart total

Review this Python function: def total(items): return sum(x['price'] * x['qty'] for x in items) / len(items). It crashes for an empty cart and incorrectly averages nonempty carts. Return a minimal correction preserving the function signature, plus assertions for empty, one-line and two-line carts. Explain the changed behavior briefly.

Förväntat resultat

Corrected Python function, three concrete assertions and a brief explanation of sum versus average.

Kontrollera resultatet

The proposed tests cover empty input and verify that two cart lines are added rather than averaged.
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions anthropic/claude-sonnet-4.5

anthropic/claude-sonnet-4.5

Anthropic /anthropic/claude-sonnet-4.5

Start

Claude Sonnet 4.5 är Anthropics text- och bildmodell för programvaruutveckling, komplexa agenter, datoranvändning och analytiskt arbete. Den stöder direkta svar eller manuellt utökat resonemang, med resonemang mellan verktygsanrop i det dokumenterade beta-arbetsflödet.

Godkända indata
Text
Resultat
Text

Tillgängligt i Ailoot · indata & metoder

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
Indatatyper
text
Utdatatyper
text
Utdataformat
json eller SSE
FältTypKravVärden & gränserStandard
FältmodelTypstringKravObligatorisktVärden & gränser
anthropic/claude-sonnet-4.5
Standard—
FältmessagesTypmessage[]KravObligatorisktVärden & gränser
Minsta antal objekt: 1
Standard—
Fältmessages[].roleTypstringKravObligatorisktVärden & gränser
Exempel: system, user, assistant, tool, function
Villkor: Dessa roller representeras uttryckligen av källkodens kompatibilitetstyper; den exakta rolluppsättningen är fortfarande modellspecifik.
Beror på modellen
Standard—
Fältmessages[].contentTypstring|content_part[]|nullKravValfrittVärden & gränserStandard—
Fältmessages[].tool_callsTyptool_call[]KravValfrittVärden & gränserStandard—
Fältmessages[].tool_call_idTypstringKravValfrittVärden & gränser
Gäller när: role=tool; använd det faktiska returnerade ID:t
Standard—
Fältmessages[].nameTypstringKravValfrittVärden & gränserStandard—
Fältmessages[].reasoning_contentTypstringKravValfrittVärden & gränser
Gäller när: Skicka tillbaka det faktiska returnerade resonemanget när modellen använder det
Standard—
Fältmessages[].reasoning_detailsTypobject|arrayKravValfrittVärden & gränser
Beror på modellen
Standard—
Fältmax_tokensTypintegerKravValfrittVärden & gränser
Minimum: 1
Beror på modellen
Standard—
Fältmax_completion_tokensTypintegerKravValfrittVärden & gränser
Minimum: 1
Beror på modellen
Standard—
FältstreamTypbooleanKravValfrittVärden & gränserStandardfalse
Fältstream_options.include_usageTypbooleanKravValfrittVärden & gränser
Beror på modellen
Standard—
FälttemperatureTypnumberKravValfrittVärden & gränser
Beror på modellen
Standard—
Fälttop_pTypnumberKravValfrittVärden & gränser
Beror på modellen
Standard—
FältstopTypstring|string[]KravValfrittVärden & gränser
Beror på modellen
Standard—
FälttoolsTypfunction_tool[]KravValfrittVärden & gränser
Beror på modellen
Standard—
Fälttools[].typeTypstringKravValfrittVärden & gränser
function
Beror på modellen
Standard—
Fälttools[].function.nameTypstringKravObligatorisktVärden & gränser
Gäller när: verktyg av typen funktion har tillhandahållits
Standard—
Fälttools[].function.descriptionTypstringKravValfrittVärden & gränserStandard—
Fälttools[].function.parametersTypJSON_schemaKravValfrittVärden & gränserStandard—
Fälttool_choiceTypstring|objectKravValfrittVärden & gränser
Beror på modellen
Standard—
Fältparallel_tool_callsTypbooleanKravValfrittVärden & gränser
Beror på modellen
Standard—
Fältresponse_formatTypobjectKravValfrittVärden & gränser
Beror på modellen
Standard—
Fältreasoning_effortTypstringKravValfrittVärden & gränser
Beror på modellen
Standard—
FältreasoningTypobjectKravValfrittVärden & gränser
Beror på modellen
Standard—
Fältservice_tierTypstringKravValfrittVärden & gränser
Beror på modellen
Standard—
FältinstructionsTypstringKravValfrittVärden & gränser
Kompatibilitetsfält
Standard—
FältfunctionsTypfunction[]KravValfrittVärden & gränser
Beror på modellen
Standard—
Fältfunction_callTypstring|objectKravValfrittVärden & gränser
Beror på modellen
Standard—
Fältprompt_cache_optionsTypobjectKravValfrittVärden & gränser
Beror på modellen
Standard—
FältmodalitiesTypstring[]KravValfrittVärden & gränser
text
Standard—
FältproviderTypobjectKravValfrittVärden & gränser
Villkor: provider.options avvisas på denna Ultra-textrutt
Standard—
Fältcache_control.ttlTypstringKravValfrittVärden & gränser
Villkor: 1h avvisas på de faktiska platserna för promptcache
Standard—
Kombinationer av indatamaterial

Text · UTF8-text

messages[].content

Metodparametrar och livscykel
ParameterAvtal
Parametercontent_typeAvtalapplication/json
ParameterrequiredAvtalmodel, messages
Parametermaterial_typesAvtaltext
ParametermessagesAvtalmeddelandearray med strukturen role/content
Parameterfile_materialAvtaldet faktiska UTF-8-dokumentet infogat som bokstavlig text; inget fil-ID härleds
Parameteroptional_controlsAvtalstream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice
Parametercontrol_scopeAvtalmodellspecifikt; användarens funktionsverktyg skiljer sig från värdbaserade verktyg
Parameteroutput_modalitiesAvtaltext
Parameterhosted_operationsAvtalfalse
Parametermultimodal_input_bindingAvtalnull

Livscykel: synchronous_or_streamed

Skicka det exakta modell-ID:t tillsammans med messages.

Kontextlängden är inte en utdatagräns.

En textfil kan tillhandahålla bokstavlig text; bild-/ljud-/filobjektsindata kräver exakt bindning.

Priser

Tariffuppgifter lägger inte till begäransalternativ. Parametrar som stöds anges för den valda metoden.

Snabbt läge
Standardpris När snabbt läge är valt
Flex-läge
Standardpris När läget flex är valt
Högsta resonemangsnivå
Standardpris När den högsta resonemangsnivån använder standardjusteringen (default)

Ailoot-priser

Priser efter konfiguration

Matcha varje avgift mot de visade villkoren. Använd ett pris för varje uppsättning alternativa konfigurationer.

KonfigurationPrislistaKontexttoken, fler änKontexttoken, upp till och medAvgift
KonfigurationGrundpriser för tokenPrislistaGrundprisKontexttoken, fler än—Kontexttoken, upp till och medIngen övre gränsAvgift
Indata · Indatatoken $0.0132 / 1K token
Utdata · Utdatatoken $0.03 / 1K token
Indata · Cacheläsning $0.0006 / 1K token
Indata · Skrivning till cache $0.0075 / 1K token
Indata · Skrivning till cache, 1 tim $0.012 / 1K token
KonfigurationNivå 1 för förfrågans längdPrislista—Kontexttoken, fler än0Kontexttoken, upp till och med200 000Avgift
Indata · Indatatoken $0.0132 / 1K token
Utdata · Utdatatoken $0.03 / 1K token
Indata · Cacheläsning $0.0006 / 1K token
Indata · Skrivning till cache $0.0075 / 1K token
Indata · Skrivning till cache, 1 tim $0.012 / 1K token
KonfigurationNivå 2 för förfrågans längdPrislista—Kontexttoken, fler än200 000Kontexttoken, upp till och medIngen övre gränsAvgift
Indata · Indatatoken $0.0132 / 1K token
Utdata · Utdatatoken $0.03 / 1K token
Indata · Cacheläsning $0.0006 / 1K token
Indata · Skrivning till cache $0.0075 / 1K token
Indata · Skrivning till cache, 1 tim $0.024 / 1K token

Ailoot reserverar ett uppskattat belopp före en begäran. Efter resultatet slutregleras avgiften utifrån uppmätt förbrukning. Slutreglering för strömning använder den slutliga förbrukningsposten. Så fungerar reservation och slutreglering →

Exempelbegäranden

Ailoot Ultra · OpenAI Chat

curlPython SDKPython-strömning
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "anthropic/claude-sonnet-4.5", "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='anthropic/claude-sonnet-4.5',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='anthropic/claude-sonnet-4.5',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")

Ta emot och spara resultat

Ailoot Ultra · OpenAI Chat

json eller SSE

Behåll alla färdiga resultat

Behåll varje fullständigt returnerat svar, fil och innehållsdel.

Behåll varje svarsalternativ och dess innehåll/verktygsanrop/resonemang. Sätt i SSE samman deltauppdateringar efter svarsalternativets/verktygets index och behåll den slutliga avslutsorsaken och användningsuppgifterna.

Om det ursprungliga svaret behöver kontrolleras

Behåll begärans/svarets ID:n och huvuden. Ingen generell URL för hämtning av textjobb tillhandahålls.

Svarsfält
FältTyp
Fältchoices[].indexTypinteger
Fältchoices[].message.contentTypstring|null
Fältchoices[].message.tool_callsTyptool_call[]
Fältchoices[].message.reasoning_contentTypstring
Fältchoices[].message.reasoning_detailsTypobject|array
Fältchoices[].finish_reasonTypstring|null
FältusageTypobject
Fel och nästa steg
SvarVillkorNästa steg
Svar400 · invalid_request_errorVillkorOgiltiga obligatoriska fält, ogiltig representation av underlaget eller ogiltigt parametervärdeNästa stegKorrigera de angivna fälten före en ny begäran om att skapa.

Alias

Modellalias

Ailoot Ultra anthropic/claude-sonnet-4.5

Alias för metodsökvägar

Använd metodsökvägarna som visas ovan.

Relaterade anropar-ID:n

anthropic/claude-sonnet-4.5

Ailoot Ultra · Anthropic Messages POST /v1/messages anthropic/claude-sonnet-4.5

anthropic/claude-sonnet-4.5

Anthropic /anthropic/claude-sonnet-4.5

Start

Claude Sonnet 4.5 är Anthropics text- och bildmodell för programvaruutveckling, komplexa agenter, datoranvändning och analytiskt arbete. Den stöder direkta svar eller manuellt utökat resonemang, med resonemang mellan verktygsanrop i det dokumenterade beta-arbetsflödet.

Godkända indata
Text
Resultat
json · sse

Tillgängligt i Ailoot · indata & metoder

Ailoot Ultra · Anthropic Messages POST /v1/messages
Indatatyper
text
Utdatatyper
json, sse
Utdataformat
JSON eller SSE
FältTypKravVärden & gränserStandard
FältmodelTypstringKravObligatorisktVärden & gränser
anthropic/claude-sonnet-4.5
Standard—
FältmessagesTypmessage[]KravObligatorisktVärden & gränserStandard—
Fältmessages[].roleTypstringKravObligatorisktVärden & gränser
user, assistant
Standard—
Fältmessages[].contentTypstringKravObligatorisktVärden & gränserStandard—
Fältmax_tokensTypintegerKravObligatorisktVärden & gränserStandard—
FältstreamTypbooleanKravValfrittVärden & gränserStandardfalse
Kombinationer av indatamaterial

Text · UTF-8-text

sträng i messages[].content

Metodparametrar och livscykel
ParameterAvtal
Parametercontent_typeAvtalapplication/json
ParameterrequiredAvtalmodel, messages, max_tokens
Parameteroptional_controlsAvtalstream
Parametermaterial_typesAvtaltext
Parametertext_file_materialAvtalLäs det faktiska UTF-8-dokumentet och placera texten i det angivna input-fältet eller i strängen för meddelandets innehåll.

Livscykel: synchronous_or_streamed

Priser

Tariffuppgifter lägger inte till begäransalternativ. Parametrar som stöds anges för den valda metoden.

Snabbt läge
Standardpris När snabbt läge är valt
Flex-läge
Standardpris När läget flex är valt
Högsta resonemangsnivå
Standardpris När den högsta resonemangsnivån använder standardjusteringen (default)

Ailoot-priser

Priser efter konfiguration

Matcha varje avgift mot de visade villkoren. Använd ett pris för varje uppsättning alternativa konfigurationer.

KonfigurationPrislistaKontexttoken, fler änKontexttoken, upp till och medAvgift
KonfigurationGrundpriser för tokenPrislistaGrundprisKontexttoken, fler än—Kontexttoken, upp till och medIngen övre gränsAvgift
Indata · Indatatoken $0.0132 / 1K token
Utdata · Utdatatoken $0.03 / 1K token
Indata · Cacheläsning $0.0006 / 1K token
Indata · Skrivning till cache $0.0075 / 1K token
Indata · Skrivning till cache, 1 tim $0.012 / 1K token
KonfigurationNivå 1 för förfrågans längdPrislista—Kontexttoken, fler än0Kontexttoken, upp till och med200 000Avgift
Indata · Indatatoken $0.0132 / 1K token
Utdata · Utdatatoken $0.03 / 1K token
Indata · Cacheläsning $0.0006 / 1K token
Indata · Skrivning till cache $0.0075 / 1K token
Indata · Skrivning till cache, 1 tim $0.012 / 1K token
KonfigurationNivå 2 för förfrågans längdPrislista—Kontexttoken, fler än200 000Kontexttoken, upp till och medIngen övre gränsAvgift
Indata · Indatatoken $0.0132 / 1K token
Utdata · Utdatatoken $0.03 / 1K token
Indata · Cacheläsning $0.0006 / 1K token
Indata · Skrivning till cache $0.0075 / 1K token
Indata · Skrivning till cache, 1 tim $0.024 / 1K token

Ailoot reserverar ett uppskattat belopp före en begäran. Efter resultatet slutregleras avgiften utifrån uppmätt förbrukning. Slutreglering för strömning använder den slutliga förbrukningsposten. Så fungerar reservation och slutreglering →

Exempelbegäranden

Ailoot Ultra · Anthropic Messages

Komplett minimal JSON-kroppcurl · använd ditt UTF-8-dokumentPython · spara hela resultatet
{
  "model": "anthropic/claude-sonnet-4.5",
  "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': 'anthropic/claude-sonnet-4.5', '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': 'anthropic/claude-sonnet-4.5', '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))

Ta emot och spara resultat

Ailoot Ultra · Anthropic Messages

JSON eller SSE

Behåll alla färdiga resultat

Behåll varje fullständigt returnerat svar, fil och innehållsdel.

Behåll alla innehållsblock, resonemangssignaturer och faktiska ID:n för verktygsanvändning. Sätt samman alla SSE-deltauppdateringar för blocken; ett första textblock är inte hela utdata.

Om det ursprungliga svaret behöver kontrolleras

Behåll begärans/svarets ID:n och huvuden. Ingen generell URL för hämtning av textjobb tillhandahålls.

Svarsfält
FältTyp
FältidTypstring
FältmodelTypstring
Fältcontent[]Typtext|thinking|tool_use|other content block
Fältstop_reasonTypstring|null
FältusageTypobject
Fel och nästa steg
SvarVillkorNästa steg
Svar400 · invalid_request_errorVillkorOgiltiga obligatoriska fält, ogiltig representation av underlaget eller ogiltigt parametervärdeNästa stegKorrigera de angivna fälten före en ny begäran om att skapa.

Alias

Modellalias

Ailoot Ultra anthropic/claude-sonnet-4.5

Alias för metodsökvägar

Använd metodsökvägarna som visas ovan.

Relaterade anropar-ID:n

anthropic/claude-sonnet-4.5

FAQ · Anthropic: Claude Sonnet 4.5
Vilka indata och resultat finns?

POST /v1/chat/completions · anthropic/claude-sonnet-4.5: text → text

POST /v1/messages · anthropic/claude-sonnet-4.5: text → json, sse

Vilka fält använder begäran?

POST /v1/chat/completions · anthropic/claude-sonnet-4.5: model, messages, stream, modalities, provider

POST /v1/messages · anthropic/claude-sonnet-4.5: model, messages, max_tokens, stream

Vilka gränser gäller?

POST /v1/chat/completions · anthropic/claude-sonnet-4.5: messages.min_items: 1

Fler detaljer

Anslut Ailoot till Claude Code, OpenCode, Hermes eller din app.

Företaget och dess projektportfölj

Företaget och dess projektportfölj: miljontals kunder; månatlig försäljning för miljarder.

Köp token med rabatt.

Prenumerationsrabatt för återkommande arbete. Kampanjkoder ger upp till 50% vid tokenköp.

Prenumeration
Välj en rabatterad plan för återkommande anrop.
Kampanjkod upp till 50%
Ange koden vid köpet. Priset räknas om enligt kampanjen.
Kostnader i historiken
Modell, token och belopp sparas för varje anrop.

Välj prenumeration · Se modellpriser

Anslut API till produkten som du säljer.

SaaS, appar och botar enligt Ailoots officiella villkor och licensavtal. Begär återförsäljarlicens för vidareförsäljning.

Kommersiell applikation
Bygg text-, bild-, video- och ljudgenerering i tjänstens betalda funktioner.
Återförsäljarlicens
Skicka projektbeskrivning och åtkomstupplägg. Begär skriftliga villkor för användning och vidareförsäljning.
Dokument på webbplatsen
Officiella villkor, licensavtal och databehandlingspolicy finns tillgängliga före anslutning.

Begär återförsäljarlicens · Officiella villkor och licensavtal