NVIDIA
langchain-nvidia-ai-endpoints 包含用于通过NVIDIA NIM推理微服务构建模型应用程序的LangChain集成。NIM支持来自社区和NVIDIA的跨领域模型,如聊天、嵌入和重排序模型。这些模型由NVIDIA优化,以在NVIDIA加速基础设施上提供最佳性能,并作为NIM部署,这是一种易于使用的预构建容器,可以通过在NVIDIA加速基础设施上使用单一命令部署到任何地方。
NVIDIA 托管的 NIM 部署可以在 NVIDIA API 目录 中进行测试。测试完成后, 可以使用 NVIDIA AI Enterprise 许可证从 NVIDIA 的 API 目录中导出 NIM,并在本地或云端运行, 使企业拥有对其知识产权和 AI 应用程序的完全控制权。
NIM 按模型打包为容器镜像,并通过 NVIDIA NGC 目录以 NGC 容器镜像的形式分发。 其核心是,NIM 提供了简单、一致且熟悉的 API,用于在 AI 模型上运行推理。
以下是如何使用围绕文本生成和嵌入模型的一些常见功能的示例。
安装
pip install -U --quiet langchain-nvidia-ai-endpoints
设置
开始使用:
-
使用NVIDIA创建一个免费账户,该账户托管NVIDIA AI基础模型。
-
点击你选择的模型。
-
在输入下选择Python选项卡,然后点击
Get API Key。接着点击Generate Key。 -
复制并保存生成的密钥为 NVIDIA_API_KEY。此后,你应该能够访问这些端点。
import getpass
import os
if not os.environ.get("NVIDIA_API_KEY", "").startswith("nvapi-"):
nvidia_api_key = getpass.getpass("Enter your NVIDIA API key: ")
assert nvidia_api_key.startswith("nvapi-"), f"{nvidia_api_key[:5]}... is not a valid key"
os.environ["NVIDIA_API_KEY"] = nvidia_api_key
使用NVIDIA API目录
from langchain_nvidia_ai_endpoints import ChatNVIDIA
llm = ChatNVIDIA(model="mistralai/mixtral-8x22b-instruct-v0.1")
result = llm.invoke("Write a ballad about LangChain.")
print(result.content)
使用API,您可以查询NVIDIA API目录中提供的实时端点,从而从DGX托管的云计算环境中快速获取结果。所有模型均提供源代码访问权限,并且可以使用NVIDIA AI Enterprise的一部分——NVIDIA NIM,在您自己的计算集群上进行部署,相关内容将在下一部分使用NVIDIA NIM中展示。
使用NVIDIA NIMs
当准备部署时,您可以使用 NVIDIA NIM 自托管模型——它包含在 NVIDIA AI Enterprise 软件许可中——并在任何地方运行它们,使您拥有对自定义内容的完全所有权,并全面掌控您的知识产权 (IP) 和 AI 应用程序。
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="meta/llama3-8b-instruct")
# 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 AI基础端点
LangChain 直接支持多种 NVIDIA AI 基础模型,并提供熟悉的 API。
支持的活跃模型可以在API目录中找到。
以下是一些可能有用的示例,可以帮助你入门: