Loading...
    • 构建
    • 管理
    • 模型和定价
    • 客户端 SDK
    • API 参考
    Search...
    ⌘K
    第一步
    Claude 简介快速开始
    使用 Claude 构建
    功能概览使用 Messages APIClaude API 技能处理停止原因
    模型能力
    扩展思考自适应思考工作量任务预算(测试版)快速模式(测试版:研究预览)结构化输出引用流式消息批量处理搜索结果流式拒绝多语言支持嵌入
    工具
    概览工具使用原理网络搜索工具网络获取工具代码执行工具顾问工具内存工具Bash 工具计算机使用工具文本编辑器工具
    工具基础设施
    工具参考工具搜索程序化工具调用细粒度工具流式传输
    上下文管理
    上下文窗口压缩上下文编辑提示缓存Token 计数
    处理文件
    Files APIPDF 支持图像和视觉
    技能
    概览快速开始最佳实践企业技能API 中的技能
    MCP
    远程 MCP 服务器MCP 连接器
    提示工程
    概览提示最佳实践Console 提示工具
    测试和评估
    定义成功并构建评估在 Console 中使用评估工具降低延迟
    加强防护栏
    减少幻觉提高输出一致性缓解越狱减少提示泄露
    资源
    术语表
    发布说明
    Claude Platform
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    模型能力

    引用

    了解如何在 Claude 中使用引用功能来追踪和验证信息来源。

    Was this page helpful?

    • PDF 文档

    This feature is eligible for Zero Data Retention (ZDR). When your organization has a ZDR arrangement, data sent through this feature is not stored after the API response is returned.

    Claude 能够在回答有关文档的问题时提供详细的引用,帮助您追踪和验证响应中的信息来源。

    所有活跃模型都支持引用,除了 Haiku 3。

    请通过此表单分享您对引用功能的反馈和建议。

    以下是如何在 Messages API 中使用引用的示例:

    client = anthropic.Anthropic()
    
    response = client.messages.create(
        model="claude-opus-4-7",
        max_tokens=1024,
        messages=[
            {
                "role": "user",
                "content": [
                    {
                        "type": "document",
                        "source": {
                            "type": "text",
                            "media_type": "text/plain",
                            "data": "The grass is green. The sky is blue.",
                        },
                        "title": "My Document",
                        "context": "This is a trustworthy document.",
                        "citations": {"enabled": True},
                    },
                    {"type": "text", "text": "What color is the grass and sky?"},
                ],
            }
        ],
    )
    print(response)

    与基于提示的方法的比较

    与基于提示的引用解决方案相比,引用功能具有以下优势:

    • 成本节省: 如果您基于提示的方法要求 Claude 输出直接引用,您可能会看到成本节省,因为 cited_text 不计入您的输出令牌。
    • 更好的引用可靠性: 由于引用被解析为上述各自的响应格式,并且 cited_text 被提取,引用保证包含对提供的文档的有效指针。
    • 改进的引用质量: 在评估中,与纯粹基于提示的方法相比,引用功能被发现更可能引用文档中最相关的引用。

    引用如何工作

    通过以下步骤将引用与 Claude 集成:

    1. 1

      提供文档并启用引用

      • 包含任何支持格式的文档:PDF、纯文本 或自定义内容文档
      • 在每个文档上设置 citations.enabled=true。目前,引用必须在请求中的所有或没有文档上启用。
      • 请注意,目前仅支持文本引用,图像引用尚不可用。
    2. 2

      文档被处理

      • 文档内容被"分块"以定义可能引用的最小粒度。例如,句子分块将允许 Claude 引用单个句子或链接多个连续句子以引用段落(或更长)!
        • 对于 PDF: 文本按照PDF 支持中的描述提取,内容被分块为句子。目前不支持从 PDF 中引用图像。
        • 对于纯文本文档: 内容被分块为可以引用的句子。
        • 对于自定义内容文档: 您提供的内容块按原样使用,不进行进一步分块。
    3. 3

      Claude 提供引用的响应

      • 响应现在可能包含多个文本块,其中每个文本块可以包含 Claude 正在做出的声明和支持该声明的引用列表。
      • 引用引用源文档中的特定位置。这些引用的格式取决于被引用的文档类型。

    自动分块与自定义内容

    默认情况下,纯文本和 PDF 文档自动分块为句子。如果您需要更多地控制引用粒度(例如,对于项目符号或转录),请改用自定义内容文档。有关更多详情,请参阅文档类型。

    例如,如果您希望 Claude 能够从您的 RAG 块中引用特定句子,您应该将每个 RAG 块放入纯文本文档中。否则,如果您不希望进行任何进一步的分块,或者如果您想自定义任何额外的分块,您可以将 RAG 块放入自定义内容文档中。

    可引用与不可引用的内容

    • 文档 source 内容中找到的文本可以被引用。
    • title 和 context 是可选字段,将传递给模型但不用于引用内容。
    • title 的长度有限制,因此您可能会发现 context 字段对于存储任何文档元数据作为文本或字符串化 json 很有用。

    引用索引

    • 文档索引从请求中所有文档内容块的列表进行 0 索引(跨越所有消息)。
    • 字符索引是 0 索引的,具有排他性结束索引。
    • 页码是 1 索引的,具有排他性结束页码。
    • 内容块索引从自定义内容文档中提供的 content 列表进行 0 索引,具有排他性结束索引。

    令牌成本

    • 启用引用会因系统提示添加和文档分块而导致输入令牌略微增加。
    • 但是,引用功能对输出令牌非常高效。在幕后,模型以标准化格式输出引用,然后解析为引用文本和文档位置索引。cited_text 字段为方便起见提供,不计入输出令牌。
    • 当在后续对话轮次中传回时,cited_text 也不计入输入令牌。

    功能兼容性

    引用与其他 API 功能一起工作,包括提示缓存、令牌计数和批处理。

    引用和结构化输出不兼容

    引用不能与结构化输出一起使用。如果您在任何用户提供的文档(文档块或 RequestSearchResultBlock)上启用引用,并且还包含 output_config.format 参数(或已弃用的 output_format 参数),API 将返回 400 错误。

    这是因为引用需要将引用块与文本输出交错,这与结构化输出的严格 JSON 模式约束不兼容。

    将提示缓存与引用一起使用

    引用和提示缓存可以有效地一起使用。

    响应中生成的引用块不能直接缓存,但它们引用的源文档可以缓存。为了优化性能,将 cache_control 应用于您的顶级文档内容块。

    在此示例中:

    • 文档内容使用文档块上的 cache_control 进行缓存
    • 在文档上启用引用
    • Claude 可以生成带有引用的响应,同时受益于缓存的文档内容
    • 使用相同文档的后续请求将受益于缓存的内容

    文档类型

    选择文档类型

    支持三种文档类型用于引用。文档可以直接在消息中提供(base64、文本或 URL),或通过文件 API上传并通过 file_id 引用:

    类型最适合分块引用格式
    纯文本简单文本文档、散文句子字符索引(0 索引)
    PDF包含文本内容的 PDF 文件句子页码(1 索引)
    自定义内容列表、转录、特殊格式、更细粒度的引用无额外分块块索引(0 索引)

    不支持 .csv、.xlsx、.docx、.md 和 .txt 文件作为文档块。将这些转换为纯文本并直接包含在消息内容中。请参阅使用其他文件格式。

    纯文本文档

    纯文本文档自动分块为句子。您可以内联提供它们或通过其 file_id 引用:

    PDF 文档

    PDF 文档可以作为 base64 编码的数据或通过 file_id 提供。PDF 文本被提取并分块为句子。由于尚不支持图像引用,作为文档扫描且不包含可提取文本的 PDF 将无法引用。

    自定义内容文档

    自定义内容文档让您可以控制引用粒度。不进行额外分块,块根据提供的内容块提供给模型。

    {
        "type": "document",
        "source": {
            "type": "content",
            "content": [
                {"type": "text", "text": "First chunk"},
                {"type": "text", "text": "Second chunk"},
            ],
        },
        "title": "Document Title",  # optional
        "context": "Context about the document that will not be cited from",  # optional
        "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,
                    }
                ],
            },
            {
                "type": "text",
                "text": ". Information from page 5 states that ",
            },
            {
                "type": "text",
                "text": "water is essential",
                "citations": [
                    {
                        "type": "page_location",
                        "cited_text": "Water is essential for life.",
                        "document_index": 1,
                        "document_title": "PDF Document",
                        "start_page_number": 5,
                        "end_page_number": 6,
                    }
                ],
            },
            {
                "type": "text",
                "text": ". The custom document mentions ",
            },
            {
                "type": "text",
                "text": "important findings",
                "citations": [
                    {
                        "type": "content_block_location",
                        "cited_text": "These are important findings.",
                        "document_index": 2,
                        "document_title": "Custom Content Document",
                        "start_block_index": 0,
                        "end_block_index": 1,
                    }
                ],
            },
        ]
    }

    流式支持

    对于流式响应,包含一个 citations_delta 类型,其中包含要添加到当前 text 内容块上的 citations 列表的单个引用。

    • 对于 PDF: 引用包括页码范围(1 索引)。
    • 对于纯文本文档: 引用包括字符索引范围(0 索引)。
    • 对于自定义内容文档: 引用包括内容块索引范围(0 索引),对应于您提供的原始内容列表。
  1. 文档索引用于指示参考源,并根据您原始请求中的所有文档列表进行 0 索引。
  2. client = anthropic.Anthropic()
    
    # Long document content (e.g., technical documentation)
    long_document = (
        "This is a very long document with thousands of words..." + " ... " * 1000
    )  # Minimum cacheable length
    
    response = client.messages.create(
        model="claude-opus-4-7",
        max_tokens=1024,
        messages=[
            {
                "role": "user",
                "content": [
                    {
                        "type": "document",
                        "source": {
                            "type": "text",
                            "media_type": "text/plain",
                            "data": long_document,
                        },
                        "citations": {"enabled": True},
                        "cache_control": {
                            "type": "ephemeral"
                        },  # Cache the document content
                    },
                    {
                        "type": "text",
                        "text": "What does this document say about API features?",
                    },
                ],
            }
        ],
    )
    print(response)