加载中

当 Claude 根据您提供的文档回答问题时,用户可能会以为它只是从训练数据中提取信息。但如果 Claude 实际上是在引用特定来源呢?引用功能让您能够向用户准确展示 Claude 从何处找到其信息,从而为您的 AI 应用程序建立信任和透明度。

为什么引用很重要

如果没有引用,用户会认为 Claude 的回答来自记忆。他们无法验证信息,也无法理解这是基于您提供的特定文档。引用通过向用户展示 Claude 用于生成其回答每个部分的确切源材料来解决这个问题。

启用引用

要启用引用,请在您的文档消息中添加两个字段:

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

title 字段为您的文档提供一个在引用中显示的名称。带有 enabled: True 的 citations 字段告诉 Claude 跟踪它在何处找到信息。

引用结构

启用引用后,Claude 的响应会变得更加复杂。您得到的不是简单的文本,而是带有引用信息的结构化内容:

每个引用包含:

  • cited_text - Claude 从您的文档中引用的确切文本
  • document_index - 哪个文档(如果您提供了多个文档)
  • document_title - 您为文档指定的标题
  • start_page_number - 被引用文本开始的位置
  • end_page_number - 被引用文本结束的位置

构建引用界面

引用的真正威力来自于构建显示它们的用户界面。您可以在文本中创建编号引用,链接到详细的引用信息:

当用户悬停或点击引用编号时,他们会准确看到 Claude 引用了哪个文档和哪些页面。这种透明度帮助用户验证信息,并增强对 Claude 响应的信心。

纯文本引用

引用不仅限于 PDF。您也可以将其用于纯文本文档:

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

对于纯文本,您会得到 CitationCharLocation 对象,而不是页面位置。这些对象提供文本中的字符位置,使您能够高亮显示 Claude 引用的确切句子或段落。

何时使用引用

在以下情况下,引用至关重要:

  • 用户需要验证信息的准确性
  • 您正在处理敏感或重要的文档
  • 关于来源的透明度能够为您的应用程序建立信任
  • 用户可能想要阅读原始源材料

通过实现引用,您将 Claude 从一个只给出答案的"黑盒"转变为一个展示其工作过程的透明系统,使您的 AI 应用程序更加可信和可验证。