Przejdź do treści głównej

Wybór wersji API Claude Sonnet do workflow redakcyjnego

Porównaj sterowanie, koszty tokenów i limity odpowiedzi Sonnet 4.5, 4.6, 5 i 5.5, a potem przenieś żądanie redakcyjne z kontrolą niepełnych odpowiedzi.

Autor
Lydia
Opublikowano
Czas czytania
13 min czytania
Zaktualizowano
Dwoje zmyślonych dorosłych omawia scenariusz w ciepłym radiowym studiu montażowym obok mikrofonu i rejestratora; niezależna ilustracja redakcyjna.

Integracja redakcyjna to coś więcej niż nazwa modelu: może zależeć od ustawienia próbkowania, wymuszonego wywołania funkcji albo parsera odpowiedzi. Zmiana wersji potrafi zmienić wszystkie trzy, zanim zmieni jakość samej redakcji.

Wybierz Sonnet 5 do nowego projektu, Sonnet 5.5, gdy potrzebujesz odpowiedzi dłuższych niż 64 000 tokenów, fikcji bez cenzury albo najszerszego zakresu effort, a Sonnet 4.6 dla sterowania temperature, top_p lub top_k. Sonnet 5 obsługuje też wymuszone wywołania narzędzi; 5.5 nie. Sama zmiana ID modelu psuje żądanie: Sonnet 5 i 5.5 zwracają błąd 400 dla pól próbkowania, a 5.5 odrzuca także wymuszony wybór narzędzia. Usuń te pola osobno dla każdej wersji, zanim zaczniesz porównywać odpowiedzi.

Tabela opisuje kontrakty hostowane przez SpicyAPI. Przewodnik migracji do Sonnet 5.5 firmy Anthropic wyjaśnia natywne zmiany wersji; jego nazwy pól i wartości domyślne nie są zamienne z tym interfejsem. Ceny poniżej podano w USD za milion tokenów.

Co akceptuje każda wersja

KontraktSonnet 4.5Sonnet 4.6Sonnet 5Sonnet 5.5
Limit wejścia198 000 tokenów1 000 0001 000 0001 000 000
Pułap wyjścia64 00064 00064 000128 000
Domyślne max_tokens4096409640964096
reasoning_effortNieudostępnionelow, medium, high, maxlow, medium, highnone, low, medium, high, xhigh, max
Domyślny effort—mediummediummedium
temperature, top_p, top_kDostępneDostępneOdrzucaneOdrzucane
tool_choiceauto, none, required lub funkcja z nazwątak samotak samotylko auto lub none
response_formatNieakceptowaneNieakceptowaneNieakceptowaneNieakceptowane
Poziom treściZłagodzonyBez cenzuryFiltrowanyBez cenzury

ID to anthropic/claude-sonnet-4.5/chat, anthropic/claude-sonnet-5/chat, anthropic/claude-sonnet-5.5/chat i anthropic/claude-sonnet-4.6/chat; strony modeli to 4.5, 5, 5.5 i 4.6. Wszystkie cztery używają tego samego kształtu żądania /v1/chat/completions i akceptują też stop, tools oraz parallel_tool_calls.

Sonnet 4.6 to pośrednia opcja migracji. Ma już okno 1M i reasoning_effort, a mimo to nadal przyjmuje temperature. Przejście z 4.5 na 4.6 zachowuje kształt żądania, podnosi stawkę za wejście o 11 %, zmienia poziom ze Złagodzonego na Bez cenzury i domyślnie ustawia średni effort rozumowania; dopiero krok z 4.6 na 5 usuwa próbkowanie.

Poziom treści ma znaczenie dla fikcji i odgrywania ról. Sonnet 5 jest Filtrowany; Sonnet 4.5 i 4.6 w naszych testach często łagodziły lub odrzucały żądania intensywniejszej fikcji dla dorosłych. Sonnet 5.5 dostarczył te testowane sceny bez łagodzenia i odmów, więc jest tu mocniejszym wyborem do pracy nad fikcją dla dorosłych. Złagodzona odpowiedź nadal może zostać rozliczona. SpicyAPI nie dodaje filtra treści na poziomie platformy; opisz fikcyjną scenę i ograniczenia redakcyjne w wiadomości systemowej.

