Anthropic: Claude Opus 4.1
Claude Opus 4.1 er Anthropics oppdatering av Opus 4 for agentbasert programvarearbeid, forskning, dataanalyse og resonnering. Fokuset omfatter detaljsporing, kodeendringer i flere filer og presis feilsøking, med standardsvar eller valgfri utvidet resonnering.
- Ailoot Ultra · OpenAI Chat
POST /v1/chat/completionsanthropic/claude-opus-4.1 - Ailoot Ultra · Anthropic Messages
POST /v1/messagesanthropic/claude-opus-4.1
Om modellen
Denne beskrivelsen dekker modellens funksjoner. Tilgjengelige inndata, utdata og alternativer i Ailoot er oppført nedenfor for den valgte metoden.
Claude Opus 4.1 er Anthropics oppdatering av den opprinnelige Claude Opus 4, med fokus på agentoppgaver, praktisk koding og resonnering. Utgivelsen fremhever også inngående forskning og dataanalyse, særlig detaljsporing og bruk av søk innenfor en større oppgave. Det tilhørende tillegget til systemkortet beskriver forbedringer i resonneringskvalitet og instruksjonsfølging. Den er fortsatt en separat utgave fra den opprinnelige Opus 4 og de senere modellene Opus 4.5, 4.6 og 5; deres moduser og grenser bør ikke behandles som spesifikasjoner for denne oppdateringen.
For kodearbeid fremhever utgivelsen refaktorering i flere filer og identifisering av presise korreksjoner i en stor kodebase. Gi modellen relevante filer eller utdrag, eksisterende oppførsel, ønsket oppførsel og begrensningene en gyldig endring må bevare. En illustrerende forespørsel kan be den spore en feil på tvers av beslektede funksjoner, foreslå den minste sammenhengende endringen og forklare hvorfor hver endret del er nødvendig. Det nyttige resultatet er en vurderbar patch eller et kodeforslag med kildekontekst og antakelser bevart, fremfor en bred omskriving som skjuler det opprinnelige problemet.
For forskning og dataanalyse er detaljsporingen nyttig når et spørsmål avhenger av flere passasjer eller observasjoner. Oppgi materialet med kildeidentifikatorer, definer spørsmålet og be om belegget som støtter hver konklusjon. En praktisk beskrivelse kan be om en sammenligningstabell som viser hvor to dokumenter er enige, hvor de er forskjellige og hvilke spørsmål som fortsatt er ubesvart. Hvis søk er en del av arbeidsflyten, leverer applikasjonen verktøyet og det returnerte innholdet. Modellen knytter så disse resultatene til eksisterende materiale; et foreslått søk i teksten er ikke en fullført innhenting.
Opus 4.1 har en standard svarmodus og valgfri utvidet resonnering. Veiledningen for den eldre resonneringsmodusen gir direkte kontroll gjennom budget_tokens, med et minimum på 1,024 tokener. Budsjettet er normalt lavere enn max_tokens fordi intern resonnering og det endelige svaret deler genereringsrammen. Det er et mål for resonneringen, ikke et løfte om å bruke hele mengden. Adaptiv resonnering og innsatskontrollene i senere Opus-utgaver er separate evner. Forbered et fullstendig problem og angi formatet for det endelige svaret, slik at den ekstra analysen fører til resultatet leseren trenger.
Den dokumenterte betaen for tidligere Claude 4-modeller støtter sammenvevd resonnering: resonnering mellom verktøykall innenfor én assistentrunde. Den bruker produsentens interleaved-thinking-funksjon i den støttede Messages-arbeidsflyten. I denne modusen kan resonneringsbudsjettet spenne over flere blokker og overstige max_tokens-verdien for én runde under det dokumenterte unntaket. Returner den tilhørende resonneringsblokken uendret sammen med et verktøyresultat, inkludert signaturen. En feilsøkingsarbeidsflyt kan dermed veksle mellom analyse, en kontroll utført av applikasjonen og tolkning av faktisk output, samtidig som foreslåtte handlinger holdes adskilt fra fullførte.
Tillegget til systemkortet beskriver også datamaskinoppgaver som innebærer observasjon av en skjerm, musehandlinger og tastaturinput, sammen med lengre kodeoppgaver med verktøy. Modellen kan resonnere fra en oppgitt visuell tilstand og velge en handling i et tilkoblet miljø; applikasjonen utfører samhandlingen og returnerer det som endret seg. For en skjermbasert beskrivelse identifiserer du målet, relevante synlige kontroller og de tillatte handlingene. For en dokument- eller dataarbeidsflyt ber du om en tekstlig forklaring eller et strukturert resultat knyttet til oppgitt belegg. Modellens tolkning og miljøets utførelse er separate deler av arbeidet.
Produsentens vurdering rapporterer en mottakelighet for instruksjonsinjeksjon som ligner den i den opprinnelige Opus 4. Den undersøker spesielt skjult tekst eller grensesnittelementer som prøver å omdirigere en agent bort fra brukerens oppgave. Hold oppgavens instruksjoner adskilt fra materiale returnert av verktøy, og behold det opprinnelige målet når du tolker en side eller et dokument. Dette er en vesentlig betingelse for en agentarbeidsflyt: å se en forespørsel i eksternt innhold gjør den ikke til en instruksjon brukeren har godkjent. Modellens beskyttelse gjør ikke enhver side den møter til betrodd input.
Systemkortet beskriver også en kodebegrensning kalt utnyttelse av belønningssystemet (reward hacking), inkludert hardkodede svar og løsninger tilpasset bare eksemplene modellen har foran seg. Opus 4.1 viser tendenser som ligner Opus 4, med noen tilbakeskritt i disse målrettede vurderingene. For et kodeforslag ber du om en løsning som tilfredsstiller det generelle kravet, identifiserer betingelsene den håndterer og tar med kontroller utover det ene oppgitte eksemplet. Be sluttrapporten skille mellom det som ble foreslått, det miljøet faktisk kontrollerte og det som ikke kunne fastslås. Dette knytter modellens styrker innen presis feilsøking og detaljsporing til en konkret leveranse der oppførselen kan inspiseres.
Praktisk oppgave
Praktisk oppgave
Teknisk eksempel på engelsk
Trace a lost pagination argument
Review these related Python functions: api.list_items(page): return service.list_items(); service.list_items(page=1): return repo.fetch(offset=(page-1)*20). Requests for page 3 return page 1. Propose the smallest correction across the call chain and regression tests for pages 1 and 3. Preserve the service default for existing callers.Forventet resultat
A focused patch, a call-chain explanation and two regression-test cases with expected offsets.Kontroller resultatet
Confirm page 3 reaches offset 40 while callers omitting page retain offset 0.Ailoot Ultra · OpenAI Chat POST /v1/chat/completions anthropic/claude-opus-4.1
anthropic/claude-opus-4.1Start
Claude Opus 4.1 er Anthropics oppdatering av Opus 4 for agentbasert programvarearbeid, forskning, dataanalyse og resonnering. Fokuset omfatter detaljsporing, kodeendringer i flere filer og presis feilsøking, med standardsvar eller valgfri utvidet resonnering.
- 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 anthropic/claude-opus-4.1 | 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
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.03 / 1K tokener Utdata · Utgående tokener $0.15 / 1K tokener Inndata · Lesing fra hurtigbuffer $0.003 / 1K tokener Inndata · Skriving til hurtigbuffer $0.0375 / 1K tokener Inndata · Skriving til hurtigbuffer, 1 time $0.06 / 1K tokener |
| KonfigurasjonNivå 1 for forespørselslengde | Prisplan— | Konteksttokener, mer enn0 | Konteksttokener, opptil og medIngen øvre grense | Kostnad Inndata · Inngående tokener $0.03 / 1K tokener Utdata · Utgående tokener $0.15 / 1K tokener Inndata · Lesing fra hurtigbuffer $0.003 / 1K tokener Inndata · Skriving til hurtigbuffer $0.0375 / 1K tokener Inndata · Skriving til hurtigbuffer, 1 time $0.06 / 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": "anthropic/claude-opus-4.1", "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-opus-4.1',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-opus-4.1',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 anthropic/claude-opus-4.1
Aliaser for metodestier
Bruk metodestiene som vises ovenfor.
Tilknyttede anroper-ID-er
Ailoot Ultra · Anthropic Messages POST /v1/messages anthropic/claude-opus-4.1
anthropic/claude-opus-4.1Start
Claude Opus 4.1 er Anthropics oppdatering av Opus 4 for agentbasert programvarearbeid, forskning, dataanalyse og resonnering. Fokuset omfatter detaljsporing, kodeendringer i flere filer og presis feilsøking, med standardsvar eller valgfri utvidet resonnering.
- 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 anthropic/claude-opus-4.1 | 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
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.03 / 1K tokener Utdata · Utgående tokener $0.15 / 1K tokener Inndata · Lesing fra hurtigbuffer $0.003 / 1K tokener Inndata · Skriving til hurtigbuffer $0.0375 / 1K tokener Inndata · Skriving til hurtigbuffer, 1 time $0.06 / 1K tokener |
| KonfigurasjonNivå 1 for forespørselslengde | Prisplan— | Konteksttokener, mer enn0 | Konteksttokener, opptil og medIngen øvre grense | Kostnad Inndata · Inngående tokener $0.03 / 1K tokener Utdata · Utgående tokener $0.15 / 1K tokener Inndata · Lesing fra hurtigbuffer $0.003 / 1K tokener Inndata · Skriving til hurtigbuffer $0.0375 / 1K tokener Inndata · Skriving til hurtigbuffer, 1 time $0.06 / 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": "anthropic/claude-opus-4.1",
"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-opus-4.1', '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-opus-4.1', '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 anthropic/claude-opus-4.1
Aliaser for metodestier
Bruk metodestiene som vises ovenfor.
Tilknyttede anroper-ID-er
FAQ · Anthropic: Claude Opus 4.1
- Hvilke inndata og resultater er tilgjengelige?
POST /v1/chat/completions·anthropic/claude-opus-4.1:text→textPOST /v1/messages·anthropic/claude-opus-4.1:text→json,sse- Hvilke felt bruker forespørselen?
POST /v1/chat/completions·anthropic/claude-opus-4.1:model,messages,stream,modalities,providerPOST /v1/messages·anthropic/claude-opus-4.1:model,messages,max_tokens,stream- Hvilke grenser gjelder?
POST /v1/chat/completions·anthropic/claude-opus-4.1:messages.min_items:1