引用
Claudeは、文書に関する質問に回答する際に詳細な引用を提供することができ、回答における情報源の追跡と検証を支援します。
引用機能は現在、Claude 3.7 Sonnet、Claude 3.5 Sonnet(新)、および3.5 Haikuで利用可能です。
Claude 3.7 Sonnetでの引用
Claude 3.7 Sonnetは、ユーザーからのより明示的な指示がない場合、他のClaudeモデルと比較して引用を行う可能性が低くなることがあります。Claude 3.7 Sonnetで引用を使用する場合、例えば「回答の裏付けとして引用を使用してください」のように、user
ターンに追加の指示を含めることをお勧めします。
また、モデルに回答の構造化を求められた場合、その形式内で明示的に引用を使用するよう指示されない限り、引用を使用する可能性は低くなることが観察されています。例えば、モデルに
引用機能に関するフィードバックや提案をこのフォームを使用して共有してください。
以下は、Messages APIで引用を使用する例です:
プロンプトベースのアプローチとの比較
プロンプトベースの引用ソリューションと比較して、引用機能には以下の利点があります:
- コスト削減: プロンプトベースのアプローチでClaudeに直接引用を出力させる場合、
cited_text
が出力トークンとしてカウントされないため、コスト削減が見込めます。 - より信頼性の高い引用: 引用を上記の各レスポンス形式に解析し、
cited_text
を抽出するため、提供された文書への有効な参照が保証されます。 - 引用の質の向上: 評価では、純粋にプロンプトベースのアプローチと比較して、引用機能は文書から最も関連性の高い引用を行う可能性が大幅に高いことが分かりました。
引用の仕組み
以下の手順でClaudeに引用を統合します:
文書の処理
- 可能な引用の最小粒度を定義するために、文書の内容は「チャンク」に分割されます。例えば、文単位のチャンク分割により、Claudeは1つの文を引用したり、複数の連続した文を連結してパラグラフ(またはそれ以上)を引用したりすることができます!
- PDFの場合: テキストはPDFサポートで説明されているように抽出され、内容は文に分割されます。PDFからの画像の引用は現在サポートされていません。
- プレーンテキスト文書の場合: 内容は引用可能な文に分割されます。
- カスタムコンテンツ文書の場合: 提供されたコンテンツブロックがそのまま使用され、それ以上のチャンク分割は行われません。
Claudeが引用付きの回答を提供
- 回答には、各テキストブロックがClaudeの主張とその主張を裏付ける引用のリストを含む複数のテキストブロックが含まれる場合があります。
- 引用はソース文書内の特定の場所を参照します。これらの引用の形式は、引用元の文書の種類によって異なります。
- PDFの場合: 引用にはページ番号の範囲(1から始まる)が含まれます。
- プレーンテキスト文書の場合: 引用には文字インデックスの範囲(0から始まる)が含まれます。
- カスタムコンテンツ文書の場合: 引用には、提供された元のコンテンツリストに対応するコンテンツブロックインデックスの範囲(0から始まる)が含まれます。
- 文書インデックスは参照元を示すために提供され、元のリクエストのすべての文書のリストに従って0から始まります。
自動チャンク分割とカスタムコンテンツ
デフォルトでは、プレーンテキストとPDF文書は自動的に文に分割されます。引用の粒度をより細かく制御する必要がある場合(箇条書きや書き起こしなど)は、代わりにカスタムコンテンツ文書を使用してください。詳細については文書タイプを参照してください。
例えば、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
タイプを追加しました。