Vai al contenuto principale

Scegliere una versione dell’API Claude Sonnet per un workflow di editing

Confronta controlli, costi in token e limiti di output di Sonnet 4.5–5.5 e migra una richiesta di editing verificando le risposte incomplete.

Autore
Lydia
Pubblicato
Lettura
15 min di lettura
Aggiornato
Due adulti inventati discutono uno script in un caldo studio di montaggio radiofonico, accanto a un microfono e a un registratore; illustrazione editoriale indipendente.

Un’integrazione di editing porta con sé più del nome di un modello: può dipendere da un’impostazione di campionamento, da una chiamata di funzione forzata o da un parser delle risposte. Un cambio di versione può modificare tutti e tre prima ancora di cambiare la qualità dell’editing.

Scegli Sonnet 5 per una nuova integrazione, Sonnet 5.5 quando ti servono risposte oltre i 64 000 token, narrativa senza censura o la gamma di effort più ampia, e Sonnet 4.6 per i controlli temperature, top_p o top_k. Sonnet 5 supporta anche le chiamate a strumenti forzate; 5.5 no. Cambiare solo l’ID del modello rompe la richiesta: Sonnet 5 e 5.5 restituiscono un errore 400 per i campi di campionamento, e 5.5 rifiuta anche la scelta forzata dello strumento. Rimuovi quei campi versione per versione prima di confrontare le risposte.

La tabella descrive i contratti ospitati da SpicyAPI. La guida alla migrazione di Sonnet 5.5 di Anthropic spiega i cambiamenti nativi tra versioni; i nomi dei campi e i valori predefiniti non sono intercambiabili con questa interfaccia. I prezzi qui sotto sono in USD per milione di token.

Cosa accetta ogni versione

ContrattoSonnet 4.5Sonnet 4.6Sonnet 5Sonnet 5.5
Limite di input198 000 token1 000 0001 000 0001 000 000
Tetto di output64 00064 00064 000128 000
max_tokens predefinito4096409640964096
reasoning_effortNon espostolow, medium, high, maxlow, medium, highnone, low, medium, high, xhigh, max
Effort predefinito—mediummediummedium
temperature, top_p, top_kEspostiEspostiRifiutatiRifiutati
tool_choiceauto, none, required o una funzione nominataugualeugualesolo auto o none
response_formatNon accettatoNon accettatoNon accettatoNon accettato
Livello di contenutoAttenuatoSenza censuraFiltratoSenza censura

Gli ID sono anthropic/claude-sonnet-4.5/chat, anthropic/claude-sonnet-5/chat, anthropic/claude-sonnet-5.5/chat e anthropic/claude-sonnet-4.6/chat; le pagine sono 4.5, 5, 5.5 e 4.6. Tutte e quattro usano la stessa forma di richiesta /v1/chat/completions e accettano anche stop, tools e parallel_tool_calls.

Sonnet 4.6 è un’opzione intermedia di migrazione. Ha già la finestra da 1M e reasoning_effort, ma accetta ancora temperature. Passare da 4.5 a 4.6 mantiene la forma della richiesta, alza la tariffa di input dell’11 %, porta il livello da Attenuato a Senza censura e usa per impostazione predefinita uno sforzo di ragionamento medio; è il passaggio da 4.6 a 5 che rimuove il campionamento.

Il livello di contenuto conta per la narrativa e il roleplay. Sonnet 5 è Filtrato; nei nostri test Sonnet 4.5 e 4.6 hanno spesso attenuato o rifiutato richieste di narrativa per adulti di intensità più alta. Sonnet 5.5 ha consegnato quelle scene di prova senza attenuazioni né rifiuti, ed è quindi la scelta più forte qui per il lavoro su narrativa per adulti. Anche una risposta attenuata può essere fatturata. SpicyAPI non aggiunge alcun filtro di contenuto a livello di piattaforma; specifica la scena di finzione e i vincoli di editing nel messaggio di sistema.

