Amazon Sumerian 對話元件 - Amazon Sumerian

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon Sumerian 對話元件

對話元件指派Amazon Lex聊天機器人到實體。您可以使用此元件來啟用主機或其他實體以具有與使用者對話以及蒐集資訊的能力。

若要在播放時使用 Amazon Lex,場景需要來自 Amazon Cognito 身分的 AWS 登入資料。為您的場景建立一個身分集區並在場景設定中的 AWS 組態下設定它。


      對話元件組態。
Properties
  • 名稱— Amazon Lex 機器人的名稱。

  • 別名— 發佈機器人時選擇的別名。

若要在播放時觸發對話,請在相同實體上使用狀態機器行為或指令碼元件。

State Machine (狀態機器)

要使用 Amazon Lex 機器人,請添加狀態機器與對話的實體和語音元件。使用動作來擷取音訊或文字、傳送到 Amazon Lex 進行處理、播放遊戲並等待額外的輸入。

範例 文字輸入狀態
  • StartAWS 開發套件等待 AWS 開發套件以從您的 Amazon Cognito 識身分集區擷取登入資料。

  • Wait for InputDOM 事件偵聽程式在一或多個元素上的 DOM 事件接聽程式新增 (由查詢選擇器所指定),以及對指定事件執行轉換。

  • Get Text Input— 一個取得 HTML 文字動作,以擷取input在一個 HTML 組件元素。

    • 實體— 含有input元素。

    • HTML 元素選擇器input元素。例如,#LexInput

  • Process with Lex發送文本輸入到對話機器人可從之前的狀態傳送文字到 Amazon Lex bot (傳送文字到您的 Amazon Lex 機器人) 並傳遞回應到下一個狀態。

    傳換 On response ready (在回應備妥時) 到 Play response、以及 On processing error (在處理錯誤時) 到 Collect text

  • Play Response語音開始行動扮演來自 Amazon Lex 的回應。轉換為Wait for Input

    • 使用 Lex 回應— Enabled.


          文字型聊天機器人的狀態機器行為。
範例 音訊輸入狀態
  • StartAWS 開發套件等待 AWS 開發套件以從您的 Amazon Cognito 識身分集區擷取登入資料。

  • Wait for Input按下等待使用者按下按鍵 (空格鍵)。

  • Start Recording開始麥克風錄製動作會開始錄製,直到向上按鍵動作會在釋放空格鍵時觸發,轉換到下一個狀態。

  • Stop Recording停止麥克風錄製動作完成音訊錄製並傳遞到下一個狀態。

  • Process with Lex發送音頻輸入到對話機器人將從以前狀態錄製的音頻發送到 Amazon Lex 機器人。

  • Play Response語音開始使用 Amazon Lex response (使用 Amazon Lex 回應) 播放之前的狀態的音訊回應。轉換回Wait for input 狀態。

    • 使用 Lex 回應— Enabled.


          音訊聊天機器人的狀態機器行為。

如需詳細資訊,請參閱 亞 Amazon Sumerian 中的 AWS 特色狀態機器動作。有關構建上面的海域的更詳細的教程,請參閱使用對話元件和 Amazon Lex 建置 Chatbot 教學課程

Script

您可以使用指令碼來更新實體對話元件的組態,以回應使用者輸入。以下範例新增接聽程式到兩個按鈕,以變更按下按鈕時的作用中機器人。

範例 腳本-將事件偵聽器添加到按鈕
  • 實體— 主機或其他具有對話元件的實體。

'use strict'; function setup(args, ctx) { ctx.entityData.changeBot = function(event){ var name = event.target.getAttribute("botname"); var alias = event.target.getAttribute("botalias"); ctx.entity.dialogueComponent.updateConfig({name: name, alias: alias}) }; document.getElementById("bot1button").addEventListener('click', ctx.entityData.changeBot); document.getElementById("bot2button").addEventListener('click', ctx.entityData.changeBot); }
範例 HTML 3D 元件 — 按鈕
<style> button { background-color: #4CAF50; border: none; color: white; padding: 15px 25px; text-align: center; font-size: 16px; cursor: pointer; } button:hover { background-color: green; } </style> <button id="bot1button" botname="OrderFlowers" botalias="latest" type="button">Order Flowers</button> <button id="bot2button" botname="BookTrip" botalias="latest" type="button">Book Trip</button>