我从事的技能是按姓名或专业搜索医生。
我的意图是:FindDoctor
它有3个插槽:Type
、Name
和Specialty
。
这就是我现在所拥有的:
当用户说:
"我想找医生">
然后我的代码将控制权委托给Alexa,并请求Type
:
"好的,你想按名字还是按专业找到它?">
如果用户要求Name
或Specialty
:
"按专业">
我的代码将在实现用户意图所需的插槽中进行委派:
"完美,专业的名称是什么?">
用户将完成它:
"创伤学">
我的代码将调用API并找到结果:
"这是最亲密的创伤科医生……等等">
这就是我想要得到的:
如果机器人询问Type
:会发生什么
"好的,你想按名字还是按专业找到它?">
用户说:
"创伤学家。">
然后我想完成插槽Specialty
,而不需要Type
。
但在填充插槽时,我将用户的可能答案放为"a{Specialty}",我不满足插槽Specialty
,而是始终满足插槽Type
。
所以假设我总是问用户他想找什么。当我在Alexa的Type
插槽填充时,有什么方法可以完成另一个插槽吗?
如果我理解正确,您希望从一个意图填充多个插槽。下面是一个可能的例子:
{
"intents": [
{
"name": "FindDoctorIntent",
"samples": [
"Find a doctor",
"Find doctor {DoctorName}",
"{Specialty}",
"Find a {Specialty}"
],
"slots": [
{
"name": "Specialty",
"type": "LIST_OF_SPECIALTIES"
},
{
"name": "DoctorName",
"type": "AMAZON.US_FIRST_NAME" // or whatever type is best suited for your usecase
}
]
}
],
"types": [
{
"name": "LIST_OF_SPECIALTIES",
"values": [
{
"id": "traumatologist",
"name": {
"value": "traumatologist",
"synonyms": [
"traumatologist",
"Traumatology",
...
]
}
},
{
"id": "other docter type",
"name": {
"value": "other type..",
"synonyms": [
...
]
}
}
]
}
]
}
以下是一些可能有用的其他资源:使用对话框管理捕获A和B或C插槽
另一个好问题。。如果你的两种类型相似:多个意图共享相同的插槽值