如何解决google-Api.ai错误的操作

时间:2017-08-25 13:38:27

标签: actions-on-google

Screenshot 2 The one screen shot of this error问题我正在使用api.ai构建应用程序,这是一个教学大纲的教学大纲应用程序,但是当我用分支和学期等所需参数调用它时,我已经创建了每个人即便如此,我也会得到错过的答案,有时候会被问到sem 4和分支电子产品,它显示sem 3 sem 4或其他分支。我已经给出了sem和branch,根据需要给出了很少的调用语句,甚至得到了这个。甚至尝试在api.ai上手动训练它免费30秒的行动没有解决方案请帮忙。不使用任何Web钩子,上下文,事件。

2 个答案:

答案 0 :(得分:1)

简短回答 - 点击此处查看截屏http://imgur.com/a/tVBlD

答案很长 - 你有两个选择

1)为每个分支类型(计算机科学,民用,通信)创建3个单独的自定义实体,您需要将这些实体附加到分支参数

2)使用sys.any实体并将其附加到branch参数;然后确定服务器上的传入参数值是什么,然后通过webhook发回响应。

如果你走第二条路线,你必须创建一个webhook并硬编码识别的单词,如计算机科学'在IF语句中检查传入参数(通过API.AI中的JSON发送)。这条路线会比较困难,但我认为你必须去旅行,因为你会有后端架构,你可以找到并返回教学大纲。

注意第二条路线是我为解决类似问题所做的工作。

您还可以使用正则表达式匹配列表中的项目,该项目限制了硬编码的数量以及您必须执行的语句。

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

答案 1 :(得分:0)

一个简单的技巧就是我所做的,只需要为分支和学期保存一个实体,使用sys.original参数和激发每个意图的常用短语可以节省辛勤工作。