Pular para o conteúdo principal

Edite documentos longos com Claude Opus 4.5 e 4.6 sem perder a fonte

Monte um pacote de fontes, preserve citações e autoria, faça revisões pontuais e planeje quatro categorias de tokens para uma edição longa que funcione.

Autor
Lydia
Publicado
Leitura
16 min de leitura
Atualizado
Uma editora adulta e um artesão adulto do vidro, ambos inventados, conversam sobre um pequeno frasco âmbar na bancada de uma oficina; ilustração editorial independente.

A transcrição da sua entrevista diz uma coisa, uma correção posterior diz outra e o rascunho do perfil diz uma terceira. Você quer que o Claude conserte o parágrafo sem reescrever em silêncio uma citação nem atribuir um crédito à pessoa errada. Isso é um problema de integridade das fontes antes de ser um problema de prompt. O fluxo prático é rotular as evidências, pedir um reparo pontual e conferir o que mudou.

Entre essas duas versões, use o Opus 4.5 quando o seu pacote de edição couber no limite de entrada de 198.000 tokens; use o Opus 4.6 quando o pacote for maior ou você precisar de mais de 32.768 tokens de saída. O 4.5 é o mais barato dos dois. Mantenha o bloco de fontes idêntico entre as chamadas. Se o uso retornado informar tokens em cache, as passagens repetidas custam menos; até lá, faça o orçamento sem cache.

As rotas de chat do Opus da SpicyAPI no formato OpenAI não aceitam na requisição a edição de contexto nativa da Anthropic (context_management, que apaga resultados de ferramentas e blocos de raciocínio antigos): o campo é rejeitado com um erro 400, assim como response_format. Se foi por esse recurso que você veio, gerencie o contexto por conta própria (veja o FAQ). Se você veio para editar documentos, continue lendo.

Qual versão do Opus para qual pacote

Contrato atualOpus 4.5Opus 4.6
ID do modeloanthropic/claude-opus-4.5/chatanthropic/claude-opus-4.6/chat
Limite de entrada198.000 tokens1.000.000 de tokens
Saída máxima32.768 tokens128.000 tokens
Limite de saída padrão4.096 tokens4.096 tokens
Níveis de esforçolow, medium, highlow, medium, high, max
Esforço padrãomediummedium
Modalidades de entradaTexto e imagensTexto e imagens
USD por milhão de entrada / em cache / saída$4,50 / $0,45 / $22,50$5 / $0,50 / $25
USD por milhão de gravações em cache$5,50$6,25

Veja os preços e limites em Opus 4.5 e Opus 4.6. Ambos aceitam temperature (de 0 a 1) e top_p (de 0,01 a 1); ambos rejeitam response_format, então use uma chamada de ferramenta forçada quando precisar de argumentos estruturados e valide esses argumentos com o seu esquema antes de aceitá-los. Ambos aceitam partes image_url, mas não partes de PDF nem de arquivo: extraia o texto ou renderize as páginas relevantes como imagens. Este tutorial usa texto para que as citações possam ser conferidas com a fonte exata. Uma requisição com max_tokens acima de 32.768 falha na validação no 4.5.

Uma rota mais nova, o Claude Opus 5.5 (anthropic/claude-opus-5.5/chat), tem a mesma janela de 1.000.000 de tokens e o mesmo teto de saída de 128.000 tokens, a $3,60 de entrada / $18 de saída por milhão, abaixo das duas versões aqui; ele não tem temperature nem top_p e só permite escolha de ferramenta automática ou desativada. Em uma integração nova, verifique-o primeiro se você puder trabalhar sem controles de amostragem e sem chamada de função forçada.

As duas rotas aparecem como sem censura na SpicyAPI. Para editar ficção adulta, identifique o contexto ficcional e o trecho exato que pode mudar, para que a requisição continue focada na edição.

O esforço é gasto em tokens de saída. Comece em medium, mantenha a fonte e as instruções fixas e aumente o esforço só quando você puder apontar uma falha específica de conciliação, como uma cronologia que o modelo errou. Isso também deixa visível o efeito da mudança.

Separe a fonte histórica da correção

Veja um pacote ficcional compacto para o perfil de uma autora:

  • S1, entrevista gravada: Ada diz: “Mostramos o protótipo em 2018.”
  • S2, correção escrita posterior: Ada diz que conferiu o calendário: a primeira demonstração pública foi em fevereiro de 2019. O contrato de aluguel da oficina começou em 2018.
  • S3, nota de um colaborador: Theo entrou depois da demonstração. Mais tarde, ele aprimorou o braço do instrumento; não projetou o protótipo original.
  • Rascunho P1: “Ada e Theo apresentaram em 2018 o protótipo que projetaram juntos, no ano em que abriram a oficina.”

