Aller au contenu principal

Révisez de longs documents avec Claude Opus 4.5 et 4.6 sans perdre la source

Préparez un dossier de sources, gardez citations et attributions, limitez les retouches et budgétez quatre catégories de tokens pour une révision fiable.

Auteur
Lydia
Publié
Lecture
17 min de lecture
Mis à jour
Une éditrice adulte et un artisan verrier adulte, personnages fictifs, discutent d’un petit flacon ambré sur un établi d’atelier ; illustration éditoriale indépendante.

Votre transcription d’entretien dit une chose, une correction ultérieure en dit une autre et le brouillon du portrait en dit une troisième. Vous voulez que Claude répare le paragraphe sans réécrire discrètement une citation ni attribuer un mérite à la mauvaise personne. C’est d’abord un problème d’intégrité des sources, avant d’être un problème de prompt. La méthode pratique consiste à étiqueter les preuves, à demander une réparation ciblée et à vérifier ce qui a changé.

Entre ces deux versions, choisissez Opus 4.5 si votre dossier d’édition tient dans sa limite d’entrée de 198 000 tokens ; choisissez Opus 4.6 si le dossier est plus volumineux ou si vous avez besoin de plus de 32 768 tokens de sortie. La 4.5 est la moins chère des deux. Gardez le bloc de sources identique d’un appel à l’autre. Si l’usage renvoyé indique des tokens en cache, les passes répétées coûtent moins cher ; budgétez sans cache tant que ce n’est pas le cas.

Les routes de chat Opus de SpicyAPI au format OpenAI n’acceptent pas dans la requête l’édition de contexte native d’Anthropic (context_management, qui efface les anciens résultats d’outils et blocs de réflexion) : le champ est rejeté avec une erreur 400, tout comme response_format. Si c’est cette fonction que vous cherchiez, gérez le contexte vous-même (voir la FAQ). Si vous veniez pour éditer des documents, poursuivez la lecture.

Quelle version d’Opus pour quel dossier

Contrat actuelOpus 4.5Opus 4.6
ID du modèleanthropic/claude-opus-4.5/chatanthropic/claude-opus-4.6/chat
Limite d’entrée198 000 tokens1 000 000 tokens
Sortie maximale32 768 tokens128 000 tokens
Limite de sortie par défaut4 096 tokens4 096 tokens
Niveaux d’effortlow, medium, highlow, medium, high, max
Effort par défautmediummedium
Modalités d’entréeTexte et imagesTexte et images
USD par million d’entrée / en cache / de sortie$4.50 / $0.45 / $22.50$5 / $0.50 / $25
USD par million d’écritures en cache$5.50$6.25

Consultez les prix et les limites sur Opus 4.5 et Opus 4.6. Les deux acceptent temperature (de 0 à 1) et top_p (de 0,01 à 1) ; les deux rejettent response_format, donc utilisez un appel d’outil forcé lorsque vous avez besoin d’arguments structurés, puis validez ces arguments avec votre schéma avant de les accepter. Les deux acceptent des parties image_url, mais pas de parties PDF ni fichier : extrayez le texte ou rendez les pages utiles sous forme d’images. Ce tutoriel utilise du texte afin que les citations puissent être vérifiées par rapport à la source exacte. Une requête dont max_tokens dépasse 32 768 échoue à la validation sur la 4.5.

Une route plus récente, Claude Opus 5.5 (anthropic/claude-opus-5.5/chat), offre la même fenêtre de 1 000 000 de tokens et le même plafond de sortie de 128 000 tokens, à $3.60 d’entrée / $18 de sortie par million, soit moins que les deux versions ci-dessus ; elle n’a ni temperature ni top_p, et n’autorise que le choix d’outil automatique ou désactivé. Pour une nouvelle intégration, examinez-la en premier si vous pouvez vous passer des paramètres d’échantillonnage et de l’appel de fonction forcé.

Les deux routes sont indiquées comme sans censure sur SpicyAPI. Pour éditer de la fiction pour adultes, précisez le contexte fictif et le passage exact à modifier, afin que la requête reste centrée sur l’édition.

L’effort est dépensé en tokens de sortie. Commencez à medium, gardez la source et les consignes fixes, et n’augmentez l’effort que lorsque vous pouvez désigner un échec précis de réconciliation, par exemple une chronologie que le modèle a mal établie. Cela rend aussi visible l’effet du changement.

Séparer la source historique de la correction

