2017-08-25 34 views
1

Screenshot 2The one screen shot of this error問題我正在使用api.ai構建一個應用程序,該應用程序會告訴您教學大綱,但是當我用分支和學期等所需參數調用它時,使每個人的意圖,即使然後我有時候得到小姐的答案,有時就像當問問sem 4和分支電子其顯示sem 3 sem 4或其他分支。根據需要,我給出了sem和branch,並給出了很少的調用語句,即使這樣做了。嘗試即使手動培訓30分鐘的api.ai行動沒有解決方案,請幫助。不使用任何Web鉤子,上下文,事件。如何解決google-Api.ai上的操作錯誤

+1

嗨Prithviraj,能否請你添加一些截圖,這將是非常有益這裏瞭解你想做什麼。 – Sukh

+0

同意。如果你可以包含一些意圖的屏幕截圖,以及你在說什麼和失敗的例子,那麼要弄清楚發生了什麼會有很長的路要走。 – Prisoner

+0

截圖: - 1)https://lh3.googleusercontent.com/x69dXer9sRfJs4rnmWZRtEINV4ySbnfvExEdMbVnfPlEzlGmoY8Qoih5EPsEEPUP6AHqPWcKvgOj3oQ=w1600-h745-rw 2)https://lh5.googleusercontent.com/1CUzqxysvJ6qjT5EvHcYEu8MF7wQ-KiraDlxFFRNmOLYHArboIJSTgmcUPM8yoBY-VwJ43C4BlFUaw8=w1600-h745-rw 3)的https: //lh4.googleusercontent.com/pfpOJFBQXheM_ZNKBeBcx4YPZi6HX0c7X5oDU2NXMMs5irOI_6QhhHKAAGfNJxosvo9kErb2Hnznn48=w1600-h745-rw –

回答

0

一個簡單的一招是我做什麼,只是有保存的兩個分支學期的實體,使用sys.original參數和挑起每個意圖的常用短語節省了努力工作。

1

簡短的回答 - 在這裏獲得的截圖http://imgur.com/a/tVBlD

朗的答案 - 這需要你有兩個選擇

1)創建爲每個分支型3個不同的自定義實體(計算機科學,土木工程,通信)連接到您的分支參數

2)使用sys.any實體並將其連接到您的分支參數;然後確定傳入參數值在服務器上是什麼,然後通過webhook發回響應。

如果你走第二條路線,你必須創建一個網絡掛接和硬編碼識別的單詞就像IF其中檢查傳入的參數語句(通過JSON從API.AI發送)「計算機科學」。這條路線會更加困難,但我認爲您不得不去旅行,因爲您將擁有後臺架構,您可以訪問該架構以查找並返回課程大綱。

注意第二條路線是我做過什麼來解決類似的問題。

您還可以使用正則表達式中的項目,限制硬編碼量的列表,如果您需要做的陳述相符。

Python的正則表達式搜索示例

 baseurl = "http://mywebsite.com:9001/" 
     # Parse the document 
     # Build the URL + File Path and Parse the Document  
     url = baseurl + 'Data' 
     xmlLink = urllib.request.urlopen(url) 
     xmlData = etree.parse(xmlLink) 
     xmlLink.close()  

     # Find the number of elements to cycle through 
     numberOfElements = xmlData.xpath("count(//myData/data)") 
     numberOfElements = int(numberOfElements) 
     types = xmlData.xpath("//myData/data") 


     # Search the string   
     i = 0 
     while numberOfElements > i: 
      listSearch= types[i].text 

      match = re.search(parameter, listSearch, re.IGNORECASE) 

      if match is None: 
       i += 1 
      else: 
       # Grab the ID 
       elementID = types[i].get('id') 
       i = 0 
       break 
+0

是啊!我意識到它甚至嘗試了1)步驟,因爲我的行動要求分支和學期都試圖讓每個單獨的實體即使面臨同樣的錯誤。現在用相同的模型,我可以得到的結果,你可以說7/10倍,你會得到準確的結果..但擔心其他3。我意識到使用第二步中提到的Web鉤子,但硬編碼會使我幾乎幾百條if語句。但即使在那裏,我希望用戶能夠得到準確的學期以及分支來提供答案。我遇到了衝突的情況,學期和分支交叉比賽。 –

+0

您是否嘗試過使用正則表達式?你可能可以做一些事情,在你試圖將傳入參數匹配到你擁有的列表中的任何地方。我在python中添加了一個關於使用正則表達式的例子。這可能是你正在尋找的東西。 我用了一個類似的解決方案,它的名單很短(可能是20-30種音樂類型),但是(!)明確地做了這個,所以人們可以說'播放派對音樂'或'播放舞曲'分類爲「舞蹈/派對」。另外,對於這個特定的工作,我實際上是新來的Python,這不是一件容易的事情,而且是一門偉大的語言。 –

+0

更新了我的答案。你可以使正則表達式(正則表達式)找到完全匹配。我剛剛添加到答案中的正則表達式示例沒有顯示,但它很容易。 [這是另一個有完全匹配示例的問題。](https://stackoverflow.com/questions/7879600/using-anchors-in-python-regex-to-get-exact-match) 它肯定會減少在硬編碼上。還有一件事。你可以使用sys.any作爲該路由的參數,這是我所做的。 –