界面介绍#
NVIDIA ACE Agent 支持四种与 Bot 交互的接口:CLI、HTTP 服务器、事件和 gRPC 接口。您可以根据 Bot 管线架构和用例,或根据 Bot 开发阶段选择任何一种接口,并应相应地使用它们以获得最佳体验。
CLI 接口#
命令行界面 (CLI) 是一个简单的接口,允许您通过在终端窗口中键入命令并接收在同一终端窗口上的响应来与 Bot 交互。此接口非常适合 Bot 的初始开发阶段,您希望快速尝试查询,而无需任何开销或额外步骤。CLI 接口由 ACE Agent 聊天引擎微服务公开。
您可以使用Python 环境或Docker 环境部署 CLI 接口。成功部署后,这将在终端中打开一个文本提示符,您可以在其中输入查询。CLI 接口看起来像这样
[YOU] Are you a person? [BOT] No, I am just a chatbot. [YOU] What is your name? [BOT] I do not have a name yet.
在 CLI 接口中,如果查询以 \
开头,例如 \UtteranceUserActionFinished(final_transcript="Hello")
,我们将查询处理为事件。事件列表可以在标准事件和动作中找到。事件应由相应的 Bot 处理,否则将没有响应。例如
[YOU] \UtteranceUserActionFinished(final_transcript="Hello") [BOT] Hello! I am an AI assistant designed to provide helpful information and assist with tasks. Is there something specific you would like to know or discuss?
此功能使开发人员能够测试多模态 Bot,而无需完全多模态管线部署,例如 NVIDIA Tokkio 管线。
注意
CLI 接口只能用于在 bot_config.yaml
文件中具有 colang_disable_async_execution: True
配置的 Bot,因为 CLI 接口需要以同步模式响应每个用户查询。
事件接口#
事件接口提供了一个异步的、基于事件的接口,用于与 Colang 2.0 中编写的 Bot 交互。它通过将 UMIM 事件转发到 Colang 2.0 运行时(它是聊天引擎的一部分)并从运行时将事件发布回事件流,从而管理交互。该接口支持多个用户会话,并提供低延迟事件处理。事件接口由 ACE Agent 聊天引擎微服务公开。我们可以使用任何部署环境部署事件接口。

启动事件接口后,它将等待流 ace_agent_system_events
上的 PipelineAcquired
事件。这些事件表明新的流或管线已变为可用。ACE Agent 将生成一个事件工作器,该工作器将专用于此流,以将任何事件转发到配置的 Bot。
HTTP 服务器接口#
HTTP 服务器接口公开了多个 rest API,这些 API 可用于与 Bot 交互、查看 Bot 的状态以及更新 Bot 的状态。您可以从自定义 UI 或应用程序使用 HTTP 调用与 Bot 交互,仅适用于基于文本的管线。HTTP 接口由聊天引擎微服务公开。
我们可以使用任何部署环境部署 HTTP 服务器。这将在 http://<server_ip>:9000
启动 HTTP 服务器。有关服务器公开的 REST API 的更多信息,请参阅HTTP 接口 API 文档。
gRPC 接口#
此接口启动一个 gRPC 服务器,该服务器公开了多个 API,这些 API 可用于使用语音或文本与 Bot 交互并更新 Bot 的状态。您可以从自定义 UI 或应用程序使用 gRPC 调用与 Bot 交互,仅适用于基于文本的管线、语音 AI 或基于头像的管线。
gRPC 服务器由聊天控制器微服务公开。gRPC 服务器仅在Docker 环境和Kubernetes 环境中受支持。有关服务器公开的 gRPC API 的更多信息,请参阅gRPC 接口 API 文档。
在底层,gRPC 接口可以利用 HTTP API 或使用 UMIM 总线进行基于事件接口的 Bot 部署架构。