Citation Formatting は「引用を後から付ける」前に、根拠の最小単位を決めろと迫る
このノートは原文の代替ではありません。読むべきポイントと実装上の意味を整理し、原典への入口を示します。
要点まとめ
- この guide の一番大事な点は、答えの最後に脚注らしい表示を足すだけでは、根拠を後から追える状態にはならないと示していることだ。
- 本当に必要なのは、「どの一文が、どの文書の、どの部分に支えられているか」を機械でも人でもたどれる単位にしておくことだ。
- OpenAI はそのために、根拠そのものを指す ID と、その中の場所を指す追加情報を分けて扱う形を示している。
- 読後にやるべきことは、UI の脚注表示をいじることではなく、自分の retrieval で根拠をどの粒度で持っているかを棚卸しすることだ。
読み終えたら次へ
この1本で終わらせず、同じ目的・同じテーマ・近い原典へ進めます。
何が変わったのか
この guide は、citation を「見た目の脚注記法」ではなく、「根拠の持ち方」まで含む設計として扱っています。`source_id` は根拠 source 自体を指す安定 ID、`locator` はその source のどこを使ったかを示す追加情報です。つまり「どの文書か」と「文書内のどこか」を分けて持て、と明示しています。さらに OpenAI は、tool が返した message の reference ID を citation に使う例と、prompt に直接埋め込んだ `<BLOCK id="...">` を `citable unit` とみなす例の両方を置いています。line locator も固定仕様ではなく、system に合う位置表現へ適応してよいとしています。
なぜ重要か
日本の開発現場では、citation が「法務向けに見た目を整えるもの」や「幻覚対策の保険」と理解されがちです。しかし実際には、source unit が粗いと review も監査もできません。答えが正しそうでも、後から「その一文はどこに基づくのか」を説明できないからです。PM や導入担当にも意味があります。citation 品質は model の賢さ比較より、chunking、ID 設計、metadata 保持のほうに左右されます。この guide は、RAG 品質の議論を embedding 比較から根拠粒度の設計へ戻します。
技術的ポイント
- `source_id` は根拠 source を識別する安定 ID で、文書名や URL のような人間向け表示とは分けて持つほうが壊れにくい。
- locator は `source_id` と別に扱う位置情報で、line 番号でも section 名でもよい。guide の line locator は一例にすぎない。
- prompt 側では citation の置き方だけでなく、support 不足時の扱いと禁止形式まで明示しないと品質は安定しない。
- post-processor 側でも raw citation token を parse し、`source_id` と locator を分解できるようにしておく必要がある。
英日キーワード
| 英語 | 日本語 | 補足 |
|---|---|---|
| citation formatting | 引用記法 / citation 形式 | 見た目の脚注だけでなく、根拠をどの単位で持ち、どう再参照するかまで含む設計。 |
| citable unit | 引用可能単位 | 1つの根拠として参照できる最小単位。block や line など。 |
| source_id | ソース識別子 | 根拠 source を安定して指す ID。表示名や URL と分けて持つほうが壊れにくい。 |
| locator | 位置指定情報 | source のどこを使ったか示す追加情報。line 番号や section 名のような位置手掛かり。 |
| provenance | 情報の来歴 | 情報がどこから来たかを後で追える状態。RAG の信頼性はここで決まる。 |
| post-processor | 後処理器 | model の raw citation や出力を解析し、表示や検証へつなぐ処理。 |
試すなら
- 自分の retrieval 結果が document 丸ごとか、block 単位か、line 単位かを棚卸しする。
- `source_id` と locator を同じ文字列に埋め込んでいるなら分離する。
- 回答 UI を直す前に、citation parser と source 再参照ロジックを確認する。
- support がない時は citation を捏造せず、不足を明示する規則を prompt に入れる。
注意点
- どの粒度が最適かは source に依存する。法務文書、FAQ、コード、議事録で同じ unit が最適とは限らない。
- line locator だけでは不十分で、元 source 更新時のずれに備えて stable block ID や versioning も考える必要がある。
- `Published date` は docs page 上で確認できなかった。
この記事は役に立ちましたか
公益的に続けるため、役に立った点や読みづらかった点だけを短く送れます。メールアドレスは不要です。