ChatNVIDIA 功能和配置的详细文档,请访问 API reference。
概述
langchain-nvidia-ai-endpoints 包含用于 chat models 和 embeddings 的 LangChain 集成,这些集成由 NVIDIA AI Foundation Models 提供,并在 NVIDIA API Catalog 上托管。
一个强大的起点是 Nemotron,这是 NVIDIA 为 agentic AI 专门设计的开源模型系列。Nemotron 模型采用混合 Mamba-Transformer 专家混合架构,比同类模型具有更高的准确性和高达 3 倍的吞吐量,并支持高达 1M token 的上下文窗口。模型权重、训练数据和实现配方均在 NVIDIA Open Model License 下公开发布。
NVIDIA AI Foundation 模型在 NIM 微服务上运行:通过 NVIDIA NGC Catalog 分发的容器镜像,提供标准 OpenAI 兼容 API,并使用 TensorRT-LLM 优化以实现最大吞吐量。它们可以通过托管的 NVIDIA API Catalog 访问,或使用 NVIDIA AI Enterprise 许可证在本地部署。
本页面介绍了如何使用 LangChain 通过 ChatNVIDIA 与 NVIDIA 模型交互,包括 Nemotron 和 API Catalog 中的其他模型。
有关通过此 API 访问嵌入模型的更多信息,请参阅 NVIDIAEmbeddings 文档。
集成详情
模型功能
安装包
访问 NVIDIA API Catalog
要获取 NVIDIA API Catalog 的访问权限,请执行以下操作:- 在 NVIDIA API Catalog 上创建一个免费账户并登录。
- 点击您的个人资料图标,然后点击 API Keys。将显示 API Keys 页面。
- 点击 Generate API Key。将显示 Generate API Key 窗口。
- 点击 Generate Key。您应该看到 API Key Granted,您的密钥将显示出来。
- 复制并保存密钥作为
NVIDIA_API_KEY。 - 要验证您的密钥,请使用以下代码。
实例化
现在我们可以访问 NVIDIA API Catalog 中的模型。Nemotron 模型是 agentic 和推理工作负载的推荐起点:调用
启用思考模式
一些 NVIDIA 推理模型支持可配置的思考模式。通过向invoke 传递 thinking_mode=True 来为单个请求启用思考:
with_thinking_mode:
get_available_models 并检查 supports_thinking。这将查询 NVIDIA 模型列表 API,然后过滤返回的模型元数据:
ChatNVIDIA 将 thinking_mode=True 转换为所选模型所需的控制机制。一些模型使用请求参数,例如 chat_template_kwargs={"enable_thinking": True}。其他模型使用基于提示的控制,其中 LangChain 将模型特定的思考前缀附加到系统消息,或者如果系统消息不存在则创建一个系统消息。如果为模型配置了这两种机制,请求参数将优先。
在构建 ChatNVIDIA 时不要传递 thinking_mode=True。未知的构造参数成为原始 model_kwargs,这些参数直接合并到 API 负载中。思考模式转换仅在调用 kwargs 或绑定 kwargs 中运行,因此请使用以下形式之一:
使用 Nemotron 3.5 Super VL
Nemotron 3.5 Super VL 通过ChatNVIDIA 接受文本和图像输入。用于聊天、结构化输出或作为深度智能体中的模型。
以下示例使用了连接器注册的模型 ID、8,192-token 完成限制,并显式启用了思考:
返回结构化输出
将 JSON schema 传递给with_structured_output 以将响应解析为字典:
with_structured_output 后绑定请求参数:
描述图像
对本地 PNG 进行编码,并将其包含在 标准图像内容块 中。将photo.png 替换为您的图像路径:
与 Deep Agents 一起使用
Deep Agents 提供内置的智能体循环和工具。安装deepagents,然后将 super_model 传递给 create_deep_agent:
message:
使用 NVIDIA NIM 微服务自托管
当您准备好部署 AI 应用程序时,可以使用 NVIDIA NIM 自托管模型。有关更多信息,请参阅 NVIDIA NIM Microservices。 以下代码连接到本地托管的 NIM 微服务。流式输出、批量处理和异步
这些模型原生支持流式输出,并且与所有 LangChain LLMs 一样,它们还暴露了批量方法来处理并发请求,以及用于调用、流式输出和批量的异步方法。以下是一些示例。支持的模型
查询available_models 仍然会为您提供 API 凭据提供的其他所有模型。
playground_ 前缀是可选的。
模型类型
上述所有模型都受支持,并且可以通过ChatNVIDIA 访问。
一些模型类型支持独特的提示技术和聊天消息。我们将回顾其中一些重要的类型。
要了解更多关于特定模型的信息,请导航到 AI Foundation 模型的 API 部分 如链接所示。
Nemotron 模型用于智能体 AI
Nemotron 是 NVIDIA 开发的专为智能体工作流设计的开放模型系列。主要特点:- 高效性:混合 Mamba-Transformer MoE 架构比同等密度的模型吞吐量高 3 倍
- 长上下文:原生支持高达 1M Token 的上下文窗口
- 智能体推理:专门训练用于多步规划、工具使用和自主软件工程任务
- 开放性:权重、训练配方和精选数据集在 NVIDIA 开放模型许可证下发布
一般对话
meta/llama3-8b-instruct 和 mistralai/mixtral-8x22b-instruct-v0.1 等模型是通用的模型,可用于任何 LangChain 对话消息。示例如下。
代码生成
这些模型接受与常规聊天模型相同的参数和输入结构,但在代码生成和结构化代码任务上表现更佳。meta/codellama-70b 是这方面的例子。
多模态
NVIDIA 也支持多模态输入,这意味着您可以提供图像和文本供模型进行推理。支持多模态输入的模型示例是nvidia/neva-22b。
以下是一个使用示例:
以 URL 形式传递图像
以 base64 编码字符串形式传递图像
目前,客户端需要一些额外处理来支持像上面这样的大图像。但对于较小的图像(以及为了更好地说明底层过程),我们可以直接传递图像,如下所示:直接在字符串中
NVIDIA API 独特地接受内联在<img/> HTML 标签中的 base64 图像。虽然这与其他 LLM 不兼容,但您可以直接相应地提示模型。
在 RunnableWithMessageHistory 中的示例用法
像其他集成一样,ChatNVIDIA 可以支持 RunnableWithMessageHistory,这类似于使用 ConversationChain。以下,我们展示了应用于 mistralai/mixtral-8x22b-instruct-v0.1 模型的 LangChain RunnableWithMessageHistory 示例。
工具调用
从 v0.2 版本开始,ChatNVIDIA 支持 bind_tools。
ChatNVIDIA 提供与 build.nvidia.com 上的各种模型以及本地 NIM 的集成。并非所有这些模型都经过工具调用训练。请确保选择支持工具调用的模型进行实验和应用。
您可以通过以下方式获取支持工具调用的模型列表,
与 NVIDIA Dynamo 配合使用
NVIDIA Dynamo 是一个分布式推理服务框架,旨在在大规模数据中心的多节点环境中部署模型。它通过将推理的不同阶段分散到不同的 GPU 上、智能地将请求路由到适当的 GPU 以避免冗余计算、并通过数据缓存扩展 GPU 内存以经济型存储层,从而简化和自动化分布式服务的复杂性。ChatNVIDIADynamo 是 ChatNVIDIA 的即插即用替代品,它自动将 nvext.agent_hints 注入每个请求。这些提示告诉 Dynamo 部署:
osl(输出序列长度)—— 预期多少个 Token,以便调度器规划内存分配iat(到达间隔时间)—— 请求到达的速度,以便路由器预测负载latency_sensitivity—— 请求的延迟敏感性,以便交互式调用获得优先路由priority—— 请求优先级,以便后台工作可以优先于关键路径请求
prefix_id,使路由器能够跟踪 KV 缓存的亲和性。
本节假设您已经有一个运行的 NVIDIA Dynamo 部署。
基本用法
将ChatNVIDIA 替换为 ChatNVIDIADynamo,每个请求都会自动包含路由提示。所有标准 ChatNVIDIA 参数都受支持。
ChatNVIDIADynamo 接受 ChatNVIDIA 支持的四个额外参数:
在构造时设置默认值
在创建模型实例时配置 Dynamo 提示。当模型实例始终服务于特定角色时(例如高优先级交互式助手与低优先级后台摘要器),这很有用。每次调用时覆盖
Dynamo 参数也可以在每次调用时覆盖。当同一个模型实例处理具有不同特征的请求时,这很有用。使用 Dynamo 提示流式输出
Dynamo 提示包含在初始流式请求中。Dynamo 使用它们在 Token 开始流动之前选择最佳工作线程。检查负载
为了调试,使用内部_get_payload 方法检查 ChatNVIDIADynamo 发送到 NIM 端点的确切负载。
nvext.agent_hints 部分:
API 参考
有关所有ChatNVIDIA 功能和配置的详细文档,请访问 API 参考。
相关主题
langchain-nvidia-ai-endpoints包README- Nemotron 模型系列 — NVIDIA 用于智能体 AI 的开放模型
- NVIDIA API 目录 — 浏览和尝试所有可用模型
- NVIDIA 大语言模型(LLM)NIM 概述
- NeMo 检索嵌入 NIM 概述
- NeMo 检索重排序 NIM 概述
NVIDIAEmbeddings模型用于 RAG 工作流- NVIDIA 提供页面
- 使用 NVIDIA OpenShell 的沙盒化智能体
- 训练后智能体工作流
- NVIDIA Dynamo — 开源推理框架
- Dynamo 快速入门指南 — 获取本地部署运行
- KV 缓存感知路由 — 智能路由器的工作原理
官方原文:src/oss/python/integrations/chat/nvidia_ai_endpoints.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。