Przejdź do treści głównej

Redaguj długie dokumenty z Claude Opus 4.5 i 4.6 bez utraty źródła

Przygotuj pakiet źródeł, zachowaj cytaty i autorstwo, wprowadzaj wąskie poprawki i policz cztery kategorie tokenów, by redakcja długiego tekstu się udała.

Autor
Lydia
Opublikowano
Czas czytania
14 min czytania
Zaktualizowano
Fikcyjna dorosła redaktorka i dorosły szklarz rozmawiają o małej bursztynowej butelce przy stole warsztatowym; niezależna ilustracja redakcyjna.

Transkrypcja Twojego wywiadu mówi jedno, późniejsze sprostowanie drugie, a szkic portretu trzecie. Chcesz, by Claude poprawił akapit, nie przepisując po cichu cytatu i nie przypisując zasługi niewłaściwej osobie. To przede wszystkim problem rzetelności źródeł, a dopiero potem problem promptu. W praktyce wystarczy oznaczyć dowody, poprosić o wąską poprawkę i sprawdzić, co się zmieniło.

Wybierając między tymi dwiema wersjami, użyj Opus 4.5, gdy Twój pakiet redakcyjny mieści się w limicie wejścia 198 000 tokenów; użyj Opus 4.6, gdy pakiet jest większy albo potrzebujesz więcej niż 32 768 tokenów wyjścia. Wersja 4.5 jest tańsza z tej dwójki. Między wywołaniami utrzymuj identyczny blok źródeł. Jeśli zwrócone zużycie pokazuje tokeny z cache, powtarzane przebiegi kosztują mniej; dopóki tak nie jest, planuj budżet bez cache.

Trasy czatu Opus w formacie OpenAI w SpicyAPI nie przyjmują w żądaniu natywnej edycji kontekstu Anthropic (context_management, która usuwa stare wyniki narzędzi i bloki thinking): pole jest odrzucane z błędem 400, tak samo jak response_format. Jeśli przyszedłeś tu po tę funkcję, zarządzaj kontekstem samodzielnie (zobacz FAQ). Jeśli przyszedłeś redagować dokumenty, czytaj dalej.

Która wersja Opus do którego pakietu

Obecny kontraktOpus 4.5Opus 4.6
ID modeluanthropic/claude-opus-4.5/chatanthropic/claude-opus-4.6/chat
Limit wejścia198 000 tokenów1 000 000 tokenów
Maksymalne wyjście32 768 tokenów128 000 tokenów
Domyślny limit wyjścia4 096 tokenów4 096 tokenów
Poziomy effortlow, medium, highlow, medium, high, max
Domyślny effortmediummedium
Modalności wejściaTekst i obrazyTekst i obrazy
USD za milion wejścia / z cache / wyjścia4,50 $ / 0,45 $ / 22,50 $5 $ / 0,50 $ / 25 $
USD za milion zapisów do cache5,50 $6,25 $

Ceny i limity znajdziesz na stronach Opus 4.5 i Opus 4.6. Oba akceptują temperature (od 0 do 1) i top_p (od 0,01 do 1); oba odrzucają response_format, więc gdy potrzebujesz ustrukturyzowanych argumentów, użyj wymuszonego wywołania narzędzia, a następnie zwaliduj te argumenty względem swojego schematu, zanim je zaakceptujesz. Oba przyjmują części image_url, ale nie przyjmują części PDF ani plików: wyodrębnij tekst lub wyrenderuj odpowiednie strony jako obrazy. Ten poradnik używa tekstu, aby cytaty można było sprawdzić względem dokładnego źródła. Żądanie z max_tokens powyżej 32 768 nie przechodzi walidacji w wersji 4.5.

Nowsza trasa, Claude Opus 5.5 (anthropic/claude-opus-5.5/chat), ma to samo okno 1 000 000 tokenów i ten sam limit wyjścia 128 000 tokenów, przy cenie 3,60 $ za wejście / 18 $ za wyjście na milion, czyli niższej niż obie tutejsze wersje; nie ma temperature ani top_p i dopuszcza tylko automatyczny lub wyłączony wybór narzędzi. Przy nowej integracji sprawdź ją najpierw, jeśli możesz obejść się bez kontroli próbkowania i bez wymuszonego wywołania funkcji.

