引用
Claudeは、ドキュメントに関する質問に回答する際に詳細な引用を提供することができ、レスポンス内の情報ソースを追跡して確認するのに役立ちます。
引用機能は現在、Claude 3.7 Sonnet、Claude 3.5 Sonnet(新)および3.5 Haikuで利用可能です。
引用機能に関するフィードバックや提案はこのフォームを使用して共有してください。
以下はMessages APIで引用を使用する方法の例です:
プロンプトベースのアプローチとの比較
プロンプトベースの引用ソリューションと比較して、引用機能には以下の利点があります:
- コスト削減: プロンプトベースのアプローチでClaudeに直接引用を出力させる場合、
cited_text
が出力トークンにカウントされないため、コスト削減が見込めます。 - より信頼性の高い引用: 引用を上記のレスポンス形式に解析し、
cited_text
を抽出するため、引用は提供されたドキュメントへの有効なポインタを確実に含みます。 - 引用品質の向上: 評価によると、引用機能は純粋にプロンプトベースのアプローチと比較して、ドキュメントから最も関連性の高い引用を引用する可能性が大幅に高くなっています。
引用の仕組み
Claudeで引用を統合するには、次の手順に従います:
ドキュメントが処理される
- ドキュメントの内容は、引用の最小粒度を定義するために「チャンク化」されます。例えば、文のチャンク化により、Claudeは単一の文を引用したり、複数の連続した文をつなげてパラグラフ(またはそれ以上)を引用したりすることができます!
- PDFの場合: PDFサポートで説明されているようにテキストが抽出され、コンテンツは文にチャンク化されます。PDFからの画像の引用は現在サポートされていません。
- プレーンテキストドキュメントの場合: コンテンツは引用可能な文にチャンク化されます。
- カスタムコンテンツドキュメントの場合: 提供されたコンテンツブロックがそのまま使用され、それ以上のチャンク化は行われません。
Claudeが引用付きの回答を提供する
- レスポンスには、複数のテキストブロックが含まれる場合があり、各テキストブロックにはClaudeが主張している内容とその主張をサポートする引用のリストが含まれます。
- 引用はソースドキュメント内の特定の場所を参照します。これらの引用の形式は、引用元のドキュメントの種類によって異なります。
- PDFの場合: 引用にはページ番号の範囲(1から始まる)が含まれます。
- プレーンテキストドキュメントの場合: 引用には文字インデックスの範囲(0から始まる)が含まれます。
- カスタムコンテンツドキュメントの場合: 引用には、提供された元のコンテンツリストに対応するコンテンツブロックインデックスの範囲(0から始まる)が含まれます。
- ドキュメントインデックスは参照ソースを示すために提供され、元のリクエスト内のすべてのドキュメントのリストに従って0から始まるインデックスが付けられます。
自動チャンク化とカスタムコンテンツ
デフォルトでは、プレーンテキストとPDFドキュメントは自動的に文にチャンク化されます。引用の粒度をより細かく制御する必要がある場合(箇条書きや転写など)は、代わりにカスタムコンテンツドキュメントを使用してください。詳細はドキュメントタイプを参照してください。
例えば、ClaudeがRAGチャンクから特定の文を引用できるようにしたい場合は、各RAGチャンクをプレーンテキストドキュメントに入れるべきです。それ以上のチャンク化を行いたくない場合や、追加のチャンク化をカスタマイズしたい場合は、RAGチャンクをカスタムコンテンツドキュメントに入れることができます。
引用可能なコンテンツと引用不可能なコンテンツ
- ドキュメントの
source
コンテンツ内にあるテキストは引用可能です。 title
とcontext
はオプションフィールドであり、モデルに渡されますが、引用されるコンテンツには使用されません。title
は長さが制限されているため、context
フィールドはテキストや文字列化されたJSONとしてドキュメントのメタデータを保存するのに役立つ場合があります。
引用インデックス
- ドキュメントインデックスは、リクエスト内のすべてのドキュメントコンテンツブロックのリスト(すべてのメッセージにまたがる)から0から始まりインデックスが付けられます。
- 文字インデックスは0から始まり、終了インデックスは排他的です。
- ページ番号は1から始まり、終了ページ番号は排他的です。
- コンテンツブロックインデックスは、カスタムコンテンツドキュメントで提供された
content
リストから0から始まり、終了インデックスは排他的です。
トークンコスト
- 引用を有効にすると、システムプロンプトの追加とドキュメントのチャンク化により、入力トークンが少し増加します。
- しかし、引用機能は出力トークンの使用が非常に効率的です。内部的には、モデルは標準化された形式で引用を出力し、それが引用されたテキストとドキュメントの場所インデックスに解析されます。
cited_text
フィールドは便宜上提供されており、出力トークンにはカウントされません。 - 後続の会話ターンで渡される場合、
cited_text
も入力トークンにカウントされません。
機能の互換性
引用はプロンプトキャッシング、トークンカウント、バッチ処理など、他のAPI機能と連携して動作します。
ドキュメントタイプ
ドキュメントタイプの選択
引用には3つのドキュメントタイプをサポートしています:
タイプ | 最適な用途 | チャンク化 | 引用形式 |
---|---|---|---|
プレーンテキスト | シンプルなテキストドキュメント、散文 | 文 | 文字インデックス(0から始まる) |
テキストコンテンツを含むPDFファイル | 文 | ページ番号(1から始まる) | |
カスタムコンテンツ | リスト、転写、特殊なフォーマット、より細かい引用 | 追加のチャンク化なし | ブロックインデックス(0から始まる) |
プレーンテキストドキュメント
プレーンテキストドキュメントは自動的に文にチャンク化されます:
PDFドキュメント
PDFドキュメントはbase64エンコードされたデータとして提供されます。PDFテキストが抽出され、文にチャンク化されます。画像の引用はまだサポートされていないため、抽出可能なテキストを含まないドキュメントのスキャンであるPDFは引用できません。
カスタムコンテンツドキュメント
カスタムコンテンツドキュメントでは、引用の粒度を制御できます。追加のチャンク化は行われず、提供されたコンテンツブロックに従ってチャンクがモデルに提供されます。
レスポンス構造
引用が有効になっている場合、レスポンスには引用付きの複数のテキストブロックが含まれます:
ストリーミングサポート
ストリーミングレスポンスのために、現在のtext
コンテンツブロックのcitations
リストに追加する単一の引用を含むcitations_delta
タイプが追加されました。