Claudeは、ドキュメントに関する質問に回答する際に詳細な引用を提供することができ、レスポンス内の情報ソースを追跡して確認するのに役立ちます。

引用機能は現在、Claude 3.7 Sonnet、Claude 3.5 Sonnet(新)および3.5 Haikuで利用可能です。

引用機能に関するフィードバックや提案はこのフォームを使用して共有してください。

以下はMessages APIで引用を使用する方法の例です:

プロンプトベースのアプローチとの比較

プロンプトベースの引用ソリューションと比較して、引用機能には以下の利点があります:

  • コスト削減: プロンプトベースのアプローチでClaudeに直接引用を出力させる場合、cited_textが出力トークンにカウントされないため、コスト削減が見込めます。
  • より信頼性の高い引用: 引用を上記のレスポンス形式に解析し、cited_textを抽出するため、引用は提供されたドキュメントへの有効なポインタを確実に含みます。
  • 引用品質の向上: 評価によると、引用機能は純粋にプロンプトベースのアプローチと比較して、ドキュメントから最も関連性の高い引用を引用する可能性が大幅に高くなっています。

引用の仕組み

Claudeで引用を統合するには、次の手順に従います:

1

ドキュメントを提供し、引用を有効にする

  • サポートされている形式のいずれかでドキュメントを含めます:PDFプレーンテキスト、またはカスタムコンテンツドキュメント
  • 各ドキュメントでcitations.enabled=trueを設定します。現在、リクエスト内のすべてのドキュメントで引用を有効にするか、まったく有効にしないかのいずれかを選択する必要があります。
  • 現在はテキスト引用のみがサポートされており、画像引用はまだ可能ではないことに注意してください。
2

ドキュメントが処理される

  • ドキュメントの内容は、引用の最小粒度を定義するために「チャンク化」されます。例えば、文のチャンク化により、Claudeは単一の文を引用したり、複数の連続した文をつなげてパラグラフ(またはそれ以上)を引用したりすることができます!
    • PDFの場合: PDFサポートで説明されているようにテキストが抽出され、コンテンツは文にチャンク化されます。PDFからの画像の引用は現在サポートされていません。
    • プレーンテキストドキュメントの場合: コンテンツは引用可能な文にチャンク化されます。
    • カスタムコンテンツドキュメントの場合: 提供されたコンテンツブロックがそのまま使用され、それ以上のチャンク化は行われません。
3

Claudeが引用付きの回答を提供する

  • レスポンスには、複数のテキストブロックが含まれる場合があり、各テキストブロックにはClaudeが主張している内容とその主張をサポートする引用のリストが含まれます。
  • 引用はソースドキュメント内の特定の場所を参照します。これらの引用の形式は、引用元のドキュメントの種類によって異なります。
    • PDFの場合: 引用にはページ番号の範囲(1から始まる)が含まれます。
    • プレーンテキストドキュメントの場合: 引用には文字インデックスの範囲(0から始まる)が含まれます。
    • カスタムコンテンツドキュメントの場合: 引用には、提供された元のコンテンツリストに対応するコンテンツブロックインデックスの範囲(0から始まる)が含まれます。
  • ドキュメントインデックスは参照ソースを示すために提供され、元のリクエスト内のすべてのドキュメントのリストに従って0から始まるインデックスが付けられます。

自動チャンク化とカスタムコンテンツ

デフォルトでは、プレーンテキストとPDFドキュメントは自動的に文にチャンク化されます。引用の粒度をより細かく制御する必要がある場合(箇条書きや転写など)は、代わりにカスタムコンテンツドキュメントを使用してください。詳細はドキュメントタイプを参照してください。

例えば、ClaudeがRAGチャンクから特定の文を引用できるようにしたい場合は、各RAGチャンクをプレーンテキストドキュメントに入れるべきです。それ以上のチャンク化を行いたくない場合や、追加のチャンク化をカスタマイズしたい場合は、RAGチャンクをカスタムコンテンツドキュメントに入れることができます。

引用可能なコンテンツと引用不可能なコンテンツ

  • ドキュメントのsourceコンテンツ内にあるテキストは引用可能です。
  • titlecontextはオプションフィールドであり、モデルに渡されますが、引用されるコンテンツには使用されません。
  • titleは長さが制限されているため、contextフィールドはテキストや文字列化されたJSONとしてドキュメントのメタデータを保存するのに役立つ場合があります。

