Перейти к основному контенту

Редактируйте длинные документы с Claude Opus 4.5 и 4.6, не теряя источник

Соберите пакет источников, сохраните цитаты и авторство, вносите точечные правки и заложите бюджет на четыре категории токенов для надежной редактуры.

Автор
Lydia
Опубликовано
Время чтения
13 мин чтения
Обновлено
Вымышленные взрослая редактор и взрослый стеклодув обсуждают маленькую янтарную бутылку у верстака в мастерской; независимая редакционная иллюстрация.

В расшифровке вашего интервью сказано одно, в более поздней поправке другое, а в черновике профиля третье. Вы хотите, чтобы Claude исправил абзац, не переписав втихую цитату и не приписав заслугу не тому человеку. Это прежде всего вопрос достоверности источников, и лишь потом вопрос промпта. На практике нужно пометить доказательства, запросить узкую правку и проверить, что изменилось.

Из этих двух версий берите Opus 4.5, если ваш пакет для редактуры укладывается в лимит входа 198 000 токенов; берите Opus 4.6, если пакет больше или вам нужно более 32 768 токенов на выходе. 4.5 дешевле из двух. Между вызовами держите блок источников неизменным. Если в возвращаемом usage есть кэшированные токены, повторные проходы обходятся дешевле; пока их нет, закладывайте бюджет без кэша.

Чат-маршруты Opus в формате OpenAI на SpicyAPI не принимают в запросе нативное редактирование контекста Anthropic (context_management, которое очищает старые результаты инструментов и блоки thinking): поле отклоняется с ошибкой 400, как и response_format. Если вы пришли ради этой функции, управляйте контекстом сами (см. FAQ). Если вы пришли редактировать документы, читайте дальше.

Какая версия Opus для какого пакета

Текущий контрактOpus 4.5Opus 4.6
ID моделиanthropic/claude-opus-4.5/chatanthropic/claude-opus-4.6/chat
Лимит входа198 000 токенов1 000 000 токенов
Максимум на выходе32 768 токенов128 000 токенов
Лимит выхода по умолчанию4 096 токенов4 096 токенов
Уровни effortlow, medium, highlow, medium, high, max
Effort по умолчаниюmediummedium
Модальности входаТекст и изображенияТекст и изображения
USD за миллион: вход / кэш / выход$4.50 / $0.45 / $22.50$5 / $0.50 / $25
USD за миллион записей в кэш$5.50$6.25

Цены и лимиты смотрите на страницах Opus 4.5 и Opus 4.6. Обе принимают temperature (от 0 до 1) и top_p (от 0,01 до 1); обе отклоняют response_format, поэтому, когда нужны структурированные аргументы, используйте принудительный вызов инструмента и проверяйте эти аргументы по своей схеме, прежде чем принимать их. Обе принимают части image_url, но не принимают части PDF и файлов: извлеките текст или отрендерите нужные страницы как изображения. В этом руководстве используется текст, чтобы цитаты можно было сверить с точным источником. Запрос с max_tokens выше 32 768 не проходит валидацию на 4.5.

Более новый маршрут, Claude Opus 5.5 (anthropic/claude-opus-5.5/chat), имеет то же окно в 1 000 000 токенов и тот же потолок выхода в 128 000 токенов при цене $3.60 за вход / $18 за выход на миллион, то есть ниже обеих версий здесь; у него нет temperature и top_p, и он допускает только автоматический или отключенный выбор инструментов. Для новой интеграции проверьте его первым, если можете обойтись без параметров сэмплирования и принудительного вызова функции.

Оба маршрута на SpicyAPI указаны как без цензуры. При редактуре художественной прозы для взрослых обозначьте вымышленный контекст и точный фрагмент, который можно менять, чтобы запрос оставался сосредоточенным на редактуре.

Effort расходуется в токенах выхода. Начните с medium, держите источник и инструкции неизменными и повышайте effort, только когда можете указать конкретный сбой согласования, например неверно выстроенную моделью хронологию. Так заодно виден эффект изменения.

Отделите исторический источник от поправки