Obie trasy są w SpicyAPI wymienione jako bez cenzury. Przy redagowaniu fikcji dla dorosłych wskaż fikcyjny kontekst i dokładny fragment, który wolno zmienić, aby żądanie pozostało skupione na redakcji.

Effort jest wydawany w tokenach wyjścia. Zacznij od medium, utrzymuj stałe źródło i instrukcje, a effort zwiększaj tylko wtedy, gdy możesz wskazać konkretny błąd uzgodnienia, na przykład źle ustaloną przez model chronologię. Dzięki temu widać też skutek zmiany.

Oddziel źródło historyczne od sprostowania

Oto zwarty, fikcyjny pakiet do portretu autorki:

  • S1, nagrany wywiad: Ada mówi: „Pokazaliśmy prototyp w 2018 roku.”
  • S2, późniejsze pisemne sprostowanie: Ada mówi, że sprawdziła kalendarz: pierwsza publiczna demonstracja odbyła się w lutym 2019 roku. Umowa najmu warsztatu zaczęła się w 2018 roku.
  • S3, notatka współpracownika: Theo dołączył po demonstracji. Później dopracował gryf instrumentu; nie zaprojektował oryginalnego prototypu.
  • Szkic P1: „Ada i Theo zaprezentowali w 2018 roku wspólnie zaprojektowany prototyp, w roku, w którym otworzyli warsztat.”

Redakcja wymaga dwóch poprawek: daty demonstracji i roli Theo. Cytat z wywiadu jest zapisem historycznym, więc ciche zamienienie zacytowanego „2018” na „2019” stworzyłoby cytat, którego nikt nie wypowiedział. Zachowaj cytat, a sprostowanie umieść w narracji. Docelowy tekst napisany przez człowieka brzmiałby: „Ada po raz pierwszy pokazała prototyp publicznie w lutym 2019 roku, po wynajęciu warsztatu w 2018 roku. Theo dołączył później i dopracował gryf instrumentu.” Nie twierdzi on, że firma ruszyła w 2018 roku, ponieważ sama data najmu nie ustala daty otwarcia.

Ta sama struktura sprawdza się w fikcji. Zastąp S1–S3 zatwierdzonymi faktami fabularnymi, oddziel to, w co postać błędnie wierzy, od tego, co wie narrator, i wskaż fragment, który wolno zmienić. „Godzą się w rozdziale dwunastym” nie uprawnia do zmiany w rozdziale ósmym, która zbyt wcześnie usuwa konflikt.

Najpierw wypróbuj w Playground

  1. Otwórz Claude Opus 4.5 i przełącz się na Playground.
  2. Wklej poniższe zapisy źródeł S1–S3 i szkic P1, prosząc o tekst zastępczy oraz identyfikatory źródeł dla każdej poprawki.
  3. Sprawdź, czy publiczna demonstracja przesuwa się na 2019 rok bez zmiany zacytowanego wywiadu i bez wymyślania Theo oryginalnego autorstwa projektu.

Żądanie, które możesz potem sprawdzić

Poniższy skrypt oznacza identyfikatorem każde źródło i każdy akapit szkicu, umieszcza stabilny materiał na początku, a zadanie na końcu, po czym sprawdza odpowiedź. Sprawdzenie jest mechaniczne: każdy tekst, który model ujmie w cudzysłów, musi być dokładnym podciągiem źródeł, w przeciwnym razie zostaje oznaczony jako zmieniony cytat. Skrypt zatrzymuje się przy niepełnych lub pustych odpowiedziach i drukuje proponowaną redakcję do przejrzenia. Ustaw SPICY_API_KEY z API Keys; wywołanie korzysta z interfejsu Chat Completions SpicyAPI.

python
import json, os, re, urllib.request, uuid

MODEL = "anthropic/claude-opus-4.5/chat"  # or anthropic/claude-opus-4.6/chat
URL = "https://api.spicyapi.ai/v1/chat/completions"