Voici un dossier fictif et compact pour le portrait d’une autrice :

  • S1, entretien enregistré : Ada dit : « Nous avons présenté le prototype en 2018. »
  • S2, correction écrite ultérieure : Ada dit avoir vérifié le calendrier : la première démonstration publique a eu lieu en février 2019. Le bail de l’atelier a commencé en 2018.
  • S3, note d’un contributeur : Theo a rejoint l’équipe après la démonstration. Il a ensuite affiné le manche de l’instrument ; il n’a pas conçu le prototype d’origine.
  • Brouillon P1 : « Ada et Theo ont dévoilé en 2018 leur prototype conçu en commun, l’année où ils ont ouvert l’atelier. »

La révision exige deux réparations : la date de la démonstration et le rôle de Theo. La citation de l’entretien est un document historique ; remplacer discrètement le « 2018 » cité par « 2019 » créerait une citation que personne n’a prononcée. Conservez la citation et placez la correction dans le récit. Une cible rédigée par un humain serait : « Ada a présenté le prototype pour la première fois en public en février 2019, après avoir loué l’atelier en 2018. Theo les a rejoints plus tard et a affiné le manche de l’instrument. » Elle n’affirme pas que l’activité a ouvert en 2018, car une date de bail n’établit pas à elle seule une date d’ouverture.

La même structure fonctionne pour la fiction. Remplacez S1 à S3 par des faits d’histoire approuvés, séparez ce qu’un personnage croit à tort de ce que sait le narrateur, et nommez le passage qui peut changer. « Ils se réconcilient au chapitre douze » n’autorise pas une modification au chapitre huit qui supprime le conflit trop tôt.

À essayer d’abord dans le Playground

  1. Ouvrez Claude Opus 4.5 et passez au Playground.
  2. Collez les sources S1–S3 et le brouillon P1 ci-dessous, en demandant un texte de remplacement ainsi que les ID de source de chaque correction.
  3. Vérifiez que la démonstration publique passe à 2019 sans modifier l’entretien cité ni inventer pour Theo un crédit de conception d’origine.

Une requête que vous pouvez vérifier ensuite

Le script ci-dessous associe un ID à chaque source et à chaque paragraphe du brouillon, place le matériel stable en premier et la tâche en dernier, puis contrôle la réponse. Le contrôle est mécanique : tout texte que le modèle place entre guillemets doit être une sous-chaîne exacte des sources, sinon il est signalé comme citation altérée. Il s’arrête sur les réponses incomplètes ou vides et affiche la modification proposée pour relecture. Définissez SPICY_API_KEY à partir des API Keys ; l’appel utilise l’interface Chat Completions de 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.")

Une réponse qui conserve la citation de l’entretien passe ; une réponse qui cite « Nous avons présenté le prototype en 2019. » est signalée. Le contrôle ne voit que le texte entre guillemets doubles ; il ne peut pas détecter une date inventée hors guillemets, un crédit mal attribué ni une phrase de la source réécrite sans guillemets. Vérifiez aussi ces points par rapport à S1–S3. Il attrape l’erreur la plus difficile à voir à l’œil nu dans un long manuscrit : une citation modifiée de quelques caractères.

Deux détails de la requête comptent. Le message système indique ce qui est preuve et ce qui est modifiable, si bien que S1 est explicitement exclue de la tâche de réécriture. Et la tâche vient après les sources, de sorte que le préfixe commun reste identique d’une passe à l’autre. Cet exemple est assez court pour un appel borné sans streaming. Un dossier de sources plus long ou une réponse à effort élevé peut dépasser la limite réseau d’environ 100 secondes ; utilisez le streaming pour ces travaux. Augmenter le timeout du client ne repousse pas cette limite.

Laisser un Agent préparer l’appel

Pour des révisions répétées à partir de sources, demandez à votre Agent de code d’utiliser le Skill SpicyAPI : « Read anthropic/claude-opus-4.5/chat, then adapt the example to my input; show the request before running it. » La consultation via la CLI est spicyapi models get anthropic/claude-opus-4.5/chat --json ; via MCP, c’est spicyapi_model_get avec model: "anthropic/claude-opus-4.5/chat". Les appels de chat passent par un client compatible ou l’API de chat ; les commandes de tâches média ne génèrent pas de réponses de chat.

Longs manuscrits : demander les emplacements avant les remplacements

Pour une réparation au niveau de la phrase, envoyez le paragraphe et les preuves qui le gouvernent. Pour la révision d’un chapitre, ajoutez les transitions voisines et les faits utilisés dans ce chapitre. Utilisez la fenêtre plus large lorsque la question porte sur l’ensemble du manuscrit : à quel endroit le métier d’un personnage change, si une promesse est tenue, quelles mentions d’une date doivent être revues.

