我正在研究一种按姓名或专业搜索医生的技能。
我的意图是:FindDoctor
它有3个插槽:Type
,Name
和Specialty
。
当用户说:
“我想找医生”
然后我的代码将控件委派给Alexa并要求提供Type
:
“好吧,您要用名字还是专业来找到它?”
如果用户要求输入Name
或Specialty
:
“按专业”
我的代码将在必要的插槽中委派,以满足用户的意图:
“完美,这是专业的名称?”
用户将实现它:
“创伤学”
我的代码将调用一个API并找到结果:
“这是最近的创伤学家。...等”
如果漫游器询问Type
,会发生什么:
“好吧,您要用名字还是专业来找到它?”
用户说:
“整形专家”。
然后,我要填写插槽Specialty
,不需要Type
。
但是在填充广告位时,我将用户“ a {Specialty}”作为可能的答案,我没有填写广告位Specialty
,而是始终填写广告位Type
因此,假设我总是向用户询问他想找到什么。当我在Type
插槽中填写Alexa时,有什么方法可以满足另一个插槽要求?
答案 0 :(得分:1)
如果我的理解正确,您想从一个意图中填补多个空缺。这是一个可能看起来像的例子:
{
"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": [
...
]
}
}
]
}
]
}
以下是一些有用的其他资源: Using Dialog Management to Capture A and B or C Slots
另一个好问题..如果您的两种类型相似:Multiple intents sharing the same slot value