为智能体 AI 应用配备工具将引领 AI 进入下一阶段。通过使自主智能体和其他 AI 应用能够获取实时数据、执行操作,并与外部系统交互,开发者可以弥合与新的真实用例之间的差距,从而显著提高工作效率和用户体验。
xpander AI 是 NVIDIA Inception 计划的成员,该公司开发了独特的 AI 就绪型连接器技术,可在 AI 应用和互补系统之间实现连接,从而将强大的新用例变为现实。xpander 帮助 AI 工程师使用高级工具调用用例构建应用,而无需进行大量集成工作或提高工具调用的准确性,这两者都是生产过程中的常见障碍。
xpander AI 连接器可通过多智能体 AI 工作流帮助开发者克服这些挑战,该工作流可提取与目标系统相关的数据,并为该系统创建经过优化的连接器,以供智能体应用使用。
利用 NVIDIA NIM 微服务提高推理性能并使用特定于案例的优化的企业现在可以使用 xpander AI 为其 NIM 应用配备代理工具。这使公司能够构建先进的、特定于案例的 AI 应用,同时最大限度地减少与外部系统和 API 的集成挑战。
本文将介绍大语言模型(LLMs)中的代理工具调用、AI 就绪型连接器,以及如何使用 Xpander AI 为 NVIDIA NIM 应用配备代理工具。
什么是 NVIDIA NIM?
NVIDIA NIM 是 NVIDIA AI Enterprise 的一部分,是一套直观的推理微服务,旨在加速企业中的生成式 AI 部署。NIM 支持各种 AI 模型(包括 NVIDIA AI Foundation、社区和自定义模型),可确保在本地或云端实现无缝、可扩展的 AI 推理,同时利用行业标准 API。
NIM 微服务提供交互式 API,可以在 AI 模型上运行推理。它们根据模型或模型系列被打包为容器镜像(图 1)。每个 NIM 都是自己的 Docker 容器,具有一个模型,并且包含一个与任何具有足够内存的 NVIDIA GPU 兼容的运行时。在幕后,NIM 使用 NVIDIA TensorRT-LLM 来优化模型,并针对 NVIDIA H100 Tensor Core GPU、NVIDIA A100 Tensor Core GPU、NVIDIA A10 Tensor Core GPU 和 NVIDIA L40S GPU 优化专门的加速配置文件。
NVIDIA 开发者计划会员现在可以免费使用 NIM 微服务。
什么是 LLM 工具调用?
工具调用(也称为函数调用)是指 LLM 能够与外部工具、API 或函数交互,以执行文本生成以外的任务。该过程包括定义工具、提示LLM、生成工具调用、执行工具以及将结果整合到LLM响应中。它通过提供实时数据的访问权限、执行更复杂的任务并提高准确性来增强LLM功能。
工具是一种接口,用于接受输入、执行动作,然后根据预定义的模式在结构化输出中返回该动作的结果。工具通常包含外部 API 调用,智能体可使用这些调用执行超出 LLM 功能的任务,但不限于外部 API 调用。例如,为了获取您所在城市的当前温度,可以使用天气工具。或者,为了了解您最喜欢的运动队在今天的比赛中的表现,可以使用通用网络搜索工具或 ESPN 工具。
LLM 中的工具调用可显著扩展 LLM 功能的通用性和强大功能,从而为开发者带来诸多显著优势。它提供实时数据的访问权限,使模型能够从外部来源(例如销售团队最紧急的 CRM 更新或最新的系统日志记录)获取最新信息,从而提高响应的准确性和相关性。
此外,工具调用使LLMs能够执行需要专业技能的复杂任务,例如执行高级数学计算,或通过查询数据库访问训练数据以外的信息。此功能还通过将LLMs与各种API和系统集成来促进工作流程自动化,从而提高效率,并支持开发可以执行多个、并行、复杂功能的复杂AI应用。
为支持工具调用,LLM 经过训练,可检测何时调用特定函数,然后输出包含该函数及其参数的结构化响应。NIM 支持对具有上述功能的模型进行工具调用。LLM 被封装为 NIM,可在 NVIDIA 加速基础设施上提供出色的可部署性、可用性和性能。微服务包装还使用与 OpenAI 兼容的 API,因此开发者可以构建功能强大的世界级生成式 AI 代理,并减轻一些最常见的痛点。
有关使用 Llama 3.1 8B Instruct NIM、LangChain 和 LangGraph 的更多示例,请参阅使用 NVIDIA NIM 微服务和 LangChain 以及 GitHub 上的 langchain-ai/langchain-nvidia notebook 构建 AI 代理。你还可以尝试使用 NVIDIA NIM API Catalog 中的工具(图 2)。
使用 Xpander AI 增强 NIM 应用中的工具调用
借助 NIM,您可以将 AI 应用程序集成到组织的技术堆栈中,因为您的应用程序不会与您公司特有的内部工具、数据和业务逻辑分离。这有助于通过强大的新方法来应对现实世界中的企业挑战。
然而,与企业技术堆栈(包括现代 API 和传统系统)集成可能需要付出大量努力,以便目标系统为 AI 原生集成做好准备。此外,工具调用的实施可能会带来挑战,尤其是使用复杂的 API 调用 CRM 和 ERP 等系统时。这些系统可能具有高度可定制的数据结构和数百个 API 端点。在某些情况下,尤其是在自主开发的系统和 API 中,目标系统完全缺乏 API 文档和 OpenAPI 规范,而这两者通常都被用作编写工具调用和描述要使用的模型工具的起点。
此外,您在工具调用代码中为模型提供的有关目标 API 的详细信息越多,模型在工具选择和结构化响应生成方面的准确性就越高。遵循组织最佳实践的Operation IDs、参数和描述对于准确可靠的工具调用至关重要。
适用于 NIM 应用的预构建工具
xpander AI 为 NIM 应用提供预构建工具,简化了使用工具调用进行构建的过程,并提高了运行时工具调用的准确性。这些工具由 xpander AI 连接器生成器生成,这是一种独特的丰富工作流,包含 API 参考、文档和浏览示例等数据,并可输出适用于任何目标系统的 AI 就绪型连接器。
在目标系统需要一系列相互依赖的 API 调用来完成任务的情况下,为模型提供高度精细且自动丰富的工具可能特别有用。这可以像在 Slack 上发送消息一样简单,也可以像完成用户订单的代理任务一样复杂,每个任务都依赖于收集数据并向多个 API 端点提交多个数据点。xpander AI 连接器使用多种技术,包括在 OpenAPI 规范中设置依赖项,以提高代理应用程序的成功率,当需要遵循一系列 API 时。
自定义 AI 就绪型工具
如果您的 NIM 应用目标系统不存在 AI 就绪型连接器,您还可以使用 Xpander AI 构建自定义连接器。通过提供 API 参考、文档和其他之前引用的详细信息,Xpander AI 可以自动生成针对您的应用进行调整的增强型 AI 就绪型工具。
本节介绍如何使用 Xpander AI 使用 AI 就绪型连接器为 NIM 应用程序配备工具的示例。
第 1 步:在 Xpander AI 控制台中,启用您要在 NIM 应用中使用的任何预构建连接器,或为您的本地企业系统构建新的连接器(图 3)。
第 2 步:接下来,选择可用于 NIM 应用程序的确切 API 操作(图 4)。
第 3 步。然后,您将收到集成详细信息,以便在 NIM 应用中与 xpander SDK 一起使用(图 5)。
第 4 步:如下代码示例所示,通过在 NIM 应用中使用 xpander SDK,工具调用将使用 xpander 提供的工具。具体来说,代码示例使用聊天完成来调用托管在 NVIDIA 平台上的 Llama 3.1 70B Instruct 模型。在 xpander AI 端选择的工具(在本例中,Notion、Asana 和 HubSpot)将作为工具提供给模型。当模型确定应调用工具时,结构化响应将返回至应用,并使用 xpander SDK 执行。
from xpander_sdk import XpanderClient, LLMProvider # pip install https://assets.xpanderai.io/xpander-sdk.tar.gz
from openai import OpenAI
from langchain_nvidia_ai_endpoints import ChatNVIDIA
# Get all models that supports tools calling
tool_models = [model for model in ChatNVIDIA.get_available_models() if model.supports_tools]
# Define xpander client
# Set agent key and URL in https://app.xpander.ai
xpander_client = XpanderClient(
agent_key="$<CHANGE_ME>", agent_url="https://inbound.xpander.ai/agent/<CHANGE_ME>",
llm_provider=LLMProvider.NVIDIA_NIM
)
# Get the tools in the specific Nvidia NIM format
xpander_tools = xpander_client.tools()
# Open an OpenAI API client. Key can be achived as part of NVIDIA AI Enterprise
openai_client = OpenAI(api_key="$<CHANGE_ME>",
base_url="https://integrate.api.nvidia.com/v1")
# Send messages to the LLM + The tools in the correct format of function calling
llm_response = openai_client.chat.completions.create(
model=tool_models[0].id, # randomly select first model that supports tool calling
messages=[{ "role": "user","content": "Israel medals olympics 2024"}],
tools=xpander_tools,
tool_choice="required",
max_tokens=1024,
)
# Process the chat completion response with the Xpander client
tool_response = xpander_client.xpander_tool_call(tool_selector_response=llm_response.model_dump())
for tool_response in tool_response:
print(tool_response.response_message)
xpander AI 助力 AI 客服成功
确保 AI 智能体在生产环境中可靠地执行任务至关重要。可以通过计算 AI 智能体的成功率——成功执行任务占所有尝试的比例——来评估 AI 智能体。xpander AI 通过将现有 API 转换为智能体接口来增强这一指标,使 AI 智能体能够以一致和可靠的方式与各种系统交互并控制系统。
为了说明这一点,我们使用合成生成的数据集将 Xpander AI 的 HubSpot Agentic Interface 的任务执行成功率与 HubSpot 的标准 OpenAPI Specs 进行了比较,该数据集旨在模拟不同复杂性的任务,从达成简单的交易到生成具有特定属性的全面公司记录,并将其链接到活动。
这对任务执行可靠性的影响非常大。HubSpot 标准 OpenAPI 规格的成功率为 29.92%,而 xpander AI 的 HubSpot Agentic Interface 的成功率为 85.65%。这一对比表明,xpander AI 不仅能确保您的代理正常运作,而且其工具还能显著提高代理在实际部署中的性能,并在生产环境中实现更高的可靠性。
结束语
在 NVIDIA NIM 中引入工具调用代表了代理功能的重大进步。NIM 微服务现在可以增强更大的自动化系统,使 LLM 能够选择和利用最相关的工具来解决问题。借助这些增强功能,NIM 应用可以配备函数调用功能。
正如本文所述,您可以使用 Xpander AI 就绪型连接器为 NIM 应用配备可靠的代理工具。NIM 具有复合优势,可提高运行时推理效率,而 Xpander AI 可加快开发和集成时间,同时为实际生产用例提供解决方案。
xpander AI 期待对科学应用产生切实的影响。随着越来越多的特定于生物学、化学、药物研发等领域的用例 NIM 微服务的发布,科学家可以使用 xpander AI 将 API 集成到 NIM 应用中,而无需依赖后端和平台工程师。
查看最新的 NIM 微服务文档,并访问 GitHub 上的 xpander-ai/xpander-sdk 了解详情。在 NVIDIA AI Foundation 模型和端点开发者论坛中,深入了解 NIM。