For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navigation principale

Mise en forme des citations

Permettez aux modèles de générer des citations fiables.

Des citations fiables renforcent la confiance et aident les lecteurs à vérifier l’exactitude des réponses. Ce guide propose des conseils pratiques pour préparer des contenus pouvant être cités et expliquer au modèle comment mettre en forme les citations efficacement, selon des conventions familières aux modèles OpenAI.

Vue d’ensemble

Un système de citation comporte plusieurs éléments : vous décidez de ce qui peut être cité, présentez clairement ces contenus, indiquez au modèle comment les citer et validez le résultat avant son affichage à l’utilisateur.

Ce guide couvre cinq éléments essentiels avec lesquels le modèle interagit directement :

  1. Unités citables : définissez ce que le modèle est autorisé à citer.
  2. Représentation des contenus : présentez les contenus sources dans un format clair et structuré.
  3. Format des citations : précisez le format exact que le modèle doit utiliser pour les citations.
  4. Instructions du prompt : indiquez au modèle quand citer ses sources et comment le faire correctement.
  5. Analyse des citations : extrayez les citations de la réponse du modèle pour les exploiter ensuite.

Choisissez les unités citables

Avant de rédiger des prompts, définissez clairement ce que le modèle peut citer. Voici les options courantes :

Unité citableCas d’utilisation privilégiéInconvénientExemple
DocumentVous avez seulement besoin d’indiquer de quel document provient la réponse.Peu précis.Citez l’intégralité du manuel du personnel lorsque vous avez seulement besoin d’indiquer quel document étaye l’affirmation.
Bloc / fragmentVous recherchez un bon équilibre entre simplicité et précision.La précision ne va pas jusqu’à la ligne.Citez le paragraphe précis du contrat ou le fragment récupéré qui contient la clause.
Plage de lignesVous devez montrer le texte exact qui étaye l’affirmation.Plus difficile pour le modèle.Citez les lignes L42-L47 lorsque l’utilisateur doit vérifier le passage précis.

Une bonne unité citable doit être :

  • Stable : une même source doit conserver le même identifiant d’une exécution à l’autre.
  • Facile à examiner : une personne doit pouvoir la lire et comprendre le contexte qui l’entoure.
  • De taille adaptée : assez longue pour être compréhensible, mais assez courte pour rester précise.

Pour la plupart des systèmes, les citations au niveau du bloc constituent le meilleur choix par défaut. Elles sont généralement plus faciles à produire pour le modèle que les citations au niveau de la ligne, et plus utiles aux utilisateurs que les citations au niveau du document.

Représentez les contenus citables

Le modèle ne peut pas citer des contenus qui n’ont pas été présentés clairement. Que ces contenus proviennent d’un outil ou soient injectés directement, veillez à ce qu’ils comportent les éléments suivants :

  • Identifiant de source stable : un identifiant constant, comme file1 ou block1.
  • Texte lisible : des contenus sources clairement mis en forme.
  • Métadonnées (facultatives) : URL, horodatages, titres et autres éléments de contexte similaires.

Identifiants de source et localisateurs : Un identifiant de source est un identifiant stable, généré par le modèle, tel que block1. Un localisateur correspond au passage précis mis en évidence dans l’interface, par exemple lines L8-L13 ou Paragraph 21. En général, le modèle doit produire l’identifiant de source, tandis que votre système résout ou affiche le localisateur. Combiner les deux trop tôt tend à multiplier les erreurs de mise en forme.

Définissez le format des citations

Vous devez définir le format des citations que le modèle générera. Utilisez un format explicite, cohérent et facile à reproduire de manière fiable pour le modèle.

Vous trouverez ci-dessous le format et les marqueurs de citation que nous recommandons. Nous recommandons vivement ces marqueurs, car ils sont très proches de ceux sur lesquels nos modèles ont été entraînés. Si vous choisissez d’autres valeurs pour les marqueurs, conservez un format global aussi similaire que possible.