Quale scegliere

  • Nuova integrazione di testo, senza contenuti per adulti: Sonnet 5. Ha le tariffe più basse, una finestra da 1M e tre livelli di effort.
  • Consegne lunghe o narrativa orientata agli adulti: Sonnet 5.5. È l’unico che può scrivere più di 64 000 token in una risposta, l’unico con none (senza ragionamento) ed è Senza censura.
  • Controlli di campionamento: resta su un’integrazione 4.5 bloccata oppure passa a 4.6 per la finestra da 1M. Chiamate di funzione forzate senza campionamento: Sonnet 5 le accetta a tariffe più basse; usalo al posto di 5.5 quando la chiamata deve essere forzata.
  • Un intero manoscritto da 300 000 token in una sola chiamata: è una questione di contesto e di costo, trattata nella guida al manoscritto lungo con Sonnet 4.6.

Prezzo: tieni conto del tokenizer e dell’output fatturato

USD per milione di token4.54.655.5
Input$2.70$3$1.90$2
Input in cache$0.27$0.30$0.19$0.20
Output$13.50$15$9.50$10
Scritture in cache$3.30$3.75$2.375$2.50

Sonnet 5 e 5.5 usano un tokenizer più recente. La guida alla migrazione di Anthropic dice che lo stesso testo produce circa il 30 % di token in più rispetto a 4.x, a seconda del contenuto: confronta quindi il costo per attività, non per token. Per un lavoro illustrativo di 20 000 token in input e 2 000 in output su 4.5, supponi un aumento del 30 % di entrambi i conteggi su 5 e 5.5:

ModelloToken fatturatiCosto
4.520 000 in input, 2 000 in output$0.081
4.620 000 in input, 2 000 in output$0.090
5circa 26 000 in input, 2 600 in outputcirca $0.074
5.5circa 26 000 in input, 2 600 in outputcirca $0.078

In questo scenario Sonnet 5 costa circa il 9 % in meno di 4.5; il risparmio non è fisso per ogni documento. I conteggi di output devono includere il ragionamento fatturato. Impostare l’effort su low può ridurre il ragionamento, ma non lo spegne; qui solo 5.5 espone none. Leggi l’utilizzo della tua attività reale prima di trattare la stima come un budget.

Le tariffe di Sonnet 5.5 sono circa il 5.3 % sopra quelle di Sonnet 5, ed è questa la differenza a conteggi fatturati e categorie di cache identici. Ricontrolla il conteggio dei prompt lunghi dopo un cambio di tokenizer: un aumento ipotetico del 30 % trasformerebbe un prompt da 190 000 token in uno da 247 000, ancora sotto il tetto di input da 1M ma con un conto diverso.

Prova l’editing nel Playground

Usa questo piccolo editing di verifica dei fatti prima di migrare un workflow più grande:

Source A: the gallery reopened to staff in April. Source B: the public launch event was in June. Draft: "The gallery reopened to the public in April." Preserve the distinction between staff access and the public event. Return the corrected sentence and one sentence explaining the change.

  1. Apri la pagina del modello Sonnet 5.5 collegata sopra e scegli Playground. Metti le due fonti e la bozza nel messaggio utente, con "Edit from the supplied sources only" come istruzione di sistema.
  2. Usa l’effort low per questo ritocco di riga. Eseguilo dopo aver controllato il costo, poi verifica che la risposta mantenga aprile per l’accesso del personale e giugno per l’evento pubblico, senza inventare una data esatta.
  3. Prova lo stesso testo su Sonnet 5 per un workflow di editing più economico e senza contenuti per adulti. Lascia invariato il testo di partenza, così puoi giudicare l’editing in sé.

Scegli una versione per l’editing che consegni davvero

Per la pulizia di un capitolo da 700 parole con un pacchetto di fonti da 20 000 token, nessuna di queste versioni ha bisogno del contesto o dello spazio di output massimo. La scelta utile è se i controlli della richiesta e l’idoneità del contenuto siano adatti. Sonnet 5 è il punto di partenza a prezzo più basso per un editing ordinario. Un editor di narrativa per adulti dovrebbe considerare anche il suo livello Filtrato prima di renderlo l’impostazione predefinita per l’intero manoscritto. La stessa applicazione può quindi richiedere modelli diversi per una sinossi non esplicita e per la revisione di una scena matura.

