加载中

当Claude根据您提供的文档回答问题时,用户可能会认为它只是在利用其训练数据。但如果Claude能够准确展示它在哪里找到了特定信息呢?这就是引用功能的用途所在——这是一项强大的功能,它让Claude能够引用源文档中的特定部分,并向用户准确展示每条信息的来源。

为什么引用很重要

想象一下,您向Claude询问地球大气层是如何形成的,并得到了一个详细的答案。如果没有引用,用户就无法验证这些信息,也无法理解Claude实际上是在引用您提供的某个特定文档。引用功能通过创建一条从Claude的回答追溯到您的源材料的清晰路径,解决了这个透明度问题。

启用引用功能

要启用引用功能,您需要修改文档消息结构。在您的文档块中添加两个新字段:

python
{
    "type": "document",
    "source": {
        "type": "base64",
        "media_type": "application/pdf",
        "data": file_bytes,
    },
    "title": "earth.pdf",
    "citations": { "enabled": True }
}

title字段为您的文档提供一个可读的名称,而citations: {"enabled": True}则告诉Claude追踪它在哪里找到了信息。

理解引用结构

启用引用功能后,Claude的响应会变得更加复杂。您得到的不再是简单的文本,而是包含每个论述的引用信息的结构化数据。

每个引用都包含几个关键信息:

  • cited_text - 支持Claude陈述的文档中的确切文本
  • document_index - Claude引用的是哪个文档(当您提供多个文档时很有用)
  • document_title - 您为该文档指定的标题
  • start_page_number - 被引用文本开始的位置
  • end_page_number - 被引用文本结束的位置

使用引用构建用户界面

引用功能的真正威力在于构建能够让这些信息易于访问的用户界面。您可以创建交互元素,让用户将鼠标悬停在引用标记上,即可准确看到信息的来源。

这创造了一种透明的体验,用户可以:

  • 看到Claude的答案是基于实际的源材料
  • 通过查看原始文档来验证信息
  • 理解每条被引用信息周围的上下文

纯文本引用

引用功能不仅限于PDF文档。您也可以将其用于纯文本来源。在处理文本时,请按如下方式修改您的文档结构:

python
{
    "type": "document", 
    "source": {
        "type": "text",
        "media_type": "text/plain",
        "data": article_text,
    },
    "title": "earth_article",
    "citations": { "enabled": True }
}

对于纯文本来源,您将获得的不是页码,而是字符位置,它能精确指出Claude在文本中找到每条信息的确切位置。

何时使用引用功能

在以下情况下,引用功能特别有价值:

  • 用户需要验证信息的准确性
  • 您正在处理用户应该能够引用的权威文档
  • 信息来源的透明度对您的应用程序至关重要
  • 用户可能想要探索特定事实周围更广泛的上下文

通过实现引用功能,您将Claude从一个只提供答案的"黑箱"转变为一个展示其工作过程的透明研究助手。这建立了用户信任,并使他们能够在需要时更深入地探索您的源材料。