Pour une passe sur tout le manuscrit, séparez la découverte de la révision :

  1. Trouver les occurrences. Demandez une liste, pas une réécriture : « List every passage that states the demonstration year, quote the sentence, and classify it as narration, direct quotation or a character’s belief. » Un remplacement global effacerait des distinctions dont l’histoire dépend.
  2. Choisir les modifications. Donnez aux paragraphes des ID stables (P42, et non « le paragraphe sur le bail »), faites renvoyer ces ID et comparez chaque remplacement à son original.
  3. Laisser ouverts les faits non résolus. Quand les sources ne tranchent pas un point, demandez une question plutôt que la date la plus plausible.

Pour les erreurs de continuité comme des couleurs d’yeux qui changent, des lieux incohérents ou un personnage qui sait quelque chose trop tôt, tenez une bible de l’histoire et envoyez les entrées pertinentes avec chaque chapitre.

Si le manuscrit dépasse 198 000 tokens d’entrée sur la 4.5, découpez par dépendance, pas par taille. Les chapitres qui partagent une question de continuité doivent figurer dans la même requête ; les couper en deux peut supprimer la preuve qui décide de la modification. Si ce n’est pas possible, passez à la 4.6.

Réviser un chapitre sans aplatir sa voix

La réparation factuelle et le polissage de la prose sont deux missions différentes. Une passe factuelle doit repérer les erreurs de date et de crédit avant de toucher au rythme. Si vous demandez en même temps « un portrait professionnel soigné », le modèle peut supprimer les hésitations de l’entretien, remplacer les tournures distinctives de l’auteur ou de l’autrice et enfouir la vraie correction dans un paragraphe entièrement nouveau.

Gardez un court exemple de la voix que vous voulez. Par exemple : « L’atelier n’était encore qu’une pièce pleine d’outils empruntés. Ada l’appelait un laboratoire. Theo l’appelait glacial. » Ce que cet échantillon a d’utile, ce sont ses phrases courtes, ses objets concrets et son désaccord sous-entendu. C’est plus exploitable que « littéraire mais accessible ». Demandez que la révision conserve ces traits tout en rendant claire la chronologie corrigée.

Une réécriture rédigée par un humain pourrait être :

Le bail a commencé en 2018. Ada a montré le prototype au public en février suivant, alors que l’atelier n’était encore qu’une pièce pleine d’outils empruntés. Theo les a rejoints plus tard. Le manche de l’instrument porte ses modifications ; le prototype d’origine, non.

C’est un choix éditorial illustratif, pas une sortie d’Opus. Il corrige les faits sans faire de Theo un cofondateur ni inventer la date d’ouverture de l’atelier. Il montre aussi que préserver la voix ne signifie pas préserver une affirmation fausse.

Pour un roman sentimental, distinguez trois constats d’apparence proche. Un personnage qui dit « tu n’es jamais revenu » peut formuler une accusation délibérée. Un récit qui dit que le personnage n’est jamais revenu peut contredire un chapitre précédent. Une question non résolue sur le retour peut être une note de l’auteur ou de l’autrice. Demandez à Opus de classer le passage avant de le remplacer. Sinon, un nettoyage factuel automatique peut effacer un malentendu voulu qui fait avancer la relation.

Appliquer la correction là où elle s’applique vraiment

Dans un portrait plus long, l’année erronée peut figurer dans l’ouverture, la chronologie, une légende et la transcription de l’entretien. Ces occurrences demandent des traitements différents. Révisez le récit explicatif et la chronologie à partir de la correction approuvée. Laissez la citation enregistrée intacte et ajoutez du contexte. Vérifiez une légende par rapport à la date documentée de l’image elle-même : la correction de l’événement ne prouve pas que chaque photo de l’atelier a été prise en 2019.

Pour un livre, l’équivalent consiste à corriger le récit de référence tout en préservant la connaissance limitée d’un personnage jusqu’à la révélation prévue. Demandez un tableau avec l’emplacement, la phrase existante, la source et la modification proposée. Servez-vous de cette liste pour approuver les révisions, puis demandez uniquement les remplacements retenus. Une longue fenêtre de contexte devient ainsi une aide à l’édition aux modifications traçables, plutôt qu’une coûteuse invitation à tout réécrire.

Coût : quatre catégories de tokens, avec un exemple de passes répétées

SpicyAPI facture séparément l’entrée hors cache, l’entrée en cache, les écritures en cache et la sortie. Une seule passe sur 100 000 tokens d’entrée avec 5 000 tokens de sortie coûte $0.5625 sur Opus 4.5 et $0.625 sur Opus 4.6. Les tokens de raisonnement sont facturés comme de la sortie.