Który wybrać

  • Nowa integracja tekstowa, bez treści dla dorosłych: Sonnet 5. Ma najniższe stawki, okno 1M i trzy poziomy effort.
  • Długie teksty lub fikcja dla dorosłych: Sonnet 5.5. Tylko on potrafi napisać w jednej odpowiedzi więcej niż 64 000 tokenów, tylko on ma none (bez myślenia) i jest Bez cenzury.
  • Sterowanie próbkowaniem: zostań przy przypiętej integracji 4.5 albo przejdź na 4.6 dla okna 1M. Wymuszone wywołania funkcji bez próbkowania: Sonnet 5 akceptuje je przy niższych stawkach; używaj go zamiast 5.5, gdy wywołanie musi być wymuszone.
  • Cały manuskrypt na 300 000 tokenów w jednym wywołaniu: to kwestia kontekstu i kosztów, omówiona w przewodniku po długim manuskrypcie w Sonnet 4.6.

Cena: uwzględnij tokenizer i rozliczane wyjście

USD za milion tokenów4.54.655.5
Wejście2,70 $3 $1,90 $2 $
Wejście z pamięci podręcznej0,27 $0,30 $0,19 $0,20 $
Wyjście13,50 $15 $9,50 $10 $
Zapisy do pamięci podręcznej3,30 $3,75 $2,375 $2,50 $

Sonnet 5 i 5.5 używają nowszego tokenizera. Przewodnik migracji Anthropic podaje, że ten sam tekst daje około 30 % więcej tokenów niż w 4.x, zależnie od zawartości, więc porównuj koszt zadania, a nie tokenu. Dla przykładowego zadania mierzącego na 4.5 20 000 tokenów wejścia i 2 000 wyjścia załóż 30-procentowy wzrost obu liczb na 5 i 5.5:

ModelRozliczane tokenyKoszt
4.520 000 wejścia, 2 000 wyjścia0,081 $
4.620 000 wejścia, 2 000 wyjścia0,090 $
5około 26 000 wejścia, 2 600 wyjściaokoło 0,074 $
5.5około 26 000 wejścia, 2 600 wyjściaokoło 0,078 $

W tym scenariuszu Sonnet 5 jest o około 9 % tańszy od 4.5; oszczędność nie jest stała dla każdego dokumentu. Liczby wyjścia muszą obejmować rozliczane rozumowanie. Ustawienie effort na low może ograniczyć myślenie, ale go nie wyłącza; tutaj tylko 5.5 udostępnia none. Odczytaj zużycie ze swojego rzeczywistego zadania, zanim potraktujesz szacunek jak budżet.

Stawki Sonnet 5.5 są o około 5,3 % wyższe niż Sonnet 5 i taka jest różnica przy identycznych rozliczanych liczbach i kategoriach pamięci podręcznej. Przelicz długie prompty po zmianie tokenizera: hipotetyczny wzrost o 30 % zamieniłby prompt na 190 000 tokenów w 247 000, wciąż poniżej limitu wejścia 1M, ale z innym rachunkiem.

Wypróbuj redakcję w Playground

Użyj tej małej redakcji z weryfikacją faktów, zanim przeniesiesz większy workflow:

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. Otwórz stronę modelu Sonnet 5.5, do której prowadzi link wyżej, i wybierz Playground. Wstaw oba źródła i szkic do wiadomości użytkownika, a "Edit from the supplied sources only" jako instrukcję systemową.
  2. Użyj effort low do tej redakcji jednego zdania. Uruchom ją po sprawdzeniu kosztu, a potem upewnij się, że odpowiedź zachowuje kwiecień dla dostępu pracowników i czerwiec dla wydarzenia publicznego, bez wymyślania dokładnej daty.
  3. Wypróbuj ten sam tekst na Sonnet 5 w tańszym workflow redakcyjnym bez treści dla dorosłych. Zostaw tekst źródłowy bez zmian, żeby ocenić samą redakcję.

Wybierz wersję do redakcji, którą naprawdę dostarczasz

Przy porządkowaniu rozdziału na 700 słów z pakietem źródeł na 20 000 tokenów żadna z tych wersji nie potrzebuje maksymalnego kontekstu ani maksymalnej odpowiedzi. Liczy się to, czy pasują sterowanie żądaniem i przydatność treści. Sonnet 5 to tańszy punkt wyjścia dla zwykłej redakcji. Redaktor fikcji dla dorosłych powinien też rozważyć jego poziom Filtrowany, zanim zrobi z niego domyślny wybór dla całego manuskryptu. Ta sama aplikacja może więc wymagać różnych modeli dla niegraficznego streszczenia i dla przeglądu sceny o dojrzałej tematyce.

