如何高效的引用所有變量?
什么是變量?
變量:在對話過程中可以訪問的字段信息。比如,意圖參數(shù)就是變量。
為什么需要變量?
在對話處理和對話回復(fù)的過程中,需要根據(jù)用戶輸入或外部環(huán)境信息的不同,進(jìn)行個性化處理,這時就需要變量。例如,“查天氣”場景,意圖參數(shù)“城市”是一個變量,因?yàn)橛脩粼诨卮稹罢垎柲槟膫€城市的天氣?”時,可能有不同的回答,這樣意圖參數(shù)不是一個固定值,此時需要通過“${查天氣.城市}”的方式引用該變量,再以“${查天氣.城市}”變量為API參數(shù),訪問外部查天氣接口,才能獲取到符合用戶需求的結(jié)果。
怎么樣引用變量?
意圖參數(shù)的引用
1.引用方式:原始值引用:\${intent.slot.origin},歸一值引用:\${intent.slot}2.使用場景:在內(nèi)置函數(shù)節(jié)點(diǎn)、回復(fù)節(jié)點(diǎn)需要引用意圖參數(shù)的地方。3.舉例說明:在查天氣場景,當(dāng)用戶說“查一下后天杭州的天氣”,對話工廠將“后天”填入“查天氣”意圖下的“時間”意圖參數(shù),通過\${查天氣.時間.origin}能引用到填槽后的原始值:“后天”,通過\${查天氣.時間}能引用到填槽后的歸一值:“2018-07-23”。
外部環(huán)境變量的引用
1.引用方式:\${var}2.使用場景:在內(nèi)置函數(shù)節(jié)點(diǎn)、回復(fù)節(jié)點(diǎn)需要引用外部環(huán)境變量的地方。要想引用外部變量,在線會話時,先將變量寫入ext字段,然后通過會話接口傳入對話工廠。3.舉例說明:在電商場景,外部系統(tǒng)將“用戶是否已登錄”的信息以環(huán)境變量的形式通過會話接口傳入對話工廠,假定具體內(nèi)容為:{“isLogin”: true, “nickName”: “James”},那么在引用變量時,通過\${isLogin}可以引用到用戶是否已登錄的信息。
函數(shù)返回結(jié)果的引用
1.引用方式:\${functionOutput}2.使用場景:當(dāng)上游有函數(shù)節(jié)點(diǎn),希望在緊接的回復(fù)節(jié)點(diǎn)對函數(shù)返回結(jié)果進(jìn)行引用時,可以使用這種方式配置。3.舉例說明:在公積金余額查詢場景,開啟對話后,中間的函數(shù)節(jié)點(diǎn)訪問公積金查詢API,在回復(fù)節(jié)點(diǎn)通過\${functionOutput}即可拿到余額信息。
全局變量的引用
1.引用方式:\${global.var}2.使用場景:在內(nèi)置函數(shù)節(jié)點(diǎn)、回復(fù)節(jié)點(diǎn)需要引用全局變量的地方。3.舉例說明:在電商場景,用戶選擇了某個訂單,通過自定義函數(shù),訂單ID會被記錄到全局變量中,比如:OrderId=146860783793347518,當(dāng)在內(nèi)置函數(shù)節(jié)點(diǎn)或者回復(fù)節(jié)點(diǎn)需要引用訂單ID時,可以通過\${global.OrderId}引用。