以编程方式使用文档

LangChain 与 NVIDIA 合作,通过四种机制加速 AI 代理:

  1. 组件
  2. LangGraph 加速原语
  3. NeMo Agent Toolkit 优化
  4. 全栈蓝图

组件

langchain-nvidia-ai-endpoints 包提供了由 NVIDIA AI 驱动的 LangChain 集成,支持聊天、嵌入、重排序和检索功能——包括 Nemotron,这是 NVIDIA 为代理型 AI 构建的开源模型系列,以及 NVIDIA API 目录.

上的数百个社区模型。模型在 NVIDIA NIM 微服务上运行:这些容器镜像提供标准化的 OpenAI 兼容 API,并使用 TensorRT-LLM 优化以在 NVIDIA 硬件上实现最佳吞吐量。可通过托管 API 目录访问或本地自托管部署。

组件描述
聊天ChatNVIDIA任意 NVIDIA 托管模型或本地 NIM 的聊天补全
聊天(Docker)ChatNVIDIADynamoChatNVIDIA 包含 Dynamo 部署的 KV 缓存路由提示
嵌入NVIDIAEmbeddings用于语义搜索和 RAG 的密集向量嵌入
重排序NVIDIARerank按查询相关性对文档进行重排序
检索NVIDIARAGRetriever从 NVIDIA RAG 蓝图服务器进行检索

聊天:ChatNVIDIA

ChatNVIDIA 通过 NVIDIA 托管模型和本地 NIM 部署提供聊天补全功能。支持工具调用、结构化输出、图像输入和流式响应。

安装

pip install -qU langchain-nvidia-ai-endpoints

访问 NVIDIA API 目录

  1. NVIDIA API 目录 上创建免费账户并登录。
  2. 点击您的个人资料图标,然后 **API 密钥** > **生成 API 密钥**.
  3. 复制并保存密钥为 NVIDIA_API_KEY.
if os.environ.get("NVIDIA_API_KEY", "").startswith("nvapi-"):
    print("Valid NVIDIA_API_KEY already in environment. Delete to reset")
else:
    nvapi_key = getpass.getpass("NVAPI Key (starts with nvapi-): ")
    assert nvapi_key.startswith(
        "nvapi-"
    ), f"{nvapi_key[:5]}... is not a valid key"
    os.environ["NVIDIA_API_KEY"] = nvapi_key

Nemotron:代理型 AI 的精选模型

Nemotron 是 NVIDIA 为代理型 AI 设计的开源模型系列。这些模型采用混合 Mamba-Transformer 专家架构,在领先基准测试中表现出色,具有高吞吐量并支持高达 1M token 的上下文窗口。Nemotron 模型权重、训练数据和实现配方在 NVIDIA 开放模型许可证下公开发布。

from langchain_nvidia_ai_endpoints import ChatNVIDIA

# Nemotron 3 Super — efficient reasoning and agentic tasks
llm = ChatNVIDIA(model="nvidia/nemotron-3-super-120b-a12b")
result = llm.invoke("Plan a three-step research workflow for competitive analysis.")
print(result.content)

请参阅 ChatNVIDIA 集成页面 获取完整文档,包括工具调用、多模态输入和 Nemotron 特定示例。

聊天:ChatNVIDIADynamo

ChatNVIDIADynamoChatNVIDIA 的替代方案,适用于 NVIDIA Dynamo 部署。它会自动向每个请求注入 KV 缓存路由提示,使 Dynamo 调度器能够优化内存分配、负载路由和请求优先级。

from langchain_nvidia_ai_endpoints import ChatNVIDIADynamo

llm = ChatNVIDIADynamo(
    base_url="http://localhost:8099/v1",
    model="nvidia/nemotron-3-super-120b-a12b",
    osl=512,             # expected output sequence length (tokens)
    iat=250,             # expected inter-arrival time (ms)
    latency_sensitivity=1.0,
    priority=1,
)
result = llm.invoke("Summarize KV cache routing in one sentence.")
print(result.content)

请参阅 ChatNVIDIA 集成页面 获取完整 ChatNVIDIADynamo 参考资料,包括每次调用的覆盖选项和流式传输。

嵌入:NVIDIAEmbeddings

NVIDIAEmbeddings 生成用于语义搜索和 RAG 管道的密集向量嵌入。

from langchain_nvidia_ai_endpoints import NVIDIAEmbeddings

embedder = NVIDIAEmbeddings(model="NV-Embed-QA")
embedder.embed_query("What's the temperature today?")

请参阅 NVIDIAEmbeddings 集成页面 获取完整文档。