Jeśli chcesz trzy alternatywne sformułowania na 4.5 lub 4.6, ich sterowanie próbkowaniem daje akceptowany sposób zróżnicowania generowania. Nie znaczy to, że podniesienie temperatury naprawi wadliwą logikę fabuły. Akapit, w którym postać zna informację, której jeszcze nie może znać, potrzebuje reguły wiedzy i fragmentu źródła, a nie większej losowości. Na 5 lub 5.5 nie wymyślaj równoważnego pola próbkowania. Poproś o trzy alternatywy o różnych, jawnie określonych podejściach: krótszy dialog, mniej ekspozycji albo późniejsze ujawnienie.

Dla redakcji wspomaganej narzędziem wyobraź sobie, że szkic wymienia pracodawcę postaci, a wiarygodna baza serii ma aktualny wpis. Na 4.5, 4.6 lub 5 dostępny wybór narzędzia może wymusić sprawdzenie. Na 5.5 auto może wygenerować odpowiedź bez sprawdzenia. Jeśli Twoja aplikacja musi zweryfikować pracodawcę, wykonaj odczyt przed prośbą o redakcję albo nie przyjmuj odpowiedzi bez wymaganego wyniku sprawdzenia. Zdanie w prompcie nie daje auto takiej samej gwarancji jak wymuszone wywołanie. Natywnych przykładów thinking lub output_config z przewodnika migracji Anthropic nie należy wklejać do tego żądania bez zmian.

Istotnym wynikiem przykładu jest zdanie, które zachowuje zarówno dostęp pracowników w kwietniu, jak i publiczny start w czerwcu. "The gallery reopened in June" jest zbyt ogólne, jeśli pracownicy mogli wejść już w kwietniu. "The gallery held its public launch in June, after reopening to staff in April" to akceptowalna poprawka napisana przez człowieka. Nowa wersja, która daje ładniejsze sformułowanie, ale gubi to rozróżnienie, nie poprawiła pracy redakcyjnej.

Przenieś żądanie

Integracja 4.5 może używać temperature: 0.2, top_p: 0.9 i wymuszonej funkcji submit_edit. Przejście na 5 odrzuca pola próbkowania; przejście na 5.5 odrzuca zarówno próbkowanie, jak i wymuszony wybór narzędzia.

  1. Usuń próbkowanie na 5 i 5.5. Skasuj temperature, top_p i top_k z tych żądań. Nieobsługiwane pola zwracają 400 unsupported_parameter, zanim zadanie zostanie utworzone lub obciążone opłatą; utrzymuj listę dozwolonych pól dla każdego modelu zamiast wysyłać jeden wspólny obiekt parametrów.
  2. Użyj automatycznego narzędzia na 5.5. Zachowaj funkcję submit_edit i poproś o nią w prompcie systemowym, ale ustaw tool_choice na auto. Nie ma tu response_format, a 5.5 może pominąć funkcję, więc waliduj zwrócone argumenty. Jeśli Twój workflow wymaga wymuszonego wywołania, Sonnet 5 obsługuje je przy niższych stawkach.
  3. Zostaw miejsce na odpowiedź. Rozumowanie zużywa część max_tokens: limit 1 024 tokenów może się wyczerpać, zanim pojawi się widoczny tekst. Użyj effort low do redakcji jednego zdania, a high przy sprzecznych źródłach. Sonnet 5 kończy się na high; nie przyjmuje xhigh ani max z 5.5.
  4. Strumieniuj dłuższe redakcje. Krótki przykład poniżej używa zwykłej odpowiedzi JSON. Duże wywołania mogą przekroczyć limit około 100 sekund na brzegu sieci; dla nich użyj streamingu i składaj tekst oraz argumenty narzędzi osobno. Przewodnik po tekście i streamingu opisuje zdarzenia zakończenia i zużycie.
  5. Zakończ rozmowę wiadomością użytkownika. Przy odejściu od 4.5 przenieś zamierzony początek odpowiedzi lub wskazówkę formatu do instrukcji systemowej, zamiast kończyć prefillem asystenta.

Nazwy effort też zmieniają znaczenie. Anthropic przekalibrował poziomy 5.5, więc high nie jest równoważne między wersjami. SpicyAPI ustawia domyślnie medium zarówno dla 5, jak i 5.5, podczas gdy natywne API 5.5 firmy Anthropic domyślnie używa high. Dla czystych, krótkich odpowiedzi wybieraj low zamiast none: przy none model 5.5 może rozwiązywać pytanie w widocznym tekście. none pozostaje przydatne w szybkich kwestiach w roli.

