示例客户端#

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,它看起来像这样

Text-Based Web Sample Application

基于语音的 Web 示例应用程序#

ACE Agent 使用聊天控制器来处理更复杂的 I/O 管线,例如语音和视觉。为了与基于语音的 Bot 交互,我们可以使用 Web 应用程序的语音模式,该模式与聊天控制器交互。

通过遵循 Docker 环境(服务器接口事件接口)中的说明,在 gRPC 接口中启动 Bot。

可以在 http://<developer-ip-address>:7006 访问语音模式下 Web 应用程序的 UI,它看起来像这样

Speech-Based Web Sample Application

注意

UI 首次在语音模式下运行时可能需要长达 5 分钟才能加载。如果您看到消息 正在连接到服务器...,请等待几分钟然后重试。

要启用音频捕获,您需要更新浏览器标志以允许不安全的来源,或使用 SSL 证书将端点转换为 HTTPS。

添加浏览器标志

  1. 打开 chrome://flags(如果您使用的是 Microsoft Edge,则打开 edge://flags)。

  2. 搜索标志 #unsafely-treat-insecure-origin-as-secure,启用它,并将 http://<developer-ip-address>:7006 添加到列表。

  3. 点击重新启动以使用您的更改重启浏览器。

  4. 访问 http://<developer-ip-address>:7006 以与 Bot 交互。

使用 HTTPS 支持

  1. 为您的域名生成 SSL 证书。

  2. 通过在 deploy/docker/docker-compose.yml 文件中取消注释 bot-web-ui-clientbot-web-ui-server 服务,来卷挂载 cert.keycert.pem 文件。

  3. 使用更新后的 docker-compose.yml 文件重新部署服务。

gRPC 服务器示例客户端#

gRPC 服务器示例客户端展示了通过 gRPC API 向聊天控制器发送音频输入并接收音频响应所需的最小代码。

  1. 通过遵循 Docker 环境(服务器接口事件接口)中的说明,确保 Bot 已部署 gRPC 接口。

  2. clients/speech_client/ 中创建一个包含您的语音查询的 WAV 文件。确保它是单声道音频。

  3. .proto 文件编译为示例客户端所需的 pb2 文件。从 clients/speech_client/ 运行

    cd clients/speech_client/
    pip install grpcio-tools
    bash setup.sh
    

    确保您已安装 grpcio-tools>=1.62.1

  4. 运行示例客户端。

    python3 speech_client.py --audio_file_path Sample.wav --tts_output_path tts_output.wav
    
  5. 脚本完成后,您应该看到一个名为 tts_output.wav 的文件,其中包含语音响应。

聊天 Python 示例客户端#

ACE Agent 包含一个示例 Python 应用程序,展示了如何连接到 ACE Agent HTTP 服务器并使用 CLI 发出聊天请求。

  1. 使用 HTTP 服务器接口 部署说明,在 server 模式下启动任何 Bot。

  2. 设置打包为 快速入门资源 一部分的聊天示例客户端,位于 clients/chat_client/。要运行聊天客户端,您需要安装一些 Python 包。建议您创建一个新的 Python 环境来执行此操作。

    pip install -r clients/chat_client/requirements.txt
    
  3. 运行聊天示例客户端以与已部署的 Bot 交互。

    python3 clients/chat_client/chat_client.py
    

事件示例客户端#

ACE Agent 包含一个名为事件模拟器的示例 Python 应用程序,展示了如何连接到 ACE Agent 事件接口并异步处理不同类型的事件。

  1. 使用 事件接口部署说明,在 event 模式下启动任何 Colang 2.0 Bot。

  2. 设置打包为 快速入门资源 一部分的事件模拟器,位于 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
    
  3. 运行事件模拟器。

    python event_client.py
    
Event Sample Client
  1. 使用示例客户端中的提示字段与 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。