如何解决 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 参数和激发每个意图的常用短语就可以节省艰苦的工作。
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 参数和激发每个意图的常用短语就可以节省艰苦的工作。