A edição precisa de dois reparos: a data da demonstração e o papel de Theo. A citação da entrevista é um registro histórico, então trocar em silêncio o “2018” citado por “2019” criaria uma citação que ninguém disse. Mantenha a citação e coloque a correção na narração. Um alvo escrito por uma pessoa seria: “Ada fez a primeira demonstração do protótipo em fevereiro de 2019, depois de alugar a oficina em 2018. Theo entrou mais tarde e aprimorou o braço do instrumento.” Ele não afirma que o negócio abriu em 2018, porque a data de um aluguel, sozinha, não estabelece uma data de abertura.

A mesma estrutura funciona para ficção. Troque S1 a S3 por fatos aprovados da história, separe o que um personagem acredita por engano do que o narrador sabe e nomeie o trecho que pode mudar. “Eles se reconciliam no capítulo doze” não autoriza uma edição no capítulo oito que elimine o conflito cedo demais.

Experimente primeiro no Playground

  1. Abra o Claude Opus 4.5 e mude para o Playground.
  2. Cole os registros de fontes S1–S3 e o rascunho P1 abaixo, pedindo um texto de substituição e os IDs de fonte de cada correção.
  3. Confira se a demonstração pública passa para 2019 sem alterar a entrevista citada nem inventar para Theo um crédito de projeto original.

Uma requisição que você pode conferir depois

O script abaixo marca cada fonte e cada parágrafo do rascunho com um ID, coloca o material estável primeiro e a tarefa por último, e depois confere a resposta. A conferência é mecânica: qualquer texto que o modelo coloque entre aspas deve ser uma substring exata das fontes; caso contrário, é sinalizado como citação alterada. Ele para diante de respostas incompletas ou vazias e imprime a edição proposta para revisão. Defina SPICY_API_KEY a partir de API Keys; a chamada usa a interface Chat Completions da 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.")

Uma resposta que mantém a citação da entrevista passa; uma que cita “Mostramos o protótipo em 2019.” é sinalizada. A conferência só vê texto entre aspas duplas; ela não detecta uma data inventada sem aspas, um crédito atribuído errado nem uma frase da fonte reescrita sem aspas. Revise esses pontos também contra S1–S3. Ela pega a falha mais difícil de ver a olho nu em um manuscrito longo: uma citação alterada em poucos caracteres.

Dois detalhes da requisição importam. A mensagem de sistema diz o que é evidência e o que é editável, de modo que S1 fica explicitamente fora da tarefa de reescrita. E a tarefa vem depois das fontes, então o prefixo compartilhado continua idêntico de uma passagem para outra. Este exemplo é curto o bastante para uma chamada limitada, sem streaming. Um pacote de fontes maior ou uma resposta com esforço alto pode ultrapassar o limite de rede de cerca de 100 segundos; use streaming nesses trabalhos. Aumentar o timeout do cliente não amplia esse limite.

Deixe um Agent preparar a chamada

Para edições repetidas baseadas em fontes, peça ao seu Agent de programação que use o Skill da SpicyAPI: “Read anthropic/claude-opus-4.5/chat, then adapt the example to my input; show the request before running it.” A consulta pela CLI é spicyapi models get anthropic/claude-opus-4.5/chat --json; pelo MCP, é spicyapi_model_get com model: "anthropic/claude-opus-4.5/chat". As chamadas de chat usam um cliente compatível ou a API de chat; os comandos de tarefas de mídia não geram respostas de chat.

Manuscritos longos: peça as localizações antes das substituições

Para um reparo no nível da frase, envie o parágrafo e as evidências que o governam. Para a edição de um capítulo, acrescente as transições vizinhas e os fatos usados naquele capítulo. Use a janela maior quando a pergunta abranger o manuscrito inteiro: onde muda a profissão de um personagem, se uma promessa é cumprida, quais menções a uma data precisam de revisão.