Se vuoi tre formulazioni alternative su 4.5 o 4.6, i loro controlli di campionamento offrono un modo accettato per variare la generazione. Questo non significa che alzare la temperatura ripari una logica narrativa difettosa. Un paragrafo che dà a un personaggio un’informazione che non conosce ancora ha bisogno della regola di conoscenza e del passaggio di origine, non di più casualità. Su 5 o 5.5 non inventare un campo di campionamento equivalente. Chiedi tre alternative con approcci dichiarati diversi: dialogo più breve, meno esposizione o una rivelazione più tardiva.

Per un editing assistito da strumenti, immagina che la bozza indichi il datore di lavoro di un personaggio, mentre il database autorevole della serie contiene il dato attuale. Su 4.5, 4.6 o 5, la scelta dello strumento esposta può imporre una consultazione. Su 5.5, auto può produrre una risposta senza la consultazione. Se la tua applicazione deve verificare il datore di lavoro, esegui la lettura prima di chiedere l’editing, oppure non accettare una risposta senza il risultato di consultazione richiesto. Una frase nel prompt non dà a auto la stessa garanzia di una chiamata forzata. Gli esempi nativi thinking o output_config della guida alla migrazione di Anthropic non vanno incollati invariati in questa richiesta.

L’esito significativo dell’esempio è una frase che conservi sia l’accesso del personale in aprile sia il lancio pubblico in giugno. "The gallery reopened in June" è troppo generica se il personale poteva già entrare in aprile. "The gallery held its public launch in June, after reopening to staff in April" è una correzione umana accettabile. Una nuova versione che produce una formulazione più bella ma perde questa distinzione non ha migliorato il lavoro di editing.

Migra la richiesta

Un’integrazione 4.5 può usare temperature: 0.2, top_p: 0.9 e una funzione submit_edit forzata. Passando a 5 i campi di campionamento vengono rifiutati; passando a 5.5 vengono rifiutati sia il campionamento sia la scelta forzata dello strumento.

  1. Rimuovi il campionamento su 5 e 5.5. Elimina temperature, top_p e top_k da quelle richieste. I campi non supportati restituiscono 400 unsupported_parameter prima che un’attività venga creata o addebitata; mantieni una lista di campi consentiti per modello invece di inviare un unico oggetto di parametri condiviso.
  2. Usa uno strumento automatico su 5.5. Mantieni la funzione submit_edit e richiedila nel prompt di sistema, ma imposta tool_choice su auto. Qui non esiste response_format e 5.5 può saltare la funzione, quindi valida gli argomenti restituiti. Se il tuo workflow richiede una chiamata forzata, Sonnet 5 la supporta a tariffe più basse.
  3. Lascia spazio alla risposta. Il ragionamento consuma parte di max_tokens: un limite di 1 024 token può esaurirsi prima che compaia testo visibile. Usa l’effort low per un ritocco di riga e high per fonti in conflitto. Sonnet 5 si ferma a high; non accetta xhigh né max di 5.5.
  4. Usa lo streaming per gli editing più lunghi. Il breve esempio qui sotto usa una normale risposta JSON. Le chiamate grandi possono superare il limite di circa 100 secondi del bordo di rete; per quelle usa lo streaming e assembla separatamente testo e argomenti degli strumenti. La guida a testo e streaming copre gli eventi di completamento e l’utilizzo.
  5. Chiudi la conversazione con un messaggio utente. Quando migri via da 4.5, sposta nell’istruzione di sistema l’attacco o l’indicazione di formato che vuoi, invece di terminare con un prefill dell’assistente.

