[英]Serverless Watson Deployment? (Questions about integrations with other RESTful services)
簡介:我覺得我在體系結構級別上如何設計Watson Assistant方面缺少了非常明顯的東西,但也許我沒有。
我遇到的特定問題是,我似乎無法將API信息調用返回到對話中。
更大的問題是,我不確定是否為了長期完成要完成的工作而正確設置了所有這些設置。
目的:我正在為我們的托管網絡構建24/7客戶服務第1層服務台。 我們網絡之一的用戶應該通過SMS,Web聊天,Facebook Messenger和最終的電話請求:
問題:我建立了大多數對話框,並且運行良好。 通過實體獲取信息,保存到上下文變量,將它們吐出來以使對話正常工作,題外話等等都可以正常工作。
在我的一生中,我無法弄清楚在嘗試從外部API獲取信息時我做錯了什么。
我們為來賓網絡提供了一個“每日密碼”,我們希望一個要求每日密碼的用戶將其接收。 這涉及到對公共可訪問服務器的非常簡單的GET請求。
我已經構建了一個可以完美運行的BlueMix / IBM Cloud函數,但是我似乎無法成功地從中調用或接收信息。
沃森錯誤:
Error when updating output with output of dialog node id [node_66_xxxxxxxxxx]. Node output is [{"text":{"values":["Today's password for <? $guestNetwork.ssid ?> is <? $guestNetwork.password ?>"],"selection_policy":"sequential"}}] SpEL evaluation error: Expression [ $guestNetwork.ssid ] converted to [ context['guestNetwork'].ssid ] at position 0: EL1007E: Property or field 'ssid' cannot be found on null (and there is 1 more error in the log)
該錯誤使我相信我沒有正確地在Watson中定義結果變量,或者在對話中不正確地嘗試檢索它-因為我確實知道我的代碼在BlueMix Console中運行時會返回SSID和密碼。
動作本身的JSON(是的,我在上一個節點中設置了憑據):
{
"output": {
"text": {
"values": [
"Today's password for <? $guestNetwork.ssid ?> is <? $guestNetwork.psk ?>"
],
"selection_policy": "sequential"
}
},
"actions": [
{
"name": "get-http-resource/getGuestNetworkPassword",
"type": "server",
"credentials": "$private.myCredentials",
"result_variable": "$guestNetwork"
}
]
}
題:
通過使用Watson <-> IBM Cloud <->外部服務,我對“無服務器” Watson的想法是否可能? 我們目前沒有“應用程序”或服務器,所有這些都是現有服務之間的集成。
任何人都可以幫助我了解嘗試訪問該變量時我在做什么錯嗎?
優點:如何知道僅在IBM Cloud中成功完成操作后才能訪問變量? 基本上,如果通過我編寫的IBM Cloud函數訪問信息需要1.5秒,我是否需要將該對話框暫停1.5秒? 還是我完全錯過了如何獲取和獲取Watson外部信息的要點?
編輯:觀看米奇的視頻后,我已經改變了幾件事,並且錯誤消息已演變為:
“使用對話框節點ID [node_66_1533646714776]的輸出更新輸出時出錯。節點輸出為[{“ text”:{“ values”:[“今天的密碼為”],“ selection_policy”:“ sequential”}}}] SpEL評估錯誤:表達式[$ guestNetwork ['ssid']]在位置24處轉換為[context ['guestNetwork'] ['ssid']]:EL1012E:無法索引為空值”錯誤。
沒有看到您的對話框,這是一個猜測,但是我看到的最常見的錯誤是,您只需要在執行動作調用后跳到一個子對話框節點即可。 您不能進行操作調用,也不能在同一對話框節點中顯示響應,因為對話框需要運行該操作的機會。
在我的視頻中對此進行了概述: https : //ibm-dte.mybluemix.net/ibm-watson-assistant?refresh參見有關對話框標注的視頻。 它的時間只有13分鍾,我敢肯定您只需要其中2個,但仍然可以幫上忙。
您嘗試做的事情絕對有可能實現,特別是如果它在雲功能環境中有效。
我們使用默認程序包(未將其放在子程序包中)重新創建了操作,然后立即開始工作。
注意事項:Watson對話框編輯器不喜歡包名稱中的破折號。
謝謝米奇!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.