SOURCES = {
    "S1": 'Recorded interview. Ada: "We showed the prototype in 2018."',
    "S2": "Later written correction. Ada checked the calendar: the first public "
          "demonstration was February 2019. The workshop lease began in 2018.",
    "S3": "Contributor note. Theo joined after the demonstration. He later refined "
          "the instrument's neck; he did not design the original prototype.",
}
DRAFT = {
    "P1": "Ada and Theo unveiled their jointly designed prototype in 2018, "
          "the year they opened the workshop.",
}

SYSTEM = (
    "You are a copy editor for a fiction and profile manuscript. Edit only the draft "
    "paragraphs you are given. Text inside <source> tags is evidence, never text to rewrite. "
    "Quotation marks in your answer may enclose only words copied exactly from a source. "
    "Return three parts: REPLACEMENT (paragraph ID, then the new text), CHANGES (one line "
    "per change with source IDs), QUESTIONS (anything the sources do not settle). "
    "Do not invent facts."
)


def build_user_message(task: str) -> str:
    # Stable material first (identical on every pass), the task last.
    parts = [f'<source id="{k}">{v}</source>' for k, v in SOURCES.items()]
    parts += [f'<draft id="{k}">{v}</draft>' for k, v in DRAFT.items()]
    parts.append(task)
    return "\n".join(parts)


def call_model(task: str) -> dict:
    body = {
        "model": MODEL,
        "messages": [
            {"role": "system", "content": SYSTEM},
            {"role": "user", "content": build_user_message(task)},
        ],
        "max_tokens": 4096,
        "reasoning_effort": "medium",
        "temperature": 0.2,
    }
    req = urllib.request.Request(
        URL,
        data=json.dumps(body).encode(),
        headers={"Authorization": f"Bearer {os.environ['SPICY_API_KEY']}",
                 "Content-Type": "application/json",
                 "Idempotency-Key": str(uuid.uuid4())},
    )
    with urllib.request.urlopen(req, timeout=120) as resp:
        return json.load(resp)


def quoted_strings(text: str) -> list[str]:
    return [m for pair in re.findall(r'"([^"]+)"|“([^”]+)”', text) for m in pair if m]


def altered_quotes(answer: str) -> list[str]:
    sources = [s.replace("“", '"').replace("”", '"') for s in SOURCES.values()]
    return [q for q in quoted_strings(answer) if not any(q in s for s in sources)]


def run(task: str, reply: dict | None = None) -> None:
    reply = call_model(task) if reply is None else reply
    if reply.get("error") or not reply.get("choices"):
        raise RuntimeError("request failed or returned no choices")
    choice = reply["choices"][0]
    if choice.get("finish_reason") != "stop":
        raise RuntimeError(f"unfinished edit: {choice.get('finish_reason')}")
    answer = choice.get("message", {}).get("content")
    if not isinstance(answer, str) or not answer.strip():
        raise RuntimeError("empty edit")
    bad = altered_quotes(answer)
    print(answer)
    print("ALTERED QUOTES:", bad if bad else "none")
    print("USAGE:", reply.get("usage"))
    if bad:
        raise RuntimeError("review altered quotations before using this edit")

if __name__ == "__main__":
    run("Fix the factual errors in P1 and preserve the lease/demonstration distinction.")

Odpowiedź zachowująca cytat z wywiadu przechodzi; odpowiedź cytująca „Pokazaliśmy prototyp w 2019 roku.” zostaje oznaczona. Sprawdzenie widzi tylko tekst w podwójnych cudzysłowach; nie wykryje wymyślonej daty bez cudzysłowu, błędnie przypisanej zasługi ani frazy ze źródła przepisanej bez cudzysłowu. Sprawdź to również względem S1–S3. Wychwytuje błąd, który w długim maszynopisie najtrudniej zobaczyć gołym okiem: cytat zmieniony o kilka znaków.

