動態配置 Watson Assistant 服務或服務編排引擎

藉由 IBM® Voice Gateway API,您可以在通話期間動態配置 IBM Watson™ Assistant 服務或服務編排引擎。如果要變更配置,請在 Watson Assistant 對話樹狀結構中,於節點回應的 output 中,定義 vgwActSetConversationConfig 動作。如需使用 API 的相關資訊,請參閱定義動作標籤和狀態變數

可以定義給 vgwActSetConversationConfig 動作的每一個屬性,各會對應一個 SIP Orchestrator 配置環境變數。若有屬性未定義在 Watson Assistant 中,就會使用相關環境變數中的值。

重要事項:vgwActSetConversationConfig 動作和 vgwActSetWVAConfig 動作不能同時定義在動作序列中。每次只能配置一個 Watson Assistant 工作區聊天機器人。

請參閱下列各節,取得有關定義 vgwActSetConversationConfig 動作的範例:

Watson Assistant 服務

下列範例顯示如何定義 Watson Assistant 工作區。

{
  "output": {
    "vgwAction": {
      "command": "vgwActSetConversationConfig",
      "parameters": {
        "url":"https://gateway.watsonplatform.net/conversation/api",
        "workspaceID":"a23de67h-4e92-4565-c1b5-ebd59a2ffcad",
        "username":"9h7f54cb-5epb-80d6-45c3-da41d2bf7a71",
        "password":"asxNzDLpIJ6F"
      }
    }
  }
}
表 1. Watson Assistant 的屬性
屬性 說明 相關的環境變數
url Watson Assistant API 的 url 認證。 WATSON_CONVERSATION_URL
workspaceID Watson Assistant API 的工作區 ID。 WATSON_CONVERSATION_WORKSPACE_ID
username Watson Assistant 的 username 認證。 WATSON_CONVERSATION_USERNAME
password Watson Assistant 的 password 認證。 WATSON_CONVERSATION_PASSWORD

動態配置多項 Watson Assistant 服務

您可以在部署配置或 vgwActSetConversationConfig 指令中,定義多個提供者。在與 Watson Assistant 工作區的第一回交談中,如果發生失敗,則 Voice Gateway 會嘗試連接至清單中下一個所定義的提供者。與同一工作區的後續各回交談中,並不會發生此情況,因為環境定義無效。請參閱 配置多個 Watson Assistant 服務提供者,以取得 providers 內容屬性的相關資訊。

下列範例顯示 vgwActSetConversationConfig 指令中所配置的兩個提供者。如果第一個提供者 nyc 在第一回交談中失敗,Voice Gateway 會切換至第二個 dallasdallas 提供者啟用了記號鑑別,而 nyc 啟用的是基本鑑別。

{
  "vgwActSetConversationConfig": {
    "command": "vgwActSetConversationConfig",
      "parameters": {
        "providers": [
        {
          "name": "nyc",
          "url": "https://gateway.watsonplatform.net/assistant/api",
          "password": "nTnAEtntq2Tg",
          "username": "15a22419-cf6a-4004-a199-49d6a277d111",
          "workspaceID": "e6f9e3e2-c27a-49e7-a8ac-d9a8ace43981"
        },
        {
          "name": "dallas",
          "url": "https://gateway.watsonplatform.net/assistant/api",
          "password": "Qa55C0s473",
          "username": "8yw76lm-n5op-43q2-1098-r7s6tu543457",
          "tokenAuthEnabled": true,
          "tokenServiceProviderUrl": "https://gateway.watsonplatform.net/authorization/api/v1/token",
          "tokenServiceUrl": "https://gateway.watsonplatform.net/assistant/api"
        }
      ]
    }
  }
}

服務編排引擎

在配置服務編排引擎時,由於所用的環境變數與配置 Watson Assistant 時相同,您也要在 vgwActSetConversationConfig 動作中變更這項配置。

重要事項:如果您在直接配置的 Watson Assistant 服務與服務編排引擎之間切換,請將 workspaceID 屬性設為空白值,這樣該配置就不會使用配置中的值。

{
  "output": {
    "vgwAction": {
      "command": "vgwActSetConversationConfig",
      "parameters": {
        "url":"https://soe-example.net",
        "username":"adminuser",
        "password":"XgUCZZItgZD0"
      }
    }
  }
}
表 2. 服務編排引擎的連線屬性
屬性 說明 相關的環境變數
url 服務編排引擎的確切 URL。 WATSON_CONVERSATION_URL
workspaceID 如果從 Watson Assistant 服務切換,請設為 "",以清除工作區配置。 WATSON_CONVERSATION_WORKSPACE_ID
username 服務編排引擎的使用者名稱(純文字)。只有在 SOE 中啟用鑑別時才需要。 WATSON_CONVERSATION_USERNAME
password 服務編排引擎的密碼(純文字)。只有在 SOE 中啟用鑑別時才需要。 WATSON_CONVERSATION_PASSWORD

已淘汰:使用狀態變數來配置 Watson Assistant

在 1.0.0.2 版中,為了支持使用前述章節中的動作標籤,不再藉由定義狀態變數來配置 Watson 服務(該方法已遭淘汰)。

重要事項:雖然這些狀態變數仍可繼續運作,但是您無法在節點內定義這些已淘汰的狀態變數和動作標籤。您的 Watson Assistant 對話中可以混合了動作標籤和已淘汰的狀態變數,但是每一個節點的 JSON 定義只能含有其中的一個。

{
    "context": {
        "vgwConversationConfigSettings": {
            "url":"https://gateway.watsonplatform.net/conversation/api",
            "workspaceID":"a23de67h-4e92-4565-c1b5-ebd59a2ffcad",
            "username":"9h7f54cb-5epb-80d6-45c3-da41d2bf7a71",
            "password":"asxNzDLpIJ6F"
        }
    }
}
表 3. Watson Assistant 的 JSON 內容
JSON 內容 說明 相關的環境變數
url Watson Assistant API 的 url 認證。 WATSON_CONVERSATION_URL
workspaceID Watson Assistant API 的工作區 ID。 WATSON_CONVERSATION_WORKSPACE_ID
username Watson Assistant 的 username 認證。 WATSON_CONVERSATION_USERNAME
password Watson Assistant 的 password 認證。 WATSON_CONVERSATION_PASSWORD