示例客户端#
Web 示例应用程序#
Web 界面允许您从 Web 浏览器在一个简单的 Web UI 中与 Bot 交互。当 Bot 达到一定的成熟阶段,并准备好与更广泛的受众分享,以使用基于文本或语音的界面获取反馈时,此界面非常有用。
当您启动 Web 应用程序时,它会连接到 ACE Agent 服务器,并在 http://<developer-ip-address>:7006
公开一个简单的 Web UI。您可以与更广泛的群体分享该 URL 以进行测试和反馈。
WebUI 的源代码作为快速入门目录的一部分直接在 webui
中发布。如果您想自定义 WebUI 应用程序,请按照 README.md
中的说明进行操作。
基于文本的 Web 示例应用程序#
此模式允许您直接使用文本输入和文本输出与聊天引擎交互。
通过遵循 HTTP 接口 或 事件接口 中的说明,在 Docker 环境 部分启动 Bot。
可以在 http://<developer-ip-address>:7006
访问文本模式下 Web 应用程序的 UI,它看起来像这样

基于语音的 Web 示例应用程序#
ACE Agent 使用聊天控制器来处理更复杂的 I/O 管线,例如语音和视觉。为了与基于语音的 Bot 交互,我们可以使用 Web 应用程序的语音模式,该模式与聊天控制器交互。
通过遵循 Docker 环境(服务器接口 或 事件接口)中的说明,在 gRPC 接口中启动 Bot。
可以在 http://<developer-ip-address>:7006
访问语音模式下 Web 应用程序的 UI,它看起来像这样

注意
UI 首次在语音模式下运行时可能需要长达 5 分钟才能加载。如果您看到消息 正在连接到服务器...
,请等待几分钟然后重试。
要启用音频捕获,您需要更新浏览器标志以允许不安全的来源,或使用 SSL 证书将端点转换为 HTTPS。
添加浏览器标志
打开
chrome://flags
(如果您使用的是 Microsoft Edge,则打开edge://flags
)。搜索标志
#unsafely-treat-insecure-origin-as-secure
,启用它,并将http://<developer-ip-address>:7006
添加到列表。点击重新启动以使用您的更改重启浏览器。
访问
http://<developer-ip-address>:7006
以与 Bot 交互。
使用 HTTPS 支持
为您的域名生成 SSL 证书。
通过在
deploy/docker/docker-compose.yml
文件中取消注释bot-web-ui-client
和bot-web-ui-server
服务,来卷挂载cert.key
和cert.pem
文件。使用更新后的
docker-compose.yml
文件重新部署服务。
gRPC 服务器示例客户端#
gRPC 服务器示例客户端展示了通过 gRPC API 向聊天控制器发送音频输入并接收音频响应所需的最小代码。
在
clients/speech_client/
中创建一个包含您的语音查询的 WAV 文件。确保它是单声道音频。将
.proto
文件编译为示例客户端所需的pb2
文件。从clients/speech_client/
运行cd clients/speech_client/ pip install grpcio-tools bash setup.sh
确保您已安装
grpcio-tools>=1.62.1
。运行示例客户端。
python3 speech_client.py --audio_file_path Sample.wav --tts_output_path tts_output.wav
脚本完成后,您应该看到一个名为
tts_output.wav
的文件,其中包含语音响应。
聊天 Python 示例客户端#
ACE Agent 包含一个示例 Python 应用程序,展示了如何连接到 ACE Agent HTTP 服务器并使用 CLI 发出聊天请求。
使用 HTTP 服务器接口 部署说明,在
server
模式下启动任何 Bot。设置打包为 快速入门资源 一部分的聊天示例客户端,位于
clients/chat_client/
。要运行聊天客户端,您需要安装一些 Python 包。建议您创建一个新的 Python 环境来执行此操作。pip install -r clients/chat_client/requirements.txt
运行聊天示例客户端以与已部署的 Bot 交互。
python3 clients/chat_client/chat_client.py
事件示例客户端#
ACE Agent 包含一个名为事件模拟器的示例 Python 应用程序,展示了如何连接到 ACE Agent 事件接口并异步处理不同类型的事件。
使用 事件接口部署说明,在
event
模式下启动任何 Colang 2.0 Bot。设置打包为 快速入门资源 一部分的事件模拟器,位于
clients/event_client/
。要运行事件模拟器脚本,您需要安装一些 Python 包。建议您创建一个新的 Python 环境来执行此操作。cd clients/event_client sudo apt-get install python3-venv python3 -m venv sim-env source sim-env/bin/activate pip install -r requirements.txt
运行事件模拟器。
python event_client.py

使用示例客户端中的提示字段与 Bot 交互(在您完成文本后按 ENTER),您可以在左侧的聊天部分看到 Bot 响应,在右侧的交互历史记录部分看到事件接口处理和生成的事件列表。
事件模拟器客户端提供了一种简单的方法,您可以通过它与在事件接口后运行的 Bot 进行交互和观察交互。这是一个非常简单的客户端,旨在用于本地测试并帮助您开始使用事件接口。该工具模拟了一个与事件接口兼容的交互式系统。它模拟了一个用户与头像角色交互的系统,该角色可以说话、做手势并在 UI 屏幕上显示信息。您可以在下面找到主要功能的简要概述。
发送和接收消息 - 您可以使用该界面向 Bot 发送文本消息并接收多模态回复。Bot 可以回复您,使用手势,改变姿势并显示 UI 覆盖。这一切都显示在终端窗口左侧的相应部分(例如,口头 Bot 响应显示在 聊天
部分,而手势和姿势显示在 动作
部分)。
注意
Bot 的多模态响应使用文本进行可视化以用于此示例客户端。如果您将您的 Bot 连接到相应的 ACE 组件(例如,ACE 动画管线以实时渲染头像角色),则相同的动作将导致实际的角色动画)。
查看交互历史记录 - 在终端的右侧,您可以看到事件历史记录,其中显示了事件接口作为您(用户)和 Bot 之间交互的一部分而处理的所有事件。您可以通过在终端内按 CTRL-T 来切换时间戳信息的开启和关闭。列出的事件通常是动作的一部分,这意味着您将看到共享相同动作 ID 的相应动作。一个示例是 BotUtteranceAction,它由诸如 StartUtteranceBotAction、UtteranceBotActionStarted 和 UtteranceBotActionFinished 之类的事件组成。这些事件标记了动作的生命周期。您可以在您的 Colang 脚本中对任何这些事件做出反应(例如,使用 match … 语句)。
与模拟 UI 交互 - 示例脚本支持简单的交互式 UI 元素,这些元素显示为交互历史记录之上的覆盖层。这些 UI 元素直接从 Colang 脚本(视觉场景动作)控制。UI 元素可能包括静态内容(文本、列表)以及交互式组件(选项组、按钮)。如果您遵循我们关于 使用 Colang 2.0 和事件接口构建 Bot 的教程,您可以利用这些动作。如果 UI 显示并且您想返回事件历史记录,您可以按终端内的 CTRL-B 来切换 UI。