Liczą się dwa szczegóły żądania. Wiadomość systemowa mówi, co jest dowodem, a co można redagować, więc S1 jest jawnie poza zadaniem przepisywania. A zadanie stoi po źródłach, dzięki czemu wspólny prefiks pozostaje identyczny z przebiegu na przebieg. Ten przykład jest dość krótki na ograniczone wywołanie bez streamingu. Dłuższy pakiet źródeł lub odpowiedź przy wysokim effort może przekroczyć sieciowy limit około 100 sekund; w takich zadaniach używaj streamingu. Zwiększenie timeoutu klienta nie przedłuża tego limitu.

Pozwól Agentowi przygotować wywołanie

Przy powtarzanych redakcjach opartych na źródłach poproś swojego Agenta programistycznego o użycie Skilla SpicyAPI: „Read anthropic/claude-opus-4.5/chat, then adapt the example to my input; show the request before running it.” Sprawdzenie przez CLI to spicyapi models get anthropic/claude-opus-4.5/chat --json; przez MCP to spicyapi_model_get z model: "anthropic/claude-opus-4.5/chat". Wywołania czatu korzystają ze zgodnego klienta lub API czatu; polecenia zadań multimedialnych nie generują odpowiedzi czatu.

Długie maszynopisy: najpierw poproś o lokalizacje, potem o zamienniki

Przy poprawce na poziomie zdania wyślij akapit i dowody, które nim rządzą. Przy redakcji rozdziału dodaj sąsiednie przejścia i fakty użyte w tym rozdziale. Większego okna używaj, gdy pytanie obejmuje cały maszynopis: gdzie zmienia się zawód postaci, czy obietnica zostaje dotrzymana, które odwołania do daty wymagają przeglądu.

Przy przebiegu przez cały maszynopis oddziel wyszukiwanie od rewizji:

  1. Znajdź wystąpienia. Poproś o listę, nie o przepisanie: „List every passage that states the demonstration year, quote the sentence, and classify it as narration, direct quotation or a character’s belief.” Globalna zamiana zatarłaby różnice, od których zależy opowieść.
  2. Wybierz zmiany. Nadaj akapitom stabilne identyfikatory (P42, a nie „akapit o najmie”), każ je zwracać i porównuj każdy zamiennik z oryginałem.
  3. Zostaw nierozstrzygnięte fakty otwarte. Gdy źródła nie rozstrzygają kwestii, niech model zwróci pytanie zamiast najbardziej prawdopodobnej daty.

Przy błędach ciągłości, takich jak zmieniający się kolor oczu, niespójne miejsca czy postać wiedząca coś zbyt wcześnie, prowadź biblię opowieści i wysyłaj odpowiednie wpisy z każdym rozdziałem.

Jeśli maszynopis przekracza 198 000 tokenów wejścia w wersji 4.5, dziel go według zależności, nie według rozmiaru. Rozdziały, które łączy kwestia ciągłości, należą do jednego żądania; przecięcie ich na pół może usunąć dowód rozstrzygający redakcję. Jeśli to niemożliwe, przejdź na 4.6.

Redagowanie rozdziału bez spłaszczania jego głosu

Poprawa faktów i szlifowanie prozy to różne zadania. Przebieg merytoryczny powinien wskazać błędy dat i zasług, zanim zmieni rytm. Jeśli jednocześnie poprosisz o „dopracowany, profesjonalny portret”, model może usunąć wahanie z wywiadu, zastąpić charakterystyczne sformułowania autora lub autorki i pogrzebać właściwą poprawkę w całkiem nowym akapicie.

Miej pod ręką krótki przykład pożądanego głosu. Na przykład: „Warsztat był jeszcze pokojem pełnym pożyczonych narzędzi. Ada nazywała go laboratorium. Theo nazywał go zimnym.” Użyteczne cechy tej próbki to krótkie zdania, konkretne przedmioty i powściągliwy spór. Łatwiej je zastosować niż „literacko, ale przystępnie”. Poproś, by redakcja zachowała te cechy, jednocześnie czytelnie pokazując poprawioną chronologię.

Przepisanie wykonane przez człowieka mogłoby brzmieć:

