代理程式驗證

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

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

以下列舉幾個範例:

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

啟用及停用自動驗證

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

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

代理程式驗證螢幕截圖

代理程式驗證頁面

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

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

代理程式驗證螢幕截圖

意圖和實體的驗證結果

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

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

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

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

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

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

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

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

版本和環境的驗證結果

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

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

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

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

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 代理程式可能會發生部分失敗。
重大 代理程式可能會完全失敗。
SEVERITY_UNSPECIFIED 不指定。請勿使用這個值。(可透過 API 設定此嚴重程度)

強制驗證

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

處理多個問題

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

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