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

how to solve actions on google-Api.ai error

Screenshot 2The one screen shot of this error问题我正在使用 api.ai 构建一个应用程序,这是一个教学大纲应用程序,它会告诉您教学大纲,但是当我使用分支和学期等所需参数调用它时,我已经制定了每个单独的意图因为即使这样,有时我也会错过答案,比如当被要求提供 sem 4 和分支电子产品时,它显示 sem 3 sem 4 或其他分支。我已经根据需要给出了 sem 和分支 n 给出了很少的调用语句,即使得到这个。甚至尝试在 api.ai 上手动训练它以免费执行 30 秒的操作,没有解决方案请帮忙。不使用任何网络挂钩、上下文、事件。

简答 - 请在此处查看屏幕截图 http://imgur.com/a/tVBlD

长答案 - 你有两个选择

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

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

如果你走第二条路线,你必须创建一个 webhook 和硬编码识别词,如 'computer science' 在 IF 语句中检查传入参数(通过 JSON 从 API.AI 发送).这条路线将更加困难,但我认为无论如何您都必须走这条路,因为您将拥有可以访问的后端架构和 return 教学大纲。

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

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

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

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