Вот компактный вымышленный пакет для профиля автора:

  • S1, записанное интервью: Ада говорит: «Мы показали прототип в 2018 году».
  • S2, более поздняя письменная поправка: Ада говорит, что проверила календарь: первая публичная демонстрация состоялась в феврале 2019 года. Аренда мастерской началась в 2018 году.
  • S3, заметка участника: Тео присоединился после демонстрации. Позже он доработал гриф инструмента; оригинальный прототип он не проектировал.
  • Черновик P1: «Ада и Тео представили в 2018 году свой совместно спроектированный прототип, в тот год, когда открыли мастерскую».

Редактуре нужны две правки: дата демонстрации и роль Тео. Цитата из интервью является историческим документом, поэтому молчаливая замена процитированного «2018» на «2019» создала бы цитату, которую никто не произносил. Сохраните цитату, а поправку внесите в повествование. Целевой текст, написанный человеком: «Ада впервые публично показала прототип в феврале 2019 года, после того как в 2018 году арендовала мастерскую. Тео присоединился позже и доработал гриф инструмента». Он не утверждает, что дело открылось в 2018 году, потому что одной даты аренды недостаточно, чтобы установить дату открытия.

Та же структура работает и для художественной прозы. Замените S1–S3 утвержденными фактами истории, отделите то, во что ошибочно верит персонаж, от того, что знает рассказчик, и назовите фрагмент, который можно менять. «Они примиряются в двенадцатой главе» не разрешает правку в восьмой главе, которая убирает конфликт слишком рано.

Сначала попробуйте в Playground

  1. Откройте Claude Opus 4.5 и переключитесь на Playground.
  2. Вставьте приведенные ниже записи источников S1–S3 и черновик P1, попросив текст замены и ID источников для каждой поправки.
  3. Проверьте, что публичная демонстрация сдвигается на 2019 год без изменения процитированного интервью и без выдуманного для Тео авторства оригинального дизайна.

Запрос, который можно проверить после ответа

Скрипт ниже помечает ID каждый источник и каждый абзац черновика, ставит стабильный материал первым, а задачу последней, а затем проверяет ответ. Проверка механическая: любой текст, который модель берет в кавычки, должен быть точной подстрокой источников, иначе он помечается как измененная цитата. Скрипт останавливается на неполных или пустых ответах и печатает предложенную правку для просмотра. Задайте SPICY_API_KEY из API Keys; вызов использует интерфейс 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.")

Ответ, сохраняющий цитату из интервью, проходит проверку; ответ, цитирующий «Мы показали прототип в 2019 году.», помечается. Проверка видит только текст в двойных кавычках; она не обнаружит выдуманную дату без кавычек, неверно приписанную заслугу или фразу источника, переписанную без кавычек. Сверьте и это с S1–S3. Она ловит сбой, который в длинной рукописи сложнее всего заметить глазом: цитату, измененную на несколько символов.

Важны две детали запроса. Системное сообщение указывает, что является доказательством, а что можно править, поэтому S1 прямо исключен из задачи переписывания. А задача стоит после источников, так что общий префикс остается идентичным от прохода к проходу. Этот пример достаточно короткий для ограниченного вызова без стриминга. Более длинный пакет источников или ответ при высоком effort может превысить сетевой лимит около 100 секунд; для таких задач используйте стриминг. Увеличение таймаута клиента этот лимит не продлевает.

Пусть Agent подготовит вызов

Для повторяющихся правок по источникам попросите своего кодового Agent воспользоваться Skill SpicyAPI: «Read anthropic/claude-opus-4.5/chat, then adapt the example to my input; show the request before running it.» Запрос через CLI: spicyapi models get anthropic/claude-opus-4.5/chat --json; через MCP: spicyapi_model_get с model: "anthropic/claude-opus-4.5/chat". Чат-вызовы используют совместимый клиент или API чата; команды медиазадач не генерируют ответы чата.

Длинные рукописи: сначала просите места, потом замены

Для правки на уровне предложения отправьте абзац и доказательства, которые им управляют. Для правки главы добавьте соседние переходы и факты, использованные в этой главе. Большее окно берите, когда вопрос охватывает всю рукопись: где меняется профессия персонажа, выполняется ли обещание, какие упоминания даты нужно проверить.

