

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

# 使用視覺化對話建置器
<a name="visual-conversation-builder"></a>

視覺化對話建置器是一種拖放式對話建置器，可透過在豐富的視覺化環境中使用意圖，輕鬆設計和視覺化對話路徑。

**存取視覺化對話建置器**

1. 在 Amazon Lex V2 主控台中，選擇機器人，然後從左側導覽窗格中選取**意圖**。

1. 以下列其中一種方式前往意圖編輯器：
   + 選取**意圖區段右上角的新增****意圖**，然後選擇新增空白意圖或內建意圖。
   + 從意圖區段中選擇**意圖**的名稱。

1. 在意圖編輯器中，在畫面底部的窗格中選取**視覺化建置器**，以存取視覺化對話建置器。

1. 若要返回選單意圖編輯器界面，請選取**編輯器**。

![\[具有視覺化對話建置器的範例對話流程。\]](http://docs.aws.amazon.com/zh_tw/lexv2/latest/dg/images/vcb-sample.png)


視覺化對話建置器提供更直覺的使用者介面，能夠視覺化和修改對話流程。透過拖放區塊，您可以擴展現有的流程或重新排序對話步驟。您可以使用複雜的分支開發對話流程，而無需撰寫任何 Lambda 程式碼。

此變更有助於將對話流程設計與 Lambda 中的其他商業邏輯分離。視覺化對話建置器可與現有的意圖編輯器搭配使用，並可用來建置對話流程。不過，建議將視覺化編輯器檢視用於更複雜的對話流程。

當您儲存意圖時，Amazon Lex V2 可以在判斷連線遺失時自動連接意圖、Amazon Lex V2 建議連線，或者您可以為區塊選取自己的連線。


| 動作 | 範例 | 
| --- | --- | 
|  將區塊新增至工作區  |  ![\[將區塊新增至工作區\]](http://docs.aws.amazon.com/zh_tw/lexv2/latest/dg/images/vcb-addblock.gif)  | 
|  在區塊之間建立連線  |  ![\[在區塊之間建立連線\]](http://docs.aws.amazon.com/zh_tw/lexv2/latest/dg/images/vcb-connectionblock.gif)  | 
|  開啟區塊上的組態面板  |  ![\[開啟區塊的組態面板\]](http://docs.aws.amazon.com/zh_tw/lexv2/latest/dg/images/vcb-openpanelblock.gif)  | 
|  縮放以符合  |  ![\[縮放以符合\]](http://docs.aws.amazon.com/zh_tw/lexv2/latest/dg/images/vcb-zoomtofit.gif)  | 
|  從對話流程中刪除區塊  |  ![\[從對話流程中刪除區塊\]](http://docs.aws.amazon.com/zh_tw/lexv2/latest/dg/images/vcb-deleteblock.gif)  | 
|  自動清理工作區  |  ![\[自動清理工作區\]](http://docs.aws.amazon.com/zh_tw/lexv2/latest/dg/images/vcb-autoclean.gif)  | 

**術語：**

**區塊** – 對話流程的基本建置單位。每個區塊都有特定的功能來處理不同的對話使用案例。

**連接埠** – 每個區塊都包含連接埠，可用於將一個區塊連接到另一個區塊。區塊可以包含輸入連接埠和輸出連接埠。每個輸出連接埠代表區塊的特定功能變化 （例如錯誤、逾時或成功）。

**Edge** – 邊緣是某個區塊的輸出連接埠與另一個區塊的輸入連接埠之間的連線。這是對話流程中分支的一部分。

**對話流程** – 由邊緣連接的一組區塊，描述與客戶的意圖層級互動。

**區塊**

區塊是對話流程設計的建置區塊。它們代表意圖中的不同狀態，從意圖的開始到使用者輸入，再到結束。

根據區塊類型，每個區塊都有一個進入點和一個或多個退出點。每個結束點都可以在對話進行時設定對應的訊息。對於具有多個結束點的區塊，結束點與節點對應的狀態相關。對於條件節點，結束點代表不同的條件。

每個區塊都有一個組態面板，按一下區塊右上角的**編輯**圖示即可開啟。組態面板包含可設定為與每個區塊對應的詳細欄位。

機器人提示和訊息可以透過拖曳新區塊直接在節點上設定，也可以在右側面板中修改，以及區塊的其他屬性。

**區塊類型** – 以下是您可以與視覺化對話建置器搭配使用的區塊類型。


| 區塊類型 | 區塊 | 
| --- | --- | 
|  **開始** – 對話流程的根區塊或第一個區塊。您也可以設定此區塊，讓機器人傳送初始回應 （已辨識意圖的訊息）。如需詳細資訊，請參閱[初始回應](intent-initial.md)。  |  ![\[視覺化對話建置器中的開始區塊\]](http://docs.aws.amazon.com/zh_tw/lexv2/latest/dg/images/vcb-start.png)  | 
|  **取得插槽值** – 此區塊會嘗試為單一插槽引出值。此區塊具有一個設定，可等待客戶回應槽引出提示。如需詳細資訊，請參閱[槽](intent-slots.md)。  |  ![\[視覺化對話建置器中的取得槽值區塊\]](http://docs.aws.amazon.com/zh_tw/lexv2/latest/dg/images/vcb-getslotvalue.png)  | 
|  **條件** – 此區塊包含條件。它包含最多 4 個自訂分支 （具有條件） 和一個預設分支。如需詳細資訊，請參閱[將條件新增至分支對話](paths-branching.md)。  |  ![\[視覺化對話建置器中的條件區塊\]](http://docs.aws.amazon.com/zh_tw/lexv2/latest/dg/images/vcb-condition.png)  | 
|  **對話方塊程式碼掛勾** – 此區塊處理對話方塊 Lambda 函數的調用。此區塊包含根據對話方塊 Lambda 函數成功、失敗或逾時的機器人回應。如需詳細資訊，請參閱[叫用對話方塊程式碼掛勾](paths-code-hook.md)。  |  ![\[視覺化對話建置器中的程式碼掛接區塊\]](http://docs.aws.amazon.com/zh_tw/lexv2/latest/dg/images/vcb-codehook.png)  | 
|  **確認** – 此區塊會在滿足意圖之前查詢客戶。它包含根據客戶對確認提示說是或否的機器人回應。如需詳細資訊，請參閱[確認](intent-confirm.md)。  |  ![\[視覺化對話建置器中的確認區塊\]](http://docs.aws.amazon.com/zh_tw/lexv2/latest/dg/images/vcb-confirmation.png)  | 
|  **履行** – 此區塊處理意圖履行，通常是在槽引出之後。它可以設定為叫用 Lambda 函數，並在履行成功或失敗時回應訊息。如需詳細資訊，請參閱[履行](intent-fulfillment.md)。  |  ![\[視覺化對話建置器中的履行區塊\]](http://docs.aws.amazon.com/zh_tw/lexv2/latest/dg/images/vcb-fulfillment.png)  | 
|  **關閉回應** – 此區塊可讓機器人在結束對話之前以訊息回應。如需詳細資訊，請參閱[關閉回應](intent-closing.md)。  |  ![\[視覺化對話建置器中的關閉區塊\]](http://docs.aws.amazon.com/zh_tw/lexv2/latest/dg/images/vcb-closing.png)  | 
|  **結束對話** – 此區塊表示對話流程的結束。  |  ![\[視覺化對話建置器中的結束區塊\]](http://docs.aws.amazon.com/zh_tw/lexv2/latest/dg/images/vcb-end.png)  | 
|  **等待使用者輸入** – 此區塊可用來擷取客戶的輸入，並根據表達用語切換到另一個意圖。  |  ![\[視覺化對話建置器中的等待區塊\]](http://docs.aws.amazon.com/zh_tw/lexv2/latest/dg/images/vcb-wait.png)  | 
|  **前往意圖** – 此區塊可用來前往新的意圖，或直接引出該意圖的特定槽。  |  ![\[前往視覺化對話建置器中的意圖區塊\]](http://docs.aws.amazon.com/zh_tw/lexv2/latest/dg/images/vcb-gotointent.png)  | 

**連接埠類型**

所有區塊都包含一個輸入連接埠，用於連接其父區塊。對話只能從其父區塊的輸出連接埠流向特定區塊的輸入連接埠。不過，區塊可以包含零個、一個或多個輸出連接埠。沒有任何輸出連接埠的區塊表示目前意圖中對話流程的結束 (`GoToIntent`、`EndConversation`、`WaitForUserInput`)。

**意圖設計規則：**
+ 意圖中的所有流程都以啟動區塊開頭。
+ 對應到每個結束點的訊息是選用的。
+ 您可以設定區塊，以設定對應至組態面板中每個結束點的值。
+ 只有單一開始、確認、履行和關閉區塊可以存在於意圖中的單一流程中。可能存在多種條件、對話方塊程式碼勾點、取得槽值、結束對話、傳輸和等待使用者輸入區塊。
+ 條件區塊無法直接連線至條件區塊。同樣適用於對話方塊程式碼掛鉤。
+ 允許循環流程三個區塊，但不允許傳入連接器到 Start Intent。
+ 選用插槽沒有傳入連接器或傳出連線，主要用於擷取意圖引出期間存在的任何資料。每個屬於對話路徑的其他插槽都必須是強制性的插槽。

區塊：
+ 啟動區塊必須具有傳出邊緣。
+ 如果需要插槽，每個取得槽值區塊都必須有一個從成功連接埠傳出的邊緣。
+ 如果區塊處於作用中狀態，則每個條件區塊都必須有一個來自每個分支的傳出邊緣。
+ 條件區塊不能有多個父系。
+ 作用中條件區塊必須具有傳入邊緣。
+ 每個作用中的程式碼掛接區塊都必須有來自每個連接埠的傳出邊緣：成功、失敗和逾時。
+ 作用中程式碼掛接區塊必須具有傳入邊緣。
+ 作用中的確認區塊必須具有傳入邊緣。
+ 作用中履行區塊必須具有傳入邊緣。
+ 作用中的關閉區塊必須具有傳入邊緣。
+ 條件區塊必須至少有一個非預設分支。
+ 移至意圖區塊必須指定意圖。

邊緣：
+ 條件區塊無法連接到另一個條件區塊。
+ 程式碼掛接區塊無法連接到另一個程式碼掛接區塊。
+ 條件區塊只能連接到零或一個程式碼掛接區塊。
+ 連線 （程式碼掛鉤 -> 條件 -> 程式碼掛鉤） 無效。
+ 履行區塊不能具有程式碼掛接區塊做為子項。
+ 條件區塊是履行區塊的子項，不能有程式碼掛接區塊子項。
+ 關閉區塊不能具有程式碼掛接區塊做為子項。
+ 關閉區塊的子項條件區塊不能有程式碼掛接區塊子項。
+ 開始、確認或取得槽值區塊在其相依性鏈中不能有多個程式碼掛鉤區塊。

**注意**  
2022 年 8 月 17 日，Amazon Lex V2 發佈了與使用者管理對話方式的變更。此變更可讓您進一步控制使用者在對話中採取的路徑。如需詳細資訊，請參閱[Amazon Lex V2 中對話流程的變更](understanding-new-flows.md)。在 2022 年 8 月 17 日之前建立的機器人不支援對話方塊程式碼掛接訊息、設定值、設定後續步驟，以及新增條件。