LLM Bot#
这是一个示例聊天机器人,展示了如何将 LLM 连接到 ACE Agent Speech 管线中。它使用 NVIDIA NIM 的本地 LLama3 8b 模型 LLM 部署。
LLM bot 展示了以下 ACE Agent 功能
将任何 LLM 模型与 ACE Agent 集成
使用 NVIDIA NIM 部署本地 LLM 模型
在操作中处理对话历史记录
使用 ASR 2 pass End of Utterance (EOU) 实现低延迟
始终开启的 Barge-In 支持
支持使用事件架构进行部署
注意
我们将为 LLM API 调用发送早期触发用户查询,如果用户在单词之间暂停超过 240 毫秒,可能需要重新触发。平均而言,对于每个用户查询,您可能会进行 2 次额外的 LLM 调用,这将在大规模部署时需要额外的计算/成本。
基于 Docker 的 bot 部署
在启动 bot 之前,使用您的 NGC Personal API 密钥设置
NGC_CLI_API_KEY
环境变量。export NGC_CLI_API_KEY=...
在本地部署 Llama3 8b 模型。模型部署将需要 A100 或 H100 GPU 设备。您可以跳到步骤 3 以使用托管的 LLM 模型。
创建一个目录来缓存模型,并将缓存路径导出为环境变量
mkdir -p ~/.cache/model-cache export MODEL_DIRECTORY=~/.cache/model-cache
部署 NeMo LLM 推理微服务。
USERID=$(id -u) docker compose -f ./samples/llm_bot/docker-compose-nim-ms.yaml up -d
如果您使用不同的系统进行模型部署,请更新
actions.py
中的 LLMBASE_URL
。
或者,您可以使用来自
build.nvidia.com
的托管 NIM 模型。更新
actions.py
以使用BASE_URL
作为https://integrate.api.nvidia.com/v1
。使用具有 AI Foundation Models and Endpoints 服务的 Personal NGC API 密钥或使用 NVIDIA API Catalog 生成的密钥设置
NVIDIA_API_KEY
。获取您的 NVIDIA API 密钥。选择任何模型。
单击 获取 API 密钥。
或者,您可以使用 OpenAI 模型。
更新
actions.py
中的AsyncOpenAI
客户端,使其不使用base_url
。client = AsyncOpenAI(api_key=os.getenv("OPENAI_API_KEY"))
设置
OPENAI_API_KEY
环境变量。
为 Docker compose 命令准备环境。
export BOT_PATH=./samples/llm_bot/ source deploy/docker/docker_init.sh
部署 Riva ASR(自动语音识别)和 TTS(文本到语音)模型。
docker compose -f deploy/docker/docker-compose.yml up model-utils-speech
部署 ACE Agent 微服务。部署 Chat Engine 和 Chat controller 容器。
docker compose -f deploy/docker/docker-compose.yml up --build speech-event-bot -d
使用 URL
http://<workstation IP>:7006/
与 bot 交互。为了访问浏览器上的麦克风,我们需要通过添加 SSL 验证将
http
转换为https
端点,或者更新您的chrome://flags/
或edge://flags/
以允许http://<workstation IP>:7006
作为安全端点。示例问题 - 游戏最好的 GPU 是什么?