← レッスンに戻る
第4章 · Claude API応用

Citations で引用付き回答

Citations · 約 10 分

重要キーワード

English日本語説明
Citations 引用機能 入力ドキュメントから自動で引用を生成する Anthropic の機能
Grounding 根拠付け 出力の根拠となるソースを示すこと
RAG 検索拡張生成 外部知識を検索して LLM の入力に注入する手法

Citations (引用)

LLM の応答にしばしば求められるのが 「どこから情報を取ったのか」 の説明。 Citations は 入力ドキュメントから自動で引用を抽出 してくれる機能です。

用途

基本の使い方

res = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{
        "role": "user",
        "content": [
            {
                "type": "document",
                "source": {
                    "type": "text",
                    "media_type": "text/plain",
                    "data": "<長い社内ドキュメント>",
                },
                "title": "経費規程 v3.2",
                "context": "2026年改定版",
                "citations": {"enabled": True},
            },
            {"type": "text", "text": "経費精算の上限額は?"},
        ],
    }],
)

レスポンスから引用を取り出す

for block in res.content:
    if block.type == "text":
        print(block.text)
        for c in block.citations or []:
            print("  →", c.cited_text, "(", c.document_title, ")")

サポートされる入力形式

Tip 1: タイトルとコンテキストを必ず付ける

titlecontext メタデータがあると、引用箇所の表示が読みやすくなります。

Tip 2: 自前 RAG との比較

自前 RAG (RAG プロンプト) Citations
引用の精度 プロンプト次第 高い (専用訓練)
表示形式 自分で作る API がメタデータ提供
実装労力 多い 少ない
対応形式 自由 一部制限

社内ドキュメントが小〜中規模なら Citations + Files API + Caching が 最強の組み合わせ です。

試す

ダミーの社内文書から引用を取り出させてみましょう。

▶ 引用付き Q&A
次の文書を参照して質問に答え、根拠箇所を「" "」で囲んで引用してください。 <doc title="経費規程"> タクシー利用は 1 回 5,000 円までを上限とする。海外出張の場合は事前申請があれば 10,000 円まで認められる。 </doc> <question>海外出張のタクシー上限はいくらですか?</question>

演習問題

演習 1: FAQ ボットに Citations を組み込む

5 件の社内 FAQ (各 200 字程度) を入力ドキュメントとして渡し、 Citations 機能でユーザー質問への回答を生成するスクリプトを書いてください。 出力フォーマット: 回答本文 + 引用元 FAQ タイトル一覧。

スタータープロンプト:
Python スクリプトを書いてください:
1. ダミー FAQ 5 件 (title + body) を Python の list で持つ
2. 各 FAQ を document ブロックとして citations.enabled=True で API に渡す
3. ユーザー質問を引数で受け取り、回答を生成
4. 応答テキストに加え、citations を一覧表示
anthropic SDK で claude-sonnet-4-6。完全コードを示してください。
ヒントを見る

documents は user メッセージの content 配列に複数置けます。各 document に独自 title を付けると citations の出力が読みやすくなります。

理解度チェック

  1. Citations 機能の主な目的は?
    1. ドキュメントを自動翻訳する
    2. 応答の根拠箇所を自動で示す
    3. API キーを暗号化する
    4. Vision を有効化する
  2. Citations を有効化する設定は?
    1. metadata.citations = true
    2. document.citations.enabled = true
    3. system.cite = true
    4. tool_choice.citations = true
  3. Citations の利点として **誤っている** のは?
    1. ハルシネーション削減
    2. 出典の自動表示
    3. RAG 自前実装より精度が高い傾向
    4. GPU 使用量が半減する
解答と解説を見る
  1. B — 入力ドキュメントから引用を自動付与し、トレーサビリティを高めます。
  2. B — document ブロックの `citations: {enabled: true}` で有効化します。
  3. D — GPU 使用量とは無関係です。