ÉlémentRôleValeur recommandée
CITATION_STARTOuvre le marqueur de citation.\ue200
Famille de citationsIdentifie le type de citation. Utilisez cite pour toutes les sources prises en charge.cite
CITATION_DELIMITERSépare les champs à l’intérieur du marqueur.\ue202
Identifiant de sourceIdentifie l’unité citée. turn# correspond au numéro du tour. item# correspond au fichier, au bloc ou à l’URL spécifique.turn0file1, turn0block1, turn0url1
Localisateur (facultatif)Restreint la citation à un passage précis.L8-L13
CITATION_STOPFerme le marqueur de citation.\ue201

Pour les appels d’outils, turnN est incrémenté une fois par appel d’outil, et non une fois par résultat individuel. Au sein d’un même appel, les sources sont distinguées par des suffixes tels que file0, file1, et ainsi de suite. Dans un système à réponse unique, toutes les références auront la forme turn0... uniquement si le modèle effectue exactement un appel d’outil avant de répondre. S’il effectue plusieurs appels d’outils, vous pourrez plutôt voir des références comme turn0fileX, turn1fileX, et ainsi de suite.

Modèle de format

{CITATION_START}<citation_family>{CITATION_DELIMITER}<source_id>{CITATION_DELIMITER}<locator>{CITATION_STOP}

Exemple

{CITATION_START}cite{CITATION_DELIMITER}turn0file1{CITATION_DELIMITER}L8-L13{CITATION_STOP}

Si votre système n’utilise pas de localisateurs, omettez ce champ :

{CITATION_START}cite{CITATION_DELIMITER}turn0file1{CITATION_STOP}

Rédigez des instructions de citation efficaces

Pour garantir une exactitude maximale, utilisez des conventions de citation familières au modèle. Les formats personnalisés ou peu familiers augmentent sa charge cognitive, ce qui entraîne des erreurs de citation, notamment dans les cas suivants :

  • un faible effort de raisonnement, où le modèle dispose d’un budget plus limité pour corriger les erreurs de mise en forme.
  • les tâches très complexes, où l’essentiel du budget de raisonnement sert à résoudre la tâche elle-même plutôt qu’à corriger la syntaxe des citations.

Nous recommandons ci-dessous un format de citation proche des modèles de présentation que le modèle connaît. Vous pouvez l’utiliser tel quel ou l’adapter à votre système.

Si vous souhaitez rédiger votre propre prompt, précisez :

  • la syntaxe exacte des marqueurs.
  • où placer les citations.
  • quand citer une source et quand s’en abstenir.
  • comment citer plusieurs sources à l’appui d’une affirmation.
  • les formats interdits.
  • la marche à suivre en l’absence de source à l’appui.

Analysez les citations

Une fois que le modèle produit des citations, vous devez les extraire du texte de la réponse pour retrouver les sources à partir de leurs identifiants, afficher des liens ou supprimer les marqueurs bruts avant de présenter la réponse aux utilisateurs.

La fonction utilitaire ci-dessous peut être copiée directement dans votre application. Elle analyse les citations à une ou plusieurs sources ainsi que les localisateurs facultatifs de plages de lignes, tout en préservant les positions des caractères dans le texte d’origine.

Cet exemple ne prend en charge que les localisateurs de lignes. Adaptez-le si votre système utilise un autre format de localisateur.

Si vos identifiants de source ont une autre forme, adaptez SOURCE_ID_RE à votre système.

Exemples

Les exemples ci-dessous illustrent deux approches courantes pour les citations :

  • Le contexte récupéré par un outil, qui renvoie des éléments pouvant être cités et leurs identifiants.
  • Le contexte injecté, où vous fournissez des blocs pouvant être cités directement dans le prompt.

Formatez les citations du contexte récupéré par un outil

Utilisez cette approche lorsque le modèle récupère du contexte à l’aide d’un outil et cite ce contexte dans sa réponse.

Définissez les unités pouvant être citées

Choisissez les unités pouvant être citées selon la précision requise pour votre cas d’usage. Les exemples ci-dessous présentent quelques sorties d’outil possibles.

Les exemples ci-dessous présentent quelques formats de sortie d’outil recommandés. L’outil sous-jacent peut varier selon l’application, mais l’essentiel est de présenter sa sortie dans une structure claire et stable, comme dans ces exemples.

Rédigez les instructions du prompt

## Citations

