Skip to main content
Anthropic 是一家人工智能安全与研究公司。他们是 Claude 的创造者。 这将帮助你开始使用 ChatAnthropic 聊天模型。有关所有 ChatAnthropic 功能和配置的详细文档,请访问 API 参考

概述

集成详情

模型功能

有关如何使用特定功能的指南,请参阅下表标题中的链接。

设置

你需要注册并获取 Anthropic API 密钥,并安装 @langchain/anthropic 集成包。

凭证

前往 Anthropic 网站 注册 Anthropic 并生成 API 密钥。完成此操作后,设置 ANTHROPIC_API_KEY 环境变量:
如果你想获得模型调用的自动跟踪,也可以取消注释以下内容来设置你的 LangSmith API 密钥:

安装

LangChain 的 ChatAnthropic 集成位于 @langchain/anthropic 包中:

实例化

现在我们可以实例化模型对象并生成聊天补全:

调用

内容块

需要注意 Anthropic 模型与大多数其他模型之间的一个关键区别:单个 Anthropic AIMessage 的内容可以是单个字符串,也可以是内容块列表。例如,当 Anthropic 模型调用工具时,工具调用是消息内容的一部分(同时也暴露在标准化的 AIMessage.tool_calls 字段中):

自定义请求头

你可以像这样在请求中传递自定义请求头:

提示缓存

Anthropic 支持缓存提示的某些部分,以降低需要长上下文的用例的成本。你可以缓存工具以及整个消息或单个块。 包含一个或多个块或工具定义且带有 "cache_control": { "type": "ephemeral" } 字段的初始请求将自动缓存该部分提示。此初始缓存步骤会产生额外费用,但后续请求将以降低的费率计费。缓存的生命周期为 5 分钟,但每次命中缓存时都会刷新。对于更长的缓存时间,请在 cache_control 字段中指定 "ttl": "1h" 存在一个最小可缓存提示长度,根据模型而异。有关更多信息,请参阅提示缓存详情 以下是缓存包含 LangChain 概念文档的系统消息部分的示例:
我们可以看到,在 Anthropic 返回的原始使用量字段中有一个名为 cache_creation_input_tokens 的新字段。 如果我们再次使用相同的消息,可以看到长文本的输入令牌是从缓存中读取的:

工具缓存

你也可以通过在工具定义中设置相同的 "cache_control": { "type": "ephemeral" } 来缓存工具。这目前要求你以 Anthropic 的原始工具格式绑定工具。以下是一个示例:
有关提示缓存工作原理的更多信息,请参阅 Anthropic 的文档

自定义客户端

Anthropic 模型可能托管在 Google Vertex 等云服务上,这些服务依赖于与主要 Anthropic 客户端具有相同接口的不同底层客户端。你可以通过提供一个返回已初始化 Anthropic 客户端实例的 createClient 方法来访问这些服务。以下是一个示例:

引用

Anthropic 支持引用功能,允许 Claude 根据用户提供的源材料为其答案附加上下文。此源材料可以作为文档内容块(描述完整文档)或搜索结果(描述从检索系统返回的相关段落或片段)提供。当查询中包含 "citations": { "enabled": true } 时,Claude 可能会在其响应中生成对所提供材料的直接引用。

文档示例

在此示例中,我们传递一个纯文本文档。在后台,Claude 自动将输入文本分块为句子,这些句子在生成引用时使用。

搜索结果示例

在此示例中,我们将搜索结果作为消息内容的一部分传递。这允许 Claude 在其响应中引用来自你自己的检索系统的特定段落或片段。 当你希望 Claude 引用来自特定知识集的信息,但希望直接带来你自己的预取/缓存内容,而不是让模型自动搜索或检索时,这种方法很有帮助。

来自工具的搜索结果

你也可以使用工具提供搜索结果,模型可以在其响应中引用这些结果。这非常适合 RAG(或检索增强生成)工作流,Claude 可以决定何时何地检索信息。当以搜索结果形式返回此信息时,它使 Claude 能够从工具返回的材料中创建引用。 以下是如何创建一个返回 Anthropic 引用 API 期望格式的搜索结果的工具:
了解有关 RAG 在 LangChain 中如何工作的更多信息 了解有关工具调用的更多信息

与文本分割器一起使用

Anthropic 还允许你使用自定义文档类型指定自己的分割。LangChain 文本分割器可用于为此目的生成有意义的分割。参见下面的示例,我们分割 LangChain.js README(一个 markdown 文档)并将其作为上下文传递给 Claude:

上下文管理

Anthropic 支持上下文编辑功能,可以自动管理模型的上下文窗口(例如,通过清除工具结果)。 有关详细信息和配置选项,请参阅 Anthropic 文档
上下文管理自 @langchain/anthropic@0.3.29 起支持

API 参考

有关所有 ChatAnthropic 功能和配置的详细文档,请访问 API 参考