Для прохода по всей рукописи разделите поиск и правку:

  1. Найдите вхождения. Просите список, а не переписывание: «List every passage that states the demonstration year, quote the sentence, and classify it as narration, direct quotation or a character’s belief.» Глобальная замена стерла бы различия, от которых зависит история.
  2. Выберите правки. Дайте абзацам стабильные ID (P42, а не «абзац про аренду»), пусть они возвращаются в ответе, и сравнивайте каждую замену с оригиналом.
  3. Оставьте нерешенные факты открытыми. Там, где источники не решают вопрос, пусть модель вернет вопрос, а не самую правдоподобную дату.

Для ошибок непрерывности, таких как меняющийся цвет глаз, несогласованные места или персонаж, знающий что-то слишком рано, ведите библию истории и отправляйте нужные записи с каждой главой.

Если рукопись превышает 198 000 токенов входа на 4.5, делите по зависимостям, а не по размеру. Главы, связанные одним вопросом непрерывности, должны быть в одном запросе; разрезав их пополам, можно потерять доказательство, которое определяет правку. Если это невозможно, переходите на 4.6.

Редактура главы без сглаживания ее голоса

Исправление фактов и шлифовка прозы — это разные задачи. Фактический проход должен выявить ошибки дат и заслуг, прежде чем менять ритм. Если одновременно попросить «отполированный профессиональный профиль», модель может убрать из интервью колебания, заменить характерные обороты автора и похоронить настоящую поправку в совершенно новом абзаце.

Держите под рукой короткий пример нужного голоса. Например: «Мастерская пока что была комнатой, полной одолженных инструментов. Ада называла ее лабораторией. Тео называл ее холодной». Полезные признаки этого образца: короткие фразы, конкретные предметы и сдержанное разногласие. Их проще применить, чем «литературно, но доступно». Попросите, чтобы правка сохранила эти признаки и при этом ясно показала исправленную хронологию.

Переписанный человеком вариант мог бы быть таким:

Аренда началась в 2018 году. Ада показала прототип публике в феврале следующего года, когда мастерская еще была комнатой, полной одолженных инструментов. Тео присоединился позже. Гриф инструмента несет его изменения; оригинальный прототип нет.

Это иллюстративное редакторское решение, а не вывод Opus. Оно исправляет факты, не делая Тео сооснователем и не выдумывая, когда мастерская открылась. Оно также показывает, что сохранение голоса не означает сохранение ложного утверждения.

В любовном романе разделяйте три похожих на вид находки. Персонаж, говорящий «ты так и не вернулся», может делать намеренное обвинение. Повествование, в котором сказано, что персонаж так и не вернулся, может противоречить предыдущей главе. Нерешенный вопрос о том, состоялось ли возвращение, может быть заметкой автора. Попросите Opus классифицировать фрагмент, прежде чем заменять его. Иначе автоматическая фактическая чистка может стереть намеренное недоразумение, которое движет отношения.

Применяйте поправку там, где она действительно нужна

В более длинном профиле неверный год может встретиться во вступлении, на хронологической шкале, в подписи к фото и в расшифровке интервью. Эти вхождения требуют разного обращения. Правьте поясняющее повествование и хронологию по утвержденной поправке. Записанную цитату оставьте нетронутой и добавьте контекст. Подпись сверяйте с документированной датой самого снимка: поправка о событии не доказывает, что каждое фото мастерской сделано в 2019 году.

Для книги эквивалент состоит в том, чтобы исправлять основное повествование, сохраняя ограниченное знание персонажа до запланированного раскрытия. Попросите таблицу с местом, существующим предложением, источником и предлагаемым изменением. По этому списку утверждайте правки, а затем запрашивайте только выбранные замены. Так длинное контекстное окно становится помощником в редактуре с прослеживаемыми изменениями, а не дорогим приглашением переписать все.

Стоимость: четыре категории токенов и пример повторных проходов

SpicyAPI тарифицирует отдельно вход без кэша, вход из кэша, записи в кэш и выход. Один проход по 100 000 токенов входа с 5 000 токенов выхода стоит $0.5625 на Opus 4.5 и $0.625 на Opus 4.6. Токены рассуждений тарифицируются как выход.