Results are returned by "tool_1". Each message from `tool_1` is called a "source" and identified by its reference ID, which is the first occurrence of `turn\\d+file\\d+` (for example, `turn0file0` or `turn2file1`). In this example, the string `turn0file0` would be the source reference ID.

Citations are references to `tool_1` sources. Citations may be used to refer to either a single source or multiple sources.

A citation to a single source must be written as:
{CITATION_START}cite{CITATION_DELIMITER}turn\d+file\d+{CITATION_STOP}

If line-level citations are supported, a citation to a specific line range must be written as:
{CITATION_START}cite{CITATION_DELIMITER}turn\d+file\d+{CITATION_DELIMITER}L\d+-L\d+{CITATION_STOP}

Citations to multiple sources must be written by emitting multiple citation markers, one for each supporting source.

You must NOT write reference IDs like `turn0file0` verbatim in the response text without putting them between {CITATION_START}...{CITATION_STOP}.

- Place citations at the end of the supported sentence, or inline if the sentence is long and contains multiple supported clauses.
- Citations must be placed after punctuation.
- Cite only retrieved sources that directly support the cited text.
- Never invent source IDs, line ranges, or block locators that were not returned by the tool.
- If multiple retrieved sources materially support a proposition, cite all of them.
- If the retrieved sources disagree, cite the conflicting sources and describe the disagreement accurately.

Exemple de sortie :

The on-call handoff process is documented in the weekly support sync notes. \ue200cite\ue202turn0file0\ue202L8-L13\ue201

Formatez les citations du contexte injecté

Utilisez cette approche lorsque vous récupérez ou préparez le contexte à l’avance et l’injectez directement dans le prompt.

Définissez les unités pouvant être citées

Pour le contexte injecté, une approche courante consiste à encadrer les segments sources par des balises explicites dotées d’identifiants de référence stables.

<BLOCK id="block1">
The service agreement states that termination for convenience requires thirty (30) days’ written notice, unless superseded by a customer-specific addendum.
In practice, renewal terms auto-extend for successive one-year periods when no written non-renewal notice is received before the deadline.
Appendix B further clarifies that pricing exceptions must be approved in writing by both Finance and the account owner.
</BLOCK>

<BLOCK id="block2">
Syllabus
</BLOCK>
...

L’unité pouvant être citée est ainsi clairement délimitée et le modèle peut facilement y faire référence.

Rédigez les instructions du prompt

## Citations

Supporting context is provided directly in the prompt as citable units. Each citable unit is identified by the value of its `id` attribute in the first occurrence of a tag such as `<BLOCK id="block5"> ... </BLOCK>`. In this example, `block5` would be the source reference ID.

Because this pattern does not invoke tools, there is no tool turn counter to increment. That means you do not need to use a `turn#` prefix for the citation marker. You can keep IDs in a `turn0block5` style if that matches the rest of your system, or use plain IDs like `block5` as shown here. The key requirement is that the citation marker matches the injected context ID exactly and consistently.

Citations are references to these provided citable units. Citations may be used to refer to either a single source or multiple sources.

A citation to a single source must be written as:
{CITATION_START}cite{CITATION_DELIMITER}<block_id>{CITATION_STOP}

For example:
{CITATION_START}cite{CITATION_DELIMITER}block5{CITATION_STOP}

Citations to multiple sources must be written by emitting multiple citation markers, one for each supporting block.

You must NOT write block IDs verbatim in the response text without putting them between {CITATION_START}...{CITATION_STOP}.

- Place citations at the end of the supported sentence, or inline if the sentence is long and contains multiple supported clauses.
- Citations must be placed after punctuation.
- Cite only blocks that appear in the provided context.
- Never invent new block IDs.
- Never cite outside knowledge or outside authorities.
- If multiple blocks materially support a proposition, cite all of them.
- If the provided blocks conflict, cite the conflicting blocks and describe the conflict accurately.

Exemple de sortie :

The Court held that the District Court lacked personal jurisdiction over the petitioner. \ue200cite\ue202block5\ue201

Remarque : Les outils hébergés par OpenAI, comme la recherche web, fournissent automatiquement des citations intégrées au texte. Si vous préférez utiliser des outils hébergés, consultez la vue d’ensemble des outils, le guide de la recherche web et le guide de la recherche de fichiers.