代理程式驗證

如代理程式設計頁面所述,代理程式的設計可能大幅影響代理程式的品質。為了幫助代理程式設計人員建立高品質的代理程式,Dialogflow 提供驗證功能。在執行並完成代理程式訓練後,會自動提供代理程式驗證結果。您可以透過 Dialogflow 主控台或 API 來存取驗證結果。

驗證結果僅供參考。 並提供錯誤清單,請修正錯誤來提升代理程式的品質和效能。如果您的代理程式發生錯誤,您可以選擇忽略並啟動代理程式。代理人驗證不會以任何方式影響代理人的行為。

以下列舉幾個範例:

  • 意圖的訓練詞組太相似。
  • 意圖所包含的參數未用於足夠的訓練詞組。
  • 沒有備用意圖的排除範例。
  • 文本在某些訓練詞組有加註,但在其他訓練詞組中卻沒有加註。

啟用及停用自動驗證

根據預設,代理程式驗證會在代理程式完成訓練後自動執行。您可以啟用及停用這項設定:

  1. 前往 Dialogflow ES 主控台。
  2. 選取代理程式。
  3. 按一下代理程式名稱旁的設定 圖示。
  4. 選取 [ML Settings] (ML 設定) 分頁標籤。
  5. 將 [Agent Validation] (代理程式驗證) 設定切換為開啟 (預設) 或關閉。

代理程式驗證螢幕截圖

代理程式驗證頁面

存取代理程式驗證資料的步驟如下:

  1. 前往 Dialogflow ES 主控台。
  2. 選取代理程式。
  3. 點選側欄選單中的 [Validation] (驗證)。

代理程式驗證螢幕截圖

意圖和實體的驗證結果

當您造訪意圖清單或實體清單頁面時,任何有驗證錯誤的意圖或實體都會在名稱旁邊顯示 錯誤指標。

代理程式驗證錯誤螢幕截圖

如果您造訪網頁時發生特定意圖或實體的驗證錯誤,在「儲存」按鈕附近可以看見 錯誤指標。

代理程式驗證錯誤螢幕截圖

按一下這個按鈕,顯示意圖或實體的錯誤清單。根據預設,系統只會顯示嚴重性等級為 CRITICAL 或 ERROR 的錯誤。您可以切換嚴重性類型,一併顯示 WARNING 和 INFO。

代理程式驗證錯誤螢幕截圖

您也可能會看到特定訓練詞組和參數的錯誤指標,而且可以將滑鼠游標懸停在這些指標上來查看詳細資訊。

代理程式驗證錯誤螢幕截圖

版本和環境的驗證結果

查看版本和環境時,每個代理程式版本可能出現不重複的驗證錯誤。如出現任何錯誤,版本旁會出現驗證圖示。

代理程式驗證錯誤螢幕截圖

按一下圖示即可顯示詳細資訊。

代理程式驗證錯誤螢幕截圖

API 的驗證結果

在大多數情況下,您都將使用 Dialogflow 主控台來查看驗證結果。不過,您也可以透過 API 存取這些資料。

REST

對 Agents 類型呼叫 getValidationResult 方法。

使用任何要求資料之前,請先修改下列項目的值:

  • PROJECT_ID:您的 Google Cloud 專案 ID

HTTP 方法和網址:

GET https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/agent/validationResult?languageCode=en

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

{
  "validationErrors": [
    {
      "severity": "ERROR",
      "entries": [
        "projects/my-project/agent/intents/58b44b2d-4967-4a81-b017-12623dcd5d28/parameters/bf6fdf55-b862-4101-b5b1-36f1423629d0"
      ],
      "errorMessage": "Parameter 'test' has an empty value."
    },
    {
      "severity": "WARNING",
      "entries": [
        "projects/my-project/agent/intents/271e3808-3c91-4e6b-89e8-47951abcec8d"
      ],
      "errorMessage": "Intent 'app.current.update' does not have enough unique training phrases. Consider adding more different examples."
    },
    {
      "severity": "ERROR",
      "entries": [
        "projects/my-project/agent/intents/26e64b1b-eaa7-4ce2-be46-631a501fccbe/trainingPhrases/a650375e-083c-4bb5-9794-ba9453e51282",
        "projects/my-project/agent/intents/58b44b2d-4967-4a81-b017-12623dcd5d28/trainingPhrases/1d947780-22d3-4f80-8d7a-3f86efbf0be3"
      ],
      "errorMessage": "Multiple intents share training phrases which are too similar:\n - Intent 'app.notifications.open': training phrase 'open allo notifications settings'\n - Intent 'app.current.notifications.open': training phrase 'open notifications settings'"
    },
  ]
}

嚴重程度狀態

驗證結果可能會顯示下列嚴重程度狀態:

嚴重性 說明
資訊 代理商未遵循最佳做法。
警告 代理程式可能無法如預期運作。
ERROR 代理程式可能會發生部分失敗。
CRITICAL 代理程式可能會完全失敗。
SEVERITY_UNSPECIFIED 不指定。請勿使用這個值。(可透過 API 設定此嚴重程度)

強制驗證

在執行並完成代理程式訓練後,會自動提供代理程式驗證結果。如欲強制執行新的驗證結果,您可以停用自動驗證功能,並以手動方式觸發。請參閱主控台上的代理程式「ML settings」(機器學習設定) 頁面。

處理多個問題

如果發現大量問題,請考慮下列事項:

  • 小批次修正問題。 如果類似問題很多,重新訓練代理程式後,修正一個問題可能就能解決類似問題。
  • 系統一次最多只會顯示 5,000 個問題。 如果問題超過 5,000 個,可能要等到問題數量少於 5,000 個,才會看到數量減少。