Редактура редко ограничивается одним проходом, и повторяется именно пакет источников. Кэшированный вход стоит около десятой части тарифа входа при условии, что общий префикс одинаков между вызовами, а то, что меняется, стоит в конце (страница Opus 4.6 требует держать его идентичным побайтно). Схема запроса не предоставляет поля управления кэшем. Ищите prompt_tokens_details.cached_tokens в возвращаемом usage; неизменный префикс не гарантирует попадания. У нативного prompt caching Anthropic свои правила TTL и минимального префикса; они не определяют ни срок жизни кэша, ни применимость к этому размещенному маршруту. Если первый вызов запишет пакет в кэш, а следующие пять прочитают его, шесть проходов по одному и тому же пакету в 100 000 токенов с 5 000 токенов выхода каждый обойдутся в:

Шесть проходовOpus 4.5Opus 4.6
Без кэша$3.375$3.75
Первый записывает, пять читают$1.45$1.625

Это экономия около 57 процентов, когда применимы именно эти категории токенов. Изменение S2 или перенос материала перед повторно используемым префиксом может уменьшить или убрать совпадение с кэшем. Закладывайте бюджет по первой строке и смотрите usage и стоимость первых вызовов, чтобы понять, сработала ли вторая.

При 400 000 токенов входа и 5 000 токенов выхода пакет уже не помещается в Opus 4.5; Opus 4.6 стоит $2.125 без кэша. Если ответ оборвался, увеличение max_tokens исправит выход; оно не поможет, если во входном пакете не хватало решающего источника.

Исправляйте сбой в его причине

РезультатСледующее действие
Исправленная дата попала внутрь исторической цитатыВосстановите цитату и добавьте поправку в повествование; проверка цитат это пометит
Тео становится оригинальным соавтором дизайнаОтправьте S3 повторно и замените только предложение, приписывающее ему эту роль
Ответ обрывается до списка изменений (finish_reason равно length)Сузьте задачу или повысьте max_tokens до потолка модели
Запрос отклоняет часть с изображением или PDFДля изображений проверьте форму image_url и доступность URL. Для частей PDF или файлов сначала извлеките текст
Нужен JSON из ответаПараметра response_format нет; определите инструмент и принудительно вызовите его через tool_choice, затем проверьте возвращенные аргументы
Парсер JSON падаетПроверяйте и исправляйте текстовый вывод в своем коде или перейдите на принудительный вызов инструмента, описанный выше

С какой начать

Для существующего процесса на 4.x используйте 4.5 для пакетов менее 198 000 токенов входа и 4.6, когда связная рукопись или нужный ответ выходят за его лимиты. Для новой сборки без требований к сэмплированию и принудительным инструментам Opus 5.5 дает более низкую цену за токен и большее окно; одной емкостью не решается, какая модель лучше сохранит ваш источник. Что бы вы ни выбрали, привычки, защищающие источник, одни и те же: ID у каждого фрагмента, цитаты, которые должны остаться дословными, стабильный префикс и механическая проверка ответа.

FAQ

Редактирует ли Opus 4.6 лучше, чем 4.5, и какая модель Claude лучше всего подходит для редактуры длинных текстов?

Измеримые различия — это емкость и цена: 4.6 читает 1 000 000 токенов и пишет 128 000, а стоит примерно на 11 процентов больше за токен входа. Выбирайте ее ради этих лимитов. Для новой сборки Opus 5.5 дешевле обеих и имеет большее окно, если вам не нужны параметры сэмплирования и принудительный выбор инструмента.

Что делать, когда контекст заполнен, или без нативного редактирования контекста?

Начните новый запрос: держите пакет источников первым и неизменным, замените старые реплики коротким резюме уже принятых решений (какие даты исправлены, какие фрагменты готовы) и поставьте следующую задачу последней. Отбросить старые реплики ничего не стоит; отбросить источник стоит вам правки.

Как не дать модели изменить цитату?

Пометьте источники как доказательства, разрешите кавычки только вокруг точного текста источника и запускайте описанную выше проверку цитат на каждом ответе.

Гарантирует ли неизменный блок источников попадание в кэш?

Нет. Держите его стабильным, чтобы повторное использование было возможным, но закладывайте бюджет без кэша, пока возвращаемое использование кэша и итоговое списание не покажут попадание. Запись в кэше — это оптимизация тарификации; она не делает правку более точной.

Другие языки English · 日本語 · 한국어 · Deutsch · Français · Español · Português (Brasil) · Italiano · Polski