modeller

claude-opus-4-20250514-thinking

Markdown · JSON

claude-opus-4-20250514-thinking

Claude Opus 4 Thinking använder den ursprungliga Opus 4-modellens läge för utökat resonemang för komplexa programvaruändringar, långvariga agentarbetsflöden och forskning. Den kan resonera mellan verktygssteg som stöds och knyta samman underlag genom en krävande uppgift innan den producerar ett textresultat.

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 Opus 4 Thinking tillämpar utökat resonemang på den ursprungliga modellen Claude Opus 4. Anthropic positionerar denna generation för svårt programmeringsarbete, forskning, skrivande och uppgifter som kräver att riktningen hålls över många steg. Beteckningen Thinking avser hur modellen tar sig an ett svar; den gör inte den ursprungliga Opus 4 till en senare Opus-utgåva.

Resonera genom en krävande uppgift

Claude Opus 4 kombinerar ett standardsvarsläge med ett läge för utökat resonemang. I det utökade läget kan den lägga mer tid på att undersöka ett problem innan den svarar. Tillverkaren beskriver uthålligt arbete med komplexa uppgifter som en central styrka, särskilt när uppgiften kräver att en följd av slutsatser knyts samman i stället för att enskilda promptar löses.

För en forskningsfråga tillhandahåller du materialet som ska jämföras, det beslut det ska stödja och de villkor som är relevanta. Begär en underbyggd syntes som skiljer slutsatser, antaganden och öppna frågor åt. För en skrivuppgift anger du målgruppen, källmaterialet, den nödvändiga strukturen och de påståenden resultatet ska förklara. Detta är praktiska tillämpningar av modellens dokumenterade forsknings- och skrivförmågor, inte löften om ett visst resultat.

Ändringar över en kodbas

Anthropic betonar förståelse av komplex kod, redigering, felsökning och ändringar som omfattar flera filer. Ge modellen relevanta moduler, gränssnittskontrakt, förväntat beteende och befintliga tester eller felutdata. Definiera omfattningen av den begärda ändringen och be modellen förklara de beroenden som gör de föreslagna redigeringarna nödvändiga.

Ett användbart ingenjörsresultat knyter samman tre saker: problemets orsak, en sammanhängande implementation och ett sätt att kontrollera det resulterande beteendet. Vid en refaktorering anger du vilka publika gränssnitt och observerbara beteenden som måste förbli stabila. För en funktion beskriver du användarflödet och dess felfall. Det gör modellens uthålliga resonemang användbart för projektet i stället för att bara ge ett längre svar.

Verktyg, parallellt arbete och kontinuitet

Den ursprungliga Claude 4-generationen lägger till resonemang mellan verktygsanrop i Anthropics dokumenterade arbetsflöde för utökat resonemang. Den kan granska ett verktygsresultat, ompröva sitt tillvägagångssätt och välja en efterföljande åtgärd. Tillverkaren beskriver även parallell verktygsanvändning och bättre kontinuitet när en applikation tillhandahåller lokala filer som modellen kan läsa och uppdatera.

En agent som använder dessa förmågor behöver en applikation som tillhandahåller verktygen, utför begärda åtgärder och returnerar deras resultat. Minnesfiler hör också till applikationsmiljön; de är inte en obegränsad lagring som automatiskt följer med mellan orelaterade samtal. När du utformar ett arbetsflöde returnerar du relevanta observationer till modellen och håller uppgiftens mål och godkännandekriterier tillgängliga.

Visuell analys och textutdata

Claude Opus 4 stöder även visuell analys. Skärmbilder, diagram och scheman kan ge underlag tillsammans med text, medan modellens svar förblir textbaserat. Använd tydligt läsbara bilder och ange vilka samband du vill få förklarade. Ta med källvärden när uppgiften beror på exakta antal eller mått, eftersom visuell tolkning kan vara ungefärlig.

För en Ailoot API-uppgift anger du vilken slutlig artefakt du behöver: ett förslag till ändringar i flera filer, en teknisk utredning, en forskningssyntes eller ett noggrant strukturerat dokument. Lägg till det underlag och de begränsningar som låter modellen välja ett tillvägagångssätt. Tillverkarens sammanfattningar av utökat resonemang ger en förklaring tillsammans med resultatet, men en sammanfattning är inte en ordagrann redogörelse för allt resonemang. Granska den levererade koden eller analysen mot uppgiftens krav, inklusive antaganden som fortfarande behöver underlag.

Praktisk uppgift

Praktisk uppgift

Tekniskt exempel på engelska

Plan a coordinated order refactor

Review this proposed refactor. Module A emits {order_id, total_cents}; module B stores those fields; module C displays total_cents / 100. A developer proposes renaming only A to amount_cents. Identify affected contracts and propose a coordinated migration that preserves existing consumers, with checks for old and new records.

Förväntat resultat

A dependency map in text, a staged migration proposal and compatibility checks for each consumer.

Kontrollera resultatet

Confirm the proposal covers B and C and does not silently reinterpret cents as whole currency units.
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions claude-opus-4-20250514-thinking

claude-opus-4-20250514-thinking

Anthropic /claude-opus-4-20250514-thinking

Start

Claude Opus 4 Thinking använder den ursprungliga Opus 4-modellens läge för utökat resonemang för komplexa programvaruändringar, långvariga agentarbetsflöden och forskning. Den kan resonera mellan verktygssteg som stöds och knyta samman underlag genom en krävande uppgift innan den producerar ett textresultat.

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
claude-opus-4-20250514-thinking
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
Ej angivet När snabbt läge är valt
Flex-läge
Ej angivet När läget flex är valt
Högsta resonemangsnivå
Ej angivet När den högsta resonemangsnivån använder standardjusteringen (default)

Ailoot-priser

Priser efter konfiguration

KonfigurationPrislistaAvgift
KonfigurationGrundpriser för tokenPrislistaGrundprisAvgift
Indata · Indatatoken $0.03 / 1K token
Utdata · Utdatatoken $0.15 / 1K token
Indata · Cacheläsning $0.0006 / 1K token
Indata · Skrivning till cache $0.0075 / 1K token
Indata · Skrivning till cache, 1 tim — / 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": "claude-opus-4-20250514-thinking", "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='claude-opus-4-20250514-thinking',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='claude-opus-4-20250514-thinking',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 claude-opus-4-20250514-thinking

Alias för metodsökvägar

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

Relaterade anropar-ID:n

claude-opus-4-20250514-thinking

FAQ · claude-opus-4-20250514-thinking
Vilka indata och resultat finns?

POST /v1/chat/completions · claude-opus-4-20250514-thinking: text → text

Vilka fält använder begäran?

POST /v1/chat/completions · claude-opus-4-20250514-thinking: model, messages, stream, modalities, provider

Vilka gränser gäller?

POST /v1/chat/completions · claude-opus-4-20250514-thinking: 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