当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从一个只提供答案的"黑箱"转变为一个展示其工作过程的透明研究助手。这建立了用户信任,并使他们能够在需要时更深入地探索您的源材料。