Najem zaczął się w 2018 roku. Ada pokazała prototyp publiczności w lutym następnego roku, gdy warsztat był jeszcze pokojem pełnym pożyczonych narzędzi. Theo dołączył później. Gryf instrumentu nosi jego zmiany; oryginalny prototyp nie.

To ilustracyjny wybór redakcyjny, a nie wynik Opus. Poprawia fakty, nie robiąc z Theo współzałożyciela i nie wymyślając, kiedy warsztat się otworzył. Pokazuje też, że zachowanie głosu nie oznacza zachowania fałszywego twierdzenia.

W romansie oddziel trzy podobnie wyglądające ustalenia. Postać mówiąca „nigdy nie wróciłeś” może składać celowe oskarżenie. Narracja mówiąca, że postać nigdy nie wróciła, może przeczyć wcześniejszemu rozdziałowi. Nierozstrzygnięte pytanie, czy powrót nastąpił, może być notatką autora lub autorki. Poproś Opus o sklasyfikowanie fragmentu, zanim go zastąpisz. W przeciwnym razie automatyczne czyszczenie faktów może wymazać zamierzone nieporozumienie, które napędza relację.

Zastosuj poprawkę tam, gdzie naprawdę należy

W dłuższym portrecie błędny rok może pojawić się we wstępie, na osi czasu, w podpisie zdjęcia i w transkrypcji wywiadu. Te wystąpienia wymagają różnego traktowania. Popraw narrację objaśniającą i oś czasu na podstawie zatwierdzonej korekty. Nagrany cytat zostaw nietknięty i dodaj kontekst. Podpis sprawdź względem udokumentowanej daty samego zdjęcia: korekta wydarzenia nie dowodzi, że każde zdjęcie warsztatu wykonano w 2019 roku.

W książce odpowiednikiem jest poprawienie narracji kanonicznej przy zachowaniu ograniczonej wiedzy postaci aż do zaplanowanego odkrycia. Poproś o tabelę z lokalizacją, istniejącym zdaniem, źródłem i proponowaną zmianą. Na jej podstawie zatwierdzaj rewizje, a potem zażądaj tylko wybranych zamienników. Dzięki temu długie okno kontekstu staje się pomocą redakcyjną z możliwymi do prześledzenia zmianami, a nie kosztownym zaproszeniem do przepisania wszystkiego.

Koszt: cztery kategorie tokenów, z przykładem powtarzanych przebiegów

SpicyAPI rozlicza osobno wejście bez cache, wejście z cache, zapisy do cache i wyjście. Pojedynczy przebieg po 100 000 tokenów wejścia z 5 000 tokenów wyjścia kosztuje 0,5625 $ w Opus 4.5 i 0,625 $ w Opus 4.6. Tokeny rozumowania są rozliczane jako wyjście.

Redakcja rzadko jest jednym przebiegiem, a to pakiet źródeł się powtarza. Wejście z cache kosztuje około jednej dziesiątej stawki wejścia, pod warunkiem że wspólny prefiks jest identyczny między wywołaniami, a to, co się zmienia, stoi na końcu (strona Opus 4.6 każe utrzymywać go identycznym co do bajta). Schemat żądania nie udostępnia pola sterowania cache. Szukaj prompt_tokens_details.cached_tokens w zwróconym zużyciu; niezmieniony prefiks nie gwarantuje trafienia. Natywne prompt caching Anthropic ma własne reguły TTL i minimalnego prefiksu; nie ustalają one ani czasu życia cache, ani kwalifikowalności tej hostowanej trasy. Jeśli pierwsze wywołanie zapisze pakiet do cache, a kolejnych pięć go odczyta, sześć przebiegów po tym samym pakiecie 100 000 tokenów z 5 000 tokenów wyjścia każdy kosztuje:

Sześć przebiegówOpus 4.5Opus 4.6
Bez cache3,375 $3,75 $
Pierwszy zapisuje, pięć odczytuje1,45 $1,625 $

