何時使用交談語言理解或協調工作流程應用程式
當您建立大型應用程式時,應考慮您的使用案例是否最適合使用單一交談應用程式 (一般結構) 或經過協調的多個應用程式來處理。
協調流程概觀
協調流程工作流程是一項功能,可讓您將不同專案與 LUIS、交談語言理解,以及單一專案中的自訂問題解答連線。 然後,您可以在一個端點使用此專案進行預測。 協調流程專案會預測應該呼叫的子專案、自動路由傳送要求,並傳回其回應。
協調流程涉及兩個步驟:
- 預測要呼叫的子專案。
- 將語句路由傳送至目的地子應用程式,並傳回子應用程式的回應。
協調流程優點
清除分解並加快開發速度:
- 如果您的整體結構描述有大量的網域,協調流程方法可協助將應用程式分解成數個子應用程式 (每個子應用程式處理特定網域)。 例如,汽車交談應用程式可能有導航網域或媒體網域。
- 以平行方式開發每個網域應用程式會比較容易。 具有特定領域專業知識的人員和小組可以共同平行處理個別應用程式。
- 因為每個網域應用程式都比較小,所以開發週期就會變得比較快。 規模較小的網域應用程式需要的訓練時間比單一大型應用程式少得多。
更有彈性的信賴度分數閾值:
- 因為個別的子應用程式可為每個網域提供服務,所以可為不同的子應用程式輕鬆設定個別閾值。
在適當情況下的 AI 品質改善:
某些應用程式要求某些實體必須有網域限制。 協調流程可讓您輕鬆做到這一點。 協調流程專案預測應該呼叫哪個子應用程式之後,就不會呼叫其他子應用程式。
例如,如果您的應用程式含有
Person.Name
預建實體,請考慮在車輛問題的內容中使用「如何使用千斤頂?」語句。 在此內容中,千斤頂是一種汽車工具,不應當成人的名字。 當您使用協調流程時,可將此語句重新導向至為了回答這類問題而建立的子應用程式,該子應用程式不含Person.Name
實體。
協調流程缺點
子應用程式中的備援實體:
- 如果您需要在所有語句中傳回與網域無關的特定預建實體,例如
Quantity.Number
或Geography.Location
,則無法將實體新增至協調流程應用程式 (因為是僅限意圖模型)。 您必須將它新增至所有個別子應用程式。
- 如果您需要在所有語句中傳回與網域無關的特定預建實體,例如
效率:
- 協調流程應用程式採用兩種模型推斷。 一種用於預測要呼叫的子應用程式,而另一種用於子應用程式中的預測。 推斷時間通常比使用一般結構的單一應用程式長。
協調器的訓練/測試分割:
- 訓練協調流程應用程式不允許您精細分割測試集與訓練集之間的資料。 例如,您無法針對子應用程式 A 訓練 90-10 分割,然後針對子應用程式 B 訓練 80-20 分割。這項限制可能不重要,但值得牢記在心。
一般結構概觀
一般結構是開發交談應用程式的其他方法。 您不需要使用協調流程應用程式將語句傳送至多個子應用程式之一,而是開發單一 (或一般) 應用程式來處理語句。
一般架構優點
簡單:
- 對於小型應用程式或網域,協調器方法可能過於複雜。
- 因為所有意圖和實體都位於相同的應用程式層級,所以一起變更會比較容易。
較容易新增應一律傳回的實體:
- 如果您想要對所有語句傳回特定預建或清單實體,您只需要在單一應用程式中將它們與其他實體一起新增即可。 如果您使用協調流程,如上所述,您必須將它新增至每個子應用程式。
一般架構缺點
對大型應用程式而言不方便:
- 對於大型應用程式 (比如說,超過 50 個意圖或實體),很難追蹤不斷演變的架構描述和資料集。 在應用程式必須為數個網域提供服務的情況下,這項困難很明顯。 例如,汽車交談應用程式可能有導航網域或媒體網域。
對實體比對的控制有限:
- 在一般結構中,無法限制只在特定情況下傳回實體。 當您使用協調流程時,您可以將這些特定實體指派給特定的子應用程式。