第4章 · Advanced Claude API

Citations で引用付き回答

Citations
→ で次のスライド · F でフルスクリーン · N で講師ノート · Esc で終了

重要キーワード

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

Citations (引用)

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

用途

  • 社内 RAG での 出典明示
  • カスタマーサポートでの 根拠表示
  • 法務・医療で必須の トレーサビリティ
  • ハルシネーション削減

基本の使い方

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, ")")

サポートされる入力形式

  • プレーンテキスト (text/plain)
  • PDF (Files API 経由)
  • カスタムコンテンツブロック

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>
Hands-on Exercise

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

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

▶ Playground を開いて実行

理解度チェック

3 問のクイズで理解度を確認しましょう。

クイズを開く
🎉

まとめ

お疲れ様でした!