Screenshot 2The one screen shot of this errorissue我正在使用api.ai构建一个应用程序,这是一个教学大纲应用程序,可以告诉你教学大纲,但是当我用所需的参数调用它时,比如分支机构和学期,我已经让每个人都有了它的意图,即使我有时会得到错误的答案,比如当被要求提供sem 4和分支电子设备时,它显示的是sem 3 sem 4或其他分支机构。我已经根据需要给出了sem和分支n,即使在获得这个语句的情况下也很少调用语句。甚至尝试过手动训练它,在api.ai上免费操作30秒,没有解决方案,请帮助。不使用任何web挂钩、上下文、事件。
发布于 2017-09-01 15:07:47
一个简单的技巧就是我所做的,只需要为分支和学期都保存一个实体,使用sys.original参数和一个常用的短语来激发每个意图,这样就省去了大量的工作。
发布于 2017-08-28 22:29:05
简短回答-请在此处查看屏幕截图http://imgur.com/a/tVBlD
很长的答案-你有两个选择
1)为需要附加到分支参数的每个分支类型(计算机科学、民用、通信)创建3个单独的自定义实体
2)使用sys.any实体并将其附加到分支参数;然后确定服务器上的传入参数值,然后通过webhook发送回响应。
如果你走第二条路,你必须创建一个网络钩子,并在If语句中硬编码识别的单词,比如“计算机科学”,用来检查传入的参数(通过JSON从API.AI发送)。这条路线将更加困难,但我认为你将不得不不管怎样地旅行,因为你将有后端架构,你可以访问它来查找和返回教学大纲。
请注意,第二种方法是我为解决类似问题所做的。
您还可以使用正则表达式来匹配列表中的项,这限制了必须执行的硬编码和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
breakhttps://stackoverflow.com/questions/45882725
复制相似问题