Em uma passagem pelo manuscrito inteiro, separe a descoberta da revisão:

  1. Encontre as ocorrências. Peça uma lista, não uma reescrita: “List every passage that states the demonstration year, quote the sentence, and classify it as narration, direct quotation or a character’s belief.” Uma substituição global apagaria distinções de que a história depende.
  2. Escolha as edições. Dê aos parágrafos IDs estáveis (P42, não “o parágrafo sobre o aluguel”), faça retornar esses IDs e compare cada substituição com o original.
  3. Deixe em aberto os fatos não resolvidos. Onde as fontes não esclarecem um ponto, peça uma pergunta em vez da data mais plausível.

Para erros de continuidade, como cor dos olhos que muda, lugares inconsistentes ou um personagem que sabe algo cedo demais, mantenha uma bíblia da história e envie as entradas relevantes com cada capítulo.

Se o manuscrito passar de 198.000 tokens de entrada no 4.5, divida por dependência, não por tamanho. Capítulos que compartilham uma questão de continuidade pertencem à mesma requisição; cortá-los ao meio pode remover a evidência que decide a edição. Se isso não for possível, passe para o 4.6.

Editar um capítulo sem achatar a voz

Reparo factual e polimento de prosa são tarefas diferentes. Uma passagem factual deve identificar os erros de data e de crédito antes de mexer no ritmo. Se você pedir ao mesmo tempo “um perfil profissional polido”, o modelo pode remover a hesitação da entrevista, trocar a fraseologia característica da autora ou do autor e enterrar a correção de verdade em um parágrafo totalmente novo.

Tenha à mão um exemplo curto da voz que você quer. Por exemplo: “A oficina ainda era uma sala cheia de ferramentas emprestadas. Ada chamava de laboratório. Theo chamava de fria.” As características úteis dessa amostra são frases curtas, objetos concretos e discordância discreta. Elas são mais acionáveis do que “literário, mas acessível”. Peça que a edição mantenha essas características e deixe clara a cronologia corrigida.

Uma reescrita feita por uma pessoa poderia ser:

O aluguel começou em 2018. Ada mostrou o protótipo ao público em fevereiro do ano seguinte, quando a oficina ainda era uma sala cheia de ferramentas emprestadas. Theo entrou mais tarde. O braço do instrumento leva as mudanças dele; o protótipo original, não.

Essa é uma escolha editorial ilustrativa, não uma saída do Opus. Ela corrige os fatos sem transformar Theo em cofundador nem inventar quando a oficina abriu. Também mostra que preservar a voz não significa preservar uma afirmação falsa.

Em um romance, separe três achados de aparência parecida. Um personagem que diz “você nunca voltou” pode estar fazendo uma acusação deliberada. Uma narração que diz que o personagem nunca voltou pode contradizer um capítulo anterior. Uma pergunta em aberto sobre se a volta aconteceu pode ser uma nota da autora ou do autor. Peça ao Opus que classifique o trecho antes de substituí-lo. Caso contrário, uma limpeza factual automática pode apagar um mal-entendido intencional que move o relacionamento.

Aplique a correção onde ela realmente pertence

Em um perfil mais longo, o ano errado pode aparecer na abertura, na cronologia, em uma legenda e na transcrição da entrevista. Essas ocorrências exigem tratamentos diferentes. Revise a narração explicativa e a cronologia a partir da correção aprovada. Mantenha a citação gravada intacta e acrescente contexto. Confira uma legenda com a data documentada da própria imagem: a correção do evento não prova que toda fotografia da oficina foi tirada em 2019.

Em um livro, o equivalente é corrigir a narração canônica preservando o conhecimento limitado de um personagem até a revelação planejada. Peça uma tabela com localização, frase existente, fonte e mudança proposta. Use essa lista para aprovar revisões e depois peça apenas as substituições escolhidas. Isso transforma uma janela de contexto longa em um auxílio de edição com mudanças rastreáveis, em vez de um convite caro para reescrever tudo.

Custo: quatro categorias de tokens, com um exemplo de passagens repetidas

A SpicyAPI cobra separadamente entrada sem cache, entrada em cache, gravações em cache e saída. Uma única passagem sobre 100.000 tokens de entrada com 5.000 de saída custa $0,5625 no Opus 4.5 e $0,625 no Opus 4.6. Tokens de raciocínio são cobrados como saída.