To oszczędność około 57 procent, gdy dokładnie te kategorie tokenów mają zastosowanie. Zmiana S2 lub przesunięcie materiału przed wielokrotnie używany prefiks może zmniejszyć lub zlikwidować dopasowanie do cache. Planuj budżet według pierwszego wiersza i sprawdź zużycie oraz koszt kilku pierwszych wywołań, aby zobaczyć, czy zadziałał drugi.

Przy 400 000 tokenów wejścia i 5 000 tokenów wyjścia pakiet nie mieści się już w Opus 4.5; Opus 4.6 kosztuje 2,125 $ bez cache. Jeśli odpowiedź została ucięta, zwiększenie max_tokens naprawia wyjście; nie pomoże, gdy w pakiecie wejściowym zabrakło rozstrzygającego źródła.

Napraw błąd u jego przyczyny

WynikNastępny krok
Poprawiona data pojawia się wewnątrz historycznego cytatuPrzywróć cytat i dodaj poprawkę w narracji; sprawdzenie cytatów to oznaczy
Theo staje się oryginalnym współprojektantemWyślij ponownie S3 i zastąp tylko zdanie przypisujące mu tę rolę
Odpowiedź urywa się przed listą zmian (finish_reason to length)Zawęź zadanie lub zwiększ max_tokens do limitu modelu
Żądanie odrzuca część obrazu lub PDFDla obrazów sprawdź kształt image_url i osiągalny adres URL. Dla części PDF lub plików najpierw wyodrębnij tekst
Potrzebny JSON z odpowiedziNie ma response_format; zdefiniuj narzędzie i wymuś je przez tool_choice, a potem zwaliduj zwrócone argumenty
Parser JSON zawodziZwaliduj i napraw wynik tekstowy w swoim kodzie albo przejdź na wymuszone wywołanie narzędzia opisane wyżej

Od którego zacząć

Przy istniejącym przepływie 4.x używaj 4.5 dla pakietów poniżej 198 000 tokenów wejścia, a 4.6, gdy powiązany maszynopis lub wymagana odpowiedź przekracza jego limity. Przy nowej budowie bez wymagań dotyczących próbkowania lub wymuszonych narzędzi Opus 5.5 oferuje niższą cenę za token i większe okno; sama pojemność nie przesądza, który model lepiej zachowa Twoje źródło. Niezależnie od wyboru nawyki chroniące źródło są te same: identyfikatory przy każdym fragmencie, cytaty, które muszą pozostać dosłowne, stabilny prefiks i mechaniczne sprawdzenie odpowiedzi.

FAQ

Czy Opus 4.6 redaguje lepiej niż 4.5 i który model Claude jest najlepszy do redakcji długich tekstów?

Mierzalne różnice to pojemność i cena: 4.6 czyta 1 000 000 tokenów i zapisuje 128 000, a kosztuje około 11 procent więcej za token wejścia. Wybierz go ze względu na te limity. Przy nowej budowie Opus 5.5 jest tańszy od obu i ma większe okno, o ile nie potrzebujesz kontroli próbkowania ani wymuszonego wyboru narzędzia.

Co robić, gdy kontekst jest pełny albo bez natywnej edycji kontekstu?

Zacznij nowe żądanie: utrzymaj pakiet źródeł na początku i bez zmian, zastąp stare tury krótkim podsumowaniem podjętych już decyzji (które daty poprawiono, które fragmenty są gotowe), a następne zadanie umieść na końcu. Porzucenie starych tur nic nie kosztuje; porzucenie źródła kosztuje Cię redakcję.

Jak powstrzymać model przed zmianą cytatu?

Oznacz źródła jako dowody, zezwól na cudzysłów tylko wokół dokładnego tekstu źródła i uruchamiaj przedstawione wyżej sprawdzenie cytatów przy każdej odpowiedzi.

Czy utrzymanie tego samego bloku źródeł gwarantuje trafienie w cache?

Nie. Utrzymuj go stabilnym, by ponowne użycie było możliwe, ale planuj budżet bez cache, dopóki zwrócone zużycie cache i rozliczony koszt nie pokażą trafienia. Wpis w cache to optymalizacja rozliczeń; nie sprawia, że redakcja jest wierniejsza.

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