Anche i nomi degli effort cambiano significato. Anthropic ha ricalibrato i livelli di 5.5, quindi high non è equivalente tra le versioni. SpicyAPI imposta medium come predefinito sia per 5 sia per 5.5, mentre l’API nativa di 5.5 di Anthropic usa high. Per risposte brevi e pulite preferisci low a none: con none, 5.5 può ragionare sulla domanda nel testo visibile. none resta utile per battute rapide in personaggio.

Esegui e valida l’editing

Salva questo come sonnet_edit.py, imposta SPICY_API_KEY da API Keys, poi esegui python3 sonnet_edit.py. Usa la libreria standard di Python. Qui si sceglie Sonnet 5.5 per mostrare la migrazione allo strumento automatico; cambiando solo il modello in Sonnet 5, anche questi campi sono accettati. È una chiamata di testo a pagamento, non un’attività di generazione di media. Le ricette per la chat coprono le integrazioni multi-turno e in streaming.

python
import json
import os
import sys
import uuid
from urllib.error import HTTPError
from urllib.request import Request, urlopen

def read_reply(resp: dict, *, require_edit_tool: bool = False) -> dict:
    if resp.get("error"):
        raise RuntimeError("API error")
    choices = resp.get("choices") or []
    if not choices:
        raise RuntimeError("no choices in response")
    choice = choices[0]
    finish = choice.get("finish_reason")
    if finish not in {"stop", "tool_calls"}:
        raise RuntimeError(f"incomplete or rejected reply: {finish}")
    msg = choice.get("message") or {}
    calls = msg.get("tool_calls") or []
    if calls:
        if len(calls) != 1:
            raise RuntimeError("expected one submit_edit call")
        call = calls[0]
        if call.get("type") != "function" or not isinstance(call.get("id"), str) or not call["id"]:
            raise RuntimeError("missing function type or call ID")
        fn = call.get("function") or {}
        if fn.get("name") != "submit_edit":
            raise RuntimeError("unexpected function")
        args = json.loads(fn.get("arguments") or "")
        if not isinstance(args, dict) or any(
            not isinstance(args.get(key), str) or not args[key].strip()
            for key in ("sentence", "reason")
        ):
            raise RuntimeError("sentence and reason must be nonempty strings")
        return {"kind": "tool", "call": calls[0], "edit": args}
    if require_edit_tool:
        raise RuntimeError("model skipped submit_edit")
    text = msg.get("content")
    if finish != "stop" or not isinstance(text, str) or not text.strip():
        raise RuntimeError("empty or unfinished text")
    return {"kind": "text", "text": text}


def main() -> None:
    body = {
        "model": "anthropic/claude-sonnet-5.5/chat",
        "reasoning_effort": "low",
        "max_tokens": 8192,
        "messages": [
            {"role": "system", "content": "Edit from the supplied sources only. Reply by calling submit_edit."},
            {"role": "user", "content": 'Source A: the gallery reopened to staff in April. Source B: the public launch event was in June. Draft: "The gallery reopened to the public in April." Keep the staff/public distinction.'},
        ],
        "tools": [{"type": "function", "function": {
            "name": "submit_edit",
            "description": "Return the corrected sentence and the reason.",
            "parameters": {
                "type": "object",
                "properties": {"sentence": {"type": "string"}, "reason": {"type": "string"}},
                "required": ["sentence", "reason"],
            },
        }}],
        "tool_choice": "auto",
    }
    request = Request(
        "https://api.spicyapi.ai/v1/chat/completions",
        data=json.dumps(body).encode(),
        headers={
            "Authorization": f"Bearer {os.environ['SPICY_API_KEY']}",
            "Content-Type": "application/json",
            "Idempotency-Key": str(uuid.uuid4()),
            "User-Agent": "sonnet-edit-example/1.0",
        },
    )
    try:
        with urlopen(request, timeout=80) as response:
            task_id = response.headers.get("X-Spicy-Task-Id")
            if task_id:
                print(f"Task ID: {task_id}", file=sys.stderr)
            result = read_reply(json.load(response), require_edit_tool=True)
    except HTTPError as error:
        task_id = error.headers.get("X-Spicy-Task-Id")
        print(f"HTTP {error.code}; task ID: {task_id or 'not returned'}", file=sys.stderr)
        raise
    print(json.dumps(result["edit"], indent=2))