Editar raramente é uma passagem só, e o pacote de fontes é a parte que se repete. A entrada em cache custa cerca de um décimo da tarifa de entrada, desde que o prefixo compartilhado seja idêntico entre as chamadas e o que varia fique no final (a página do Opus 4.6 diz para mantê-lo idêntico byte a byte). O esquema da requisição não expõe nenhum campo de controle de cache. Procure prompt_tokens_details.cached_tokens no uso retornado; manter o prefixo inalterado não garante um acerto. O prompt caching nativo da Anthropic tem regras próprias de TTL e de prefixo mínimo; elas não definem a duração do cache nem a elegibilidade desta rota hospedada. Se a primeira chamada gravar o pacote no cache e as cinco seguintes o lerem, seis passagens sobre o mesmo pacote de 100.000 tokens com 5.000 tokens de saída cada custam:

Seis passagensOpus 4.5Opus 4.6
Sem cache$3,375$3,75
A primeira grava, cinco leem$1,45$1,625

Isso é uma economia de cerca de 57 por cento quando essas categorias exatas de tokens se aplicam. Mudar S2 ou mover material para antes de um prefixo reutilizável pode reduzir ou eliminar a correspondência com o cache. Faça o orçamento pela primeira linha e leia o uso e o custo das suas primeiras chamadas para ver se a segunda se aplicou.

Com 400.000 tokens de entrada e 5.000 de saída, o pacote já não cabe no Opus 4.5; o Opus 4.6 custa $2,125 sem cache. Se uma resposta foi cortada, aumentar max_tokens resolve a saída; não adianta nada quando o pacote de entrada omitiu a fonte decisiva.

Conserte a falha na causa

ResultadoPróxima ação
A data corrigida aparece dentro de uma citação históricaRestaure a citação e acrescente a correção na narração; a conferência de citações vai sinalizar isso
Theo vira coprojetista originalReenvie S3 e substitua apenas a frase que lhe atribui o papel
A resposta para antes da lista de mudanças (finish_reason é length)Restrinja a tarefa ou aumente max_tokens até o teto do modelo
A requisição rejeita uma parte de imagem ou PDFPara imagens, confira o formato de image_url e se a URL é acessível. Para partes de PDF ou arquivo, extraia o texto primeiro
Você precisa de JSON na respostaNão existe response_format; defina e force uma ferramenta com tool_choice e depois valide os argumentos retornados
O analisador de JSON falhaValide e repare a saída de texto no seu código, ou passe para a chamada de ferramenta forçada acima

Por qual começar

Para um fluxo 4.x existente, use o 4.5 em pacotes abaixo de 198.000 tokens de entrada e o 4.6 quando um manuscrito conectado ou a resposta necessária ultrapassar os limites dele. Para uma construção nova sem requisitos de amostragem ou de ferramenta forçada, o Opus 5.5 oferece preço por token menor e a janela maior; a capacidade sozinha não decide qual modelo preserva melhor a sua fonte. Seja qual for a sua escolha, os hábitos que protegem a fonte são os mesmos: IDs em cada trecho, citações que precisam permanecer literais, um prefixo estável e uma conferência mecânica da resposta.

FAQ

O Opus 4.6 edita melhor que o 4.5, e qual modelo Claude é o melhor para edição de textos longos?

As diferenças mensuráveis são capacidade e preço: o 4.6 lê 1.000.000 de tokens e escreve 128.000, e custa cerca de 11 por cento a mais por token de entrada. Escolha-o por esses limites. Para uma construção nova, o Opus 5.5 é mais barato que os dois e tem a janela maior, desde que você não precise de controles de amostragem nem de escolha de ferramenta forçada.

O que fazer quando o contexto está cheio, ou sem a edição de contexto nativa?

Comece uma requisição nova: mantenha o pacote de fontes primeiro e inalterado, troque os turnos antigos por um resumo curto das decisões já tomadas (quais datas foram corrigidas, quais trechos estão prontos) e coloque a próxima tarefa por último. Descartar turnos antigos não custa nada; descartar uma fonte custa a edição.

Como impedir que ele altere uma citação?

Marque as fontes como evidência, permita aspas apenas em torno de texto exato da fonte e execute a conferência de citações acima em cada resposta.

Manter o mesmo bloco de fontes garante um acerto de cache?

Não. Mantenha-o estável para tornar o reaproveitamento possível, mas faça o orçamento sem cache até que o uso de cache retornado e a cobrança final mostrem um acerto. Uma entrada de cache é uma otimização de cobrança; ela não torna uma edição mais fiel.

Também em English · 日本語 · 한국어 · Deutsch · Français · Español · Русский · Italiano · Polski

Experimente você mesmo

Você paga só pelo que executar — sem plano e sem assinatura.

Feito com MiniMax H3 · ByteDance Seedance 2.0 Fast