Skip to main content
本指南提供了快速入门 Amazon Nova 聊天模型 的概览。Amazon Nova 模型兼容 OpenAI,并通过指向 Nova 端点的 OpenAI SDK 进行访问,从而与 LangChain 的标准接口实现无缝集成。Amazon Nova API 提供免费套餐,但有速率限制。 对于需要更高吞吐量和企业功能的生产部署,请考虑通过 Amazon Bedrock 使用 Amazon Nova 模型。 您可以在 Amazon Nova 文档 中找到有关 Amazon Nova 模型、其功能和 API 详细信息。
API 参考有关所有 ChatAmazonNova 功能和配置选项的详细文档,请访问 ChatAmazonNova API 参考。有关 Amazon Nova 模型的详细信息和功能,请参阅 Amazon Nova 文档

概述

集成详情

模型功能

设置

要访问 Amazon Nova 模型,您需要 获取 API 凭证 并安装 langchain-amazon-nova 集成包。

安装

凭证

将您的 Nova API 凭证设置为环境变量:
要启用模型调用的自动跟踪,请设置您的 LangSmith API 密钥:

实例化

现在我们可以实例化模型对象并生成聊天补全:
有关支持的参数及其描述的完整列表,请参阅 Amazon Nova 文档

调用

内容块

Amazon Nova 消息可以包含单个字符串或内容块列表。您可以使用 content_blocks 属性访问标准化的内容块:
使用 content_blocks 将以与其他模型提供商一致的标准格式呈现内容。阅读更多关于 内容块 的信息。

流式传输

Amazon Nova 支持令牌级流式传输,用于实时响应生成:

异步流式传输

对于异步应用程序,请使用 astream

工具调用

Amazon Nova 在兼容的模型上支持工具调用(函数调用)。您可以使用 LangChain 模型配置文件检查模型是否支持工具调用。
有关 Nova 工具调用实现和可用参数的详细信息,请参阅 工具调用文档

基本工具用法

使用 Pydantic 模型或 LangChain @tool 将工具绑定到模型:
您也可以使用 tool_calls 属性以标准格式专门访问工具调用:

使用 LangChain 工具

您也可以使用标准的 LangChain 工具:

控制工具选择

Amazon Nova 支持通过 tool_choice 参数控制模型何时应使用工具:
Nova 的 tool_choice 值Amazon Nova 支持 tool_choice 值为 "auto""required""none"。与某些其他提供商不同,Nova 不支持 tool_choice="any" 或将特定工具名称指定为选择值。
tool_choice="required" 选项对于确保模型始终使用工具特别有用,例如在结构化输出场景中。

系统工具

Amazon Nova 提供内置系统工具,通过集成功能增强模型的能力。这些工具通过传递给模型初始化或作为调用参数来启用。

可用系统工具

Amazon Nova 支持以下内置工具:

Web grounding (nova_grounding)

grounding 工具允许模型搜索网络,并使用来自外部来源的实时信息来支撑其响应。
grounding 工具将自动搜索相关信息,并在响应中包含引用。

代码解释器 (nova_code_interpreter)

代码解释器工具使模型能够在沙盒环境中编写和执行 Python 代码,适用于数学计算、数据分析和代码生成任务。
代码解释器安全地执行代码,并返回代码及其输出。

组合系统工具

您可以同时启用多个系统工具:
模型将根据查询自动确定使用哪个工具。

系统工具作为调用参数

您也可以在调用时指定系统工具,而不是在初始化期间:
当您想对同一模型实例的不同查询使用不同的系统工具时,此方法很有用。
工具输出和引用使用系统工具时,模型的响应将包括:
  • 主要文本响应
  • 引用或参考文献(用于 grounding 工具)
  • 代码执行结果(用于代码解释器)
这些输出包含在消息的 response_metadata 中,可以访问以显示来源或进行调试。
有关系统工具、其参数和功能的完整详细信息,请参阅 Amazon Nova 文档

结构化输出

Amazon Nova 通过 with_structured_output() 方法支持结构化输出,使您能够使用 Pydantic 模型或 JSON 模式以结构化格式获取 LLM 响应。

使用 Pydantic 的基本用法

您可以使用 Pydantic 模型约束 LLM 响应以匹配特定结构:

JSON 模式支持

您也可以直接提供 JSON 模式:

流式结构化输出

结构化输出适用于流式传输。一旦完整响应到达,将返回解析后的对象:

访问原始消息

include_raw 参数允许同时访问解析后的输出和原始 AIMessage:
这对于调试、访问元数据或处理解析可能失败的边缘情况很有用。

嵌套和复杂模式

您可以使用嵌套的 Pydantic 模型来处理复杂的数据结构:
实现细节结构化输出在底层使用 Nova 的工具调用功能,并设置 tool_choice='required' 以确保一致的结构化响应。模式被转换为工具定义,工具调用响应被解析回请求的格式。

模型配置文件

Amazon Nova 提供具有不同功能的不同模型。它包括对 LangChain 模型配置文件 的支持。
模型功能因模型而异某些 Amazon Nova 模型支持视觉输入,而其他模型则不支持。在使用多模态功能之前,请务必检查模型功能。有关可用模型及其功能的完整列表,请参阅 Amazon Nova 文档

异步操作

对于需要高吞吐量的生产应用程序,请使用原生异步操作:

链式调用

Amazon Nova 模型与 LangChain 的 LCEL(LangChain 表达式语言)无缝协作,用于构建链:

错误处理

该模型包含具有可配置参数的内置重试逻辑:
要对重试进行额外控制,请使用 with_retry 方法:

故障排除

连接问题

如果您遇到连接错误,请验证您的环境变量是否设置正确:
有关身份验证和连接问题,请参阅 Amazon Nova 文档

压缩错误

ChatAmazonNova 客户端会自动禁用压缩以避免潜在的解压缩问题。
如果您需要自定义 HTTP 客户端行为,可以访问底层的 OpenAI 客户端:

工具调用验证错误

如果在绑定工具时收到验证错误,请确保模型支持工具调用。

API 参考

有关所有 ChatAmazonNova 功能和配置的详细文档,请访问 ChatAmazonNova API 参考。 有关 Amazon Nova 特定功能、模型详细信息和 API 规范,请参阅 Amazon Nova 文档