引用インデックス

  • ドキュメントインデックスは、リクエスト内のすべてのドキュメントコンテンツブロックのリスト(すべてのメッセージにまたがる)から0から始まりインデックスが付けられます。
  • 文字インデックスは0から始まり、終了インデックスは排他的です。
  • ページ番号は1から始まり、終了ページ番号は排他的です。
  • コンテンツブロックインデックスは、カスタムコンテンツドキュメントで提供されたcontentリストから0から始まり、終了インデックスは排他的です。

トークンコスト

  • 引用を有効にすると、システムプロンプトの追加とドキュメントのチャンク化により、入力トークンが少し増加します。
  • しかし、引用機能は出力トークンの使用が非常に効率的です。内部的には、モデルは標準化された形式で引用を出力し、それが引用されたテキストとドキュメントの場所インデックスに解析されます。cited_textフィールドは便宜上提供されており、出力トークンにはカウントされません。
  • 後続の会話ターンで渡される場合、cited_textも入力トークンにカウントされません。

機能の互換性

引用はプロンプトキャッシングトークンカウントバッチ処理など、他のAPI機能と連携して動作します。


ドキュメントタイプ

ドキュメントタイプの選択

引用には3つのドキュメントタイプをサポートしています:

タイプ最適な用途チャンク化引用形式
プレーンテキストシンプルなテキストドキュメント、散文文字インデックス(0から始まる)
PDFテキストコンテンツを含むPDFファイルページ番号(1から始まる)
カスタムコンテンツリスト、転写、特殊なフォーマット、より細かい引用追加のチャンク化なしブロックインデックス(0から始まる)

プレーンテキストドキュメント

プレーンテキストドキュメントは自動的に文にチャンク化されます:

{
    "type": "document",
    "source": {
        "type": "text",
        "media_type": "text/plain",
        "data": "Plain text content..."
    },
    "title": "Document Title", # オプション
    "context": "Context about the document that will not be cited from", # オプション
    "citations": {"enabled": True}
}

PDFドキュメント

PDFドキュメントはbase64エンコードされたデータとして提供されます。PDFテキストが抽出され、文にチャンク化されます。画像の引用はまだサポートされていないため、抽出可能なテキストを含まないドキュメントのスキャンであるPDFは引用できません。

{
    "type": "document",
    "source": {
        "type": "base64",
        "media_type": "application/pdf",
        "data": base64_encoded_pdf_data
    },
    "title": "Document Title", # オプション
    "context": "Context about the document that will not be cited from", # オプション
    "citations": {"enabled": True}
}

カスタムコンテンツドキュメント

カスタムコンテンツドキュメントでは、引用の粒度を制御できます。追加のチャンク化は行われず、提供されたコンテンツブロックに従ってチャンクがモデルに提供されます。

{
    "type": "document",
    "source": {
        "type": "content",
        "content": [
            {"type": "text", "text": "First chunk"},
            {"type": "text", "text": "Second chunk"}
        ]
    },
    "title": "Document Title", # オプション
    "context": "Context about the document that will not be cited from", # オプション
    "citations": {"enabled": True}
}

レスポンス構造

引用が有効になっている場合、レスポンスには引用付きの複数のテキストブロックが含まれます:

{
    "content": [
        {
            "type": "text",
            "text": "According to the document, "
        },
        {
            "type": "text",
            "text": "the grass is green",
            "citations": [{
                "type": "char_location",
                "cited_text": "The grass is green.",
                "document_index": 0,
                "document_title": "Example Document",
                "start_char_index": 0,
                "end_char_index": 20
            }]
        },
        {
            "type": "text",
            "text": " and "
        },
        {
            "type": "text",
            "text": "the sky is blue",
            "citations": [{
                "type": "char_location",
                "cited_text": "The sky is blue.",
                "document_index": 0,
                "document_title": "Example Document",
                "start_char_index": 20,
                "end_char_index": 36
            }]
        }
    ]
}

ストリーミングサポート

ストリーミングレスポンスのために、現在のtextコンテンツブロックのcitationsリストに追加する単一の引用を含むcitations_deltaタイプが追加されました。