Une révision se fait rarement en une seule passe, et le dossier de sources est la partie qui se répète. L’entrée en cache coûte environ un dixième du tarif d’entrée, à condition que le préfixe commun soit identique d’un appel à l’autre et que ce qui varie se trouve à la fin (la page d’Opus 4.6 demande de le garder identique à l’octet près). Le schéma de requête n’expose aucun champ de contrôle du cache. Cherchez prompt_tokens_details.cached_tokens dans l’usage renvoyé ; garder le préfixe inchangé ne garantit pas un succès de cache. Le prompt caching natif d’Anthropic a ses propres règles de TTL et de préfixe minimal ; elles n’établissent ni la durée de vie du cache ni l’éligibilité de cette route hébergée. Si le premier appel écrit le dossier dans le cache et que les cinq suivants le lisent, six passes sur le même dossier de 100 000 tokens avec 5 000 tokens de sortie chacune coûtent :

Six passesOpus 4.5Opus 4.6
Sans cache$3.375$3.75
La première écrit, cinq lisent$1.45$1.625

C’est une économie d’environ 57 pour cent lorsque ces catégories de tokens s’appliquent exactement. Modifier S2 ou placer du contenu avant un préfixe réutilisable peut réduire ou supprimer la correspondance avec le cache. Budgétez sur la première ligne et lisez l’usage et le coût de vos premiers appels pour voir si la seconde s’est appliquée.

Avec 400 000 tokens d’entrée et 5 000 tokens de sortie, le dossier ne tient plus dans Opus 4.5 ; Opus 4.6 coûte $2.125 hors cache. Si une réponse a été coupée, augmenter max_tokens corrige la sortie ; cela ne sert à rien si le dossier d’entrée omettait la source décisive.

Réparer l’échec à sa cause

RésultatAction suivante
La date corrigée apparaît dans une citation historiqueRétablir la citation et ajouter la correction dans le récit ; le contrôle des citations le signalera
Theo devient cocréateur d’origineRenvoyer S3 et remplacer uniquement la phrase qui lui attribue ce rôle
La réponse s’arrête avant la liste des modifications (finish_reason vaut length)Restreindre la tâche ou augmenter max_tokens jusqu’au plafond du modèle
La requête rejette une partie image ou PDFPour les images, vérifier la forme de image_url et l’URL accessible. Pour les parties PDF ou fichier, extraire d’abord le texte
JSON requis dans la réponseIl n’y a pas de response_format ; définir et forcer un outil avec tool_choice, puis valider les arguments renvoyés
L’analyseur JSON échoueValider et réparer la sortie texte dans votre code, ou passer à l’appel d’outil forcé ci-dessus

Par lequel commencer

Pour un flux 4.x existant, utilisez la 4.5 pour les dossiers sous 198 000 tokens d’entrée et la 4.6 lorsqu’un manuscrit continu ou la réponse requise dépasse ses limites. Pour une nouvelle construction sans besoin d’échantillonnage ni d’outil forcé, Opus 5.5 offre un prix par token plus bas et la fenêtre la plus large ; la capacité seule ne dit pas quel modèle préserve le mieux votre source. Quel que soit votre choix, les habitudes qui protègent la source restent les mêmes : des ID sur chaque passage, des citations qui doivent rester textuelles, un préfixe stable et un contrôle mécanique de la réponse.

FAQ

Opus 4.6 révise-t-il mieux que la 4.5, et quel modèle Claude est le meilleur pour l’édition de longs textes ?

Les différences mesurables sont la capacité et le prix : la 4.6 lit 1 000 000 de tokens et en écrit 128 000, et coûte environ 11 pour cent de plus par token d’entrée. Choisissez-la pour ces limites. Pour une nouvelle construction, Opus 5.5 est moins cher que les deux et offre la fenêtre la plus large, à condition de ne pas avoir besoin de paramètres d’échantillonnage ni de choix d’outil forcé.

Que faire quand le contexte est plein, ou sans édition de contexte native ?

Démarrez une nouvelle requête : gardez le dossier de sources en premier et inchangé, remplacez les anciens tours par un court résumé des décisions déjà prises (quelles dates ont été corrigées, quels passages sont terminés) et placez la tâche suivante en dernier. Abandonner d’anciens tours ne coûte rien ; abandonner une source vous coûte la révision.

Comment l’empêcher de modifier une citation ?

Marquez les sources comme preuves, n’autorisez les guillemets qu’autour du texte exact de la source et lancez le contrôle des citations ci-dessus sur chaque réponse.

Garder le même bloc de sources garantit-il un succès de cache ?

Non. Gardez-le stable pour rendre la réutilisation possible, mais budgétez hors cache tant que l’usage de cache renvoyé et le montant facturé ne montrent pas un succès. Une entrée de cache est une optimisation de facturation ; elle ne rend pas une révision plus fidèle.

Aussi en English · 日本語 · 한국어 · Deutsch · Español · Português (Brasil) · Русский · Italiano · Polski

Essayez par vous-même

Vous ne payez que ce que vous lancez : ni forfait, ni abonnement.

Créé avec MiniMax H3 · ByteDance Seedance 2.0 Fast