langchain-nvidia-ai-endpoints 包包含由 NVIDIA AI 基础模型 提供支持并托管在 NVIDIA API 目录 上的聊天模型和嵌入模型的 LangChain 集成。
NVIDIA AI 基础模型是社区和 NVIDIA 构建的模型,经过优化可在 NVIDIA 加速基础设施上提供最佳性能。您可以使用 API 查询 NVIDIA API 目录上可用的实时端点,从 DGX 托管的云计算环境中快速获取结果,或者您可以使用 NVIDIA NIM(包含在 NVIDIA AI Enterprise 许可证中)从 NVIDIA 的 API 目录下载模型。在本地运行模型的能力使您的企业拥有自定义能力,并完全控制您的知识产权和 AI 应用程序。
NIM 微服务按模型/模型系列打包为容器镜像,并通过 NVIDIA NGC 目录 作为 NGC 容器镜像分发。NIM 微服务的核心是提供交互式 API 以在 AI 模型上运行推理的容器。
本示例介绍如何使用 LangChain 通过 NVIDIAEmbeddings 类与支持的 NVIDIA 检索问答嵌入模型 进行交互,以实现检索增强生成。
有关通过此 API 访问聊天模型的更多信息,请参阅 ChatNVIDIA 文档。
安装包
访问 NVIDIA API 目录
要获得对 NVIDIA API 目录的访问权限,请执行以下操作:- 在 NVIDIA API 目录 上创建一个免费帐户并登录。
- 单击您的个人资料图标,然后单击 API Keys。将显示 API Keys 页面。
- 单击 Generate API Key。将显示 Generate API Key 窗口。
- 单击 Generate Key。您应该会看到 API Key Granted,并且您的密钥会出现。
- 复制密钥并将其保存为
NVIDIA_API_KEY。 - 要验证您的密钥,请使用以下代码。
使用 API 目录
初始化嵌入模型时,您可以通过传递模型(例如下面的NV-Embed-QA)来选择模型,或者不传递任何参数以使用默认模型。
Embeddings 方法,包括:
-
embed_query:为查询样本生成查询嵌入。 -
embed_documents:为要搜索的文档列表生成段落嵌入。 -
aembed_query/aembed_documents:上述方法的异步版本。
使用 NVIDIA NIM 微服务自托管
当您准备好部署 AI 应用程序时,可以使用 NVIDIA NIM 自托管模型。有关更多信息,请参阅 NVIDIA NIM 微服务。 以下代码连接到本地托管的 NIM 微服务。相似度
以下是对这些数据点相似度的快速测试: 查询:- 科尔恰特卡的天气怎么样?
- 意大利以哪些食物闻名?
- 我叫什么名字?我打赌你不记得了…
- 生活的意义到底是什么?
- 生活的意义在于享受乐趣 :D
- 科尔恰特卡的天气寒冷,冬季漫长而严酷。
- 意大利以意大利面、披萨、冰淇淋和浓缩咖啡而闻名。
- 我无法回忆个人姓名,只能提供信息。
- 生活的目的各不相同,通常被视为个人成就。
- 享受生活中的时刻确实是一种美妙的方式。
嵌入运行时
文档嵌入
- 科尔恰特卡的天气怎么样?
- 意大利以哪些食物闻名?
- 我叫什么名字?我打赌你不记得了…
- 生活的意义到底是什么?
- 生活的意义在于享受乐趣 :D
- 科尔恰特卡的天气寒冷,冬季漫长而严酷。
- 意大利以意大利面、披萨、冰淇淋和浓缩咖啡而闻名。
- 我无法回忆个人姓名,只能提供信息。
- 生活的目的各不相同,通常被视为个人成就。
- 享受生活中的时刻确实是一种美妙的方式。
截断
嵌入模型通常具有固定的上下文窗口,该窗口决定了可以嵌入的最大输入令牌数。此限制可能是硬限制(等于模型的最大输入令牌长度),或者是有效限制,超过该限制后嵌入的准确性会降低。 由于模型处理令牌,而应用程序通常处理文本,因此应用程序可能难以确保其输入保持在模型的令牌限制内。默认情况下,如果输入过大,会抛出异常。 为了解决这个问题,NVIDIA 的 NIM(API 目录或本地)提供了一个truncate 参数,如果输入过大,可以在服务器端对其进行截断。
truncate 参数有三个选项:
- “NONE”:默认选项。如果输入过大,会抛出异常。
- “START”:服务器从开头(左侧)截断输入,根据需要丢弃令牌。
- “END”:服务器从末尾(右侧)截断输入,根据需要丢弃令牌。
RAG 检索
以下是对 LangChain 表达式语言检索食谱条目 初始示例的重新利用,但使用 AI 基础模型在其游乐场环境中可用的 Mixtral 8x7B Instruct 和 NVIDIA 检索问答嵌入 模型执行。食谱中的后续示例也按预期运行,我们鼓励您使用这些选项进行探索。 提示: 我们建议使用 Mixtral 进行内部推理(即用于数据提取、工具选择等的指令遵循),并使用 Llama-Chat 进行单个最终的“根据历史和上下文为该用户制作一个简单响应来总结”响应。相关主题
langchain-nvidia-ai-endpoints包README- NVIDIA NIM 大型语言模型 (LLM) 概述
- NeMo Retriever 嵌入 NIM 概述
- NeMo Retriever 重排序 NIM 概述
ChatNVIDIA模型- NVIDIA 提供商页面
将这些文档 通过 MCP 连接到 Claude、VSCode 等,以获取实时答案。

