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