if __name__ == "__main__":
    main()

Un editing valido mantiene aprile per l’accesso del personale e giugno per l’evento pubblico. Il parser rifiuta una risposta vuota, un troncamento e una chiamata di funzione saltata o malformata; argomenti validi richiedono comunque quel controllo dei fatti. Un resoconto di migrazione di Sonnet descrive un fallback vuoto che raggiunge gli utenti come risultato riuscito.

Se finish_reason è length, per una nuova chiamata usa più spazio di output o un compito più piccolo. Conserva qualsiasi risultato parziale e l’ID dell’attività prima di spendere di nuovo. In un workflow di strumenti multi-turno, restituisci il risultato dello strumento con il relativo tool_call_id prima del turno successivo. Includi nei tuoi controlli di migrazione una contraddizione, un fatto invariato, una risposta "unknown" e un risultato di strumento "no match"; per estrazioni più lunghe, verifica che le sezioni richieste siano presenti oltre alla validità del JSON.

Lascia che un Agent prepari l’integrazione

Usa un Agent quando vuoi che adatti un editor esistente invece di incollare tu una richiesta. Mantieni nel suo incarico le stesse fonti della galleria e la stessa bozza.

  • CLI: dopo aver impostato SPICY_API_KEY, lascia che ispezioni il contratto scelto con npx @spicyapi/cli models get anthropic/claude-sonnet-5.5/chat --json. La guida alla CLI documenta questo comando di sola lettura.
  • MCP: con il server MCP di SpicyAPI collegato, chiedi: "Use spicyapi_model_get for anthropic/claude-sonnet-5.5/chat, then adapt my gallery edit to its accepted effort and tool-choice settings. Prepare the request without running it."
  • Skill: installa la Skill ufficiale di SpicyAPI con npx skills add spicyapi-ai/spicy-skill, avvia una nuova sessione dell’Agent, poi chiedi: "Use the SpicyAPI Skill to migrate my gallery editor from Sonnet 4.5 to 5.5. Keep the source facts and validate submit_edit; show me the request before calling it."

CLI e MCP forniscono la scoperta dei modelli per questo workflow di testo; l’editing vero e proprio usa /v1/chat/completions tramite il programma qui sopra o il client HTTP del tuo Agent. Imposta un limite di spesa sulla chiave API prima di delegare editing ripetuti.

FAQ

Sonnet 5.5 costa meno di Sonnet 5?

No. Costa circa il 5.3 % in più per token ($2 e $10 contro $1.90 e $9.50). Un’attività costa tanto di più solo quando i conteggi fatturati e le categorie di cache sono identici. Quel sovrapprezzo compra il tetto di risposta da 128 000 token, gli effort none e xhigh e il livello Senza censura.

Sonnet 5.5 è meglio di Opus 5.5?

Non come regola. Opus 5.5 costa $3.60 in input e $18 in output su SpicyAPI, circa 1.8 volte Sonnet 5.5, con la stessa finestra da 1M e lo stesso tetto di output da 128 000. Parti da Sonnet 5.5 e sali solo se i tuoi passaggi più difficili tornano sbagliati; la guida «Claude Opus 5.5 per il roleplay NSFW» copre quel percorso.

Posso mantenere temperature su Sonnet 5.5?

No. Usa l’effort di ragionamento per la profondità e metti le regole di tono nel prompt di sistema. Se ti servono controlli di campionamento, le opzioni sono 4.5 e 4.6.

Anche in English · 日本語 · 한국어 · Deutsch · Français · Español · Português (Brasil) · Русский · Polski

Provalo tu stesso

Paghi solo quello che esegui: nessun piano, nessun abbonamento.

Creato con MiniMax H3 · ByteDance Seedance 2.0 Fast