重排序:NVIDIARerank

NVIDIARerank 使用 NeMo Retriever 重排序 NIM 根据与查询的相关性对文档列表进行重排序。

from langchain_core.documents import Document
from langchain_nvidia_ai_endpoints import NVIDIARerank

ranker = NVIDIARerank(model="nvidia/llama-3.2-nv-rerankqa-1b-v1")
docs = ranker.compress_documents(
    query="What is GPU memory bandwidth?",
    documents=[Document(page_content=p) for p in passages],
)

检索:NVIDIARAGRetriever

NVIDIARAGRetriever 将 LangChain 连接到正在运行的 NVIDIA RAG Blueprint 服务器,并通过 /v1/search 端点检索相关文档。支持重排序、查询重写和元数据过滤。

from langchain_nvidia_ai_endpoints import NVIDIARAGRetriever

retriever = NVIDIARAGRetriever(base_url="http://localhost:8081", k=4)
docs = retriever.invoke("What is NVIDIA NIM?")

请参阅 NVIDIARAGRetriever 集成页面 获取完整文档。

使用 NVIDIA NIM 微服务进行自托管

准备好部署 AI 应用程序后,可以使用 NVIDIA NIM 自托管模型。更多信息,请参阅 NVIDIA NIM 微服务.

from langchain_nvidia_ai_endpoints import ChatNVIDIA, NVIDIAEmbeddings, NVIDIARerank

# connect to a chat NIM running at localhost:8000, specifying a model
llm = ChatNVIDIA(base_url="http://localhost:8000/v1", model="nvidia/nemotron-3-super-120b-a12b")

# connect to an embedding NIM running at localhost:8080
embedder = NVIDIAEmbeddings(base_url="http://localhost:8080/v1")

# connect to a reranking NIM running at localhost:2016
ranker = NVIDIARerank(base_url="http://localhost:2016/v1")

使用 NVIDIA 加速 LangGraph

langchain-nvidia-langgraph 包为 LangGraph 提供 NVIDIA 优化的执行策略。它提供两种在编译时应用的互补优化:

  • 并发执行:自动识别并并发运行独立节点,消除不必要的顺序瓶颈。
  • 投机执行:条件边的两个分支同时运行;一旦路由条件确定,错误的分支将被丢弃。

这两种优化都无需更改节点逻辑或图边缘。

安装

pip install -qU langchain-nvidia-langgraph

并发执行

StateGraph 从 LangGraph 替换为 StateGraphlangchain_nvidia_langgraph.graph。图定义的其他部分保持不变。

from langchain_nvidia_langgraph.graph import StateGraph, OptimizationConfig
from langgraph.graph import END
from typing import TypedDict

class AgentState(TypedDict):
  ...

graph = StateGraph(AgentState)
app = graph.compile(optimization=OptimizationConfig(enable_parallel=True))

或包装一个现有的 StateGraph:

from langgraph.graph import StateGraph as LangGraphStateGraph
graph = LangGraphStateGraph(AgentState)
app = with_app_compile(graph).compile(optimization=OptimizationConfig(enable_parallel=True))

装饰器可以明确控制哪些节点参与优化:

from langchain_nvidia_langgraph.graph import sequential, depends_on, speculation_unsafe

# Prevent a node from being parallelized (e.g., it writes to shared state)
@sequential
def write_to_db(state):
    ...

# Declare a dependency not expressed in graph edges
@depends_on("write_to_db")
def next_action(state):
    ...

投机执行

通过在编译时启用投机执行。 OptimizationConfig 执行器并行运行条件分支,并保留与路由决策匹配的结果。

app = graph.compile(optimization=OptimizationConfig(enable_speculation=True))

使用 LangSmith 遥测的 NeMo Agent Toolkit 优化

NVIDIA NeMo Agent Toolkit 是一个开源 AI 工具包,用于构建、性能分析和优化智能体。开发者可以使用最少的代码更改将 LangChain 与 NeMo Agent Toolkit 结合,以启用性能分析、评估、GPU 容量规划和自动化优化。NeMo Agent Toolkit 与 LangSmith 可互操作。

全栈蓝图

NVIDIA 与 LangChain 合作推出 全栈示例 展示如何将这些组件组合用于两个企业用例,重点关注生产就绪性:

  • - NVIDIA AI-Q 是一个使用 LangChain Deep Agents 在企业数据源上进行深度研究的蓝图
  • - NVIDIA VSS 是一个使用 LangChain 和 LangGraph 进行视频搜索和摘要的蓝图

其他资源