Uruchom i zwaliduj redakcję

Zapisz to jako sonnet_edit.py, ustaw SPICY_API_KEY z API Keys, a potem uruchom python3 sonnet_edit.py. Używa biblioteki standardowej Pythona. Sonnet 5.5 wybrano tu, by pokazać migrację do automatycznego narzędzia; zmiana samego modelu na Sonnet 5 również akceptuje te pola. To płatne wywołanie tekstowe, a nie zadanie generowania mediów. Przepisy na czat opisują integracje wieloturowe i ze streamingiem.

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()

Poprawna redakcja zachowuje kwiecień dla dostępu pracowników i czerwiec dla wydarzenia publicznego. Parser odrzuca pustą odpowiedź, ucięcie oraz pominięte lub źle sformowane wywołanie funkcji; poprawne argumenty nadal wymagają tego sprawdzenia faktów. Raport z migracji Sonnet opisuje pustą odpowiedź zastępczą, która dotarła do użytkowników jako udany wynik.

Jeśli finish_reason ma wartość length, w nowym wywołaniu daj więcej miejsca na wyjście albo mniejsze zadanie. Zachowaj każdy częściowy wynik i ID zadania, zanim znów poniesiesz koszt. W wieloturowym workflow z narzędziami zwróć wynik narzędzia z pasującym tool_call_id przed kolejną turą. Uwzględnij w testach migracji jedną sprzeczność, jeden niezmieniony fakt, jedną odpowiedź "unknown" i jeden wynik narzędzia "no match"; przy dłuższych ekstrakcjach sprawdź, czy obecne są wymagane sekcje, a nie tylko czy JSON jest poprawny.

Pozwól Agentowi przygotować integrację

Użyj Agenta, gdy chcesz, żeby dostosował istniejący edytor, zamiast samodzielnie wklejać żądanie. Zachowaj w jego zleceniu te same źródła galerii i ten sam szkic.

  • CLI: po ustawieniu SPICY_API_KEY pozwól mu sprawdzić wybrany kontrakt poleceniem npx @spicyapi/cli models get anthropic/claude-sonnet-5.5/chat --json. Przewodnik po CLI opisuje to polecenie tylko do odczytu.
  • MCP: po połączeniu serwera MCP SpicyAPI poproś: "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: zainstaluj oficjalny Skill SpicyAPI poleceniem npx skills add spicyapi-ai/spicy-skill, rozpocznij nową sesję Agenta, a potem poproś: "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 i MCP zapewniają wykrywanie modeli dla tego workflow tekstowego; sama redakcja korzysta z /v1/chat/completions przez program powyżej lub klienta HTTP Twojego Agenta. Ustaw limit wydatków na kluczu API, zanim zlecisz powtarzane redakcje.

FAQ

Czy Sonnet 5.5 jest tańszy niż Sonnet 5?

Nie. Kosztuje około 5,3 % więcej za token (2 $ i 10 $ wobec 1,90 $ i 9,50 $). Zadanie kosztuje tyle więcej tylko wtedy, gdy rozliczane liczby tokenów i kategorie pamięci podręcznej są identyczne. Ta dopłata kupuje pułap odpowiedzi 128 000 tokenów, effort none i xhigh oraz poziom Bez cenzury.

Czy Sonnet 5.5 jest lepszy niż Opus 5.5?

Nie z zasady. Opus 5.5 kosztuje w SpicyAPI 3,60 $ za wejście i 18 $ za wyjście, czyli około 1,8 raza więcej niż Sonnet 5.5, przy tym samym oknie 1M i pułapie wyjścia 128 000. Zacznij od Sonnet 5.5 i przejdź wyżej tylko wtedy, gdy Twoje najtrudniejsze fragmenty wychodzą źle; ta ścieżka jest opisana w przewodniku „Claude Opus 5.5 do roleplayu NSFW”.

Czy mogę zachować temperature w Sonnet 5.5?

Nie. Użyj effort rozumowania dla głębokości, a zasady tonu umieść w prompcie systemowym. Jeśli potrzebujesz sterowania próbkowaniem, do wyboru są 4.5 i 4.6.

Także w językach English · 日本語 · 한국어 · Deutsch · Français · Español · Português (Brasil) · Русский · Italiano

Wypróbuj samodzielnie

Płacisz tylko za to, co uruchomisz — bez planów i subskrypcji.

Zrobione w MiniMax H3 · ByteDance Seedance 2.0 Fast