我有一个以日期为输入的意图。我使用@sys.date
来识别日期,该日期能够识别许多日期格式,包括今天,11月2日,2天前。
但是,令人惊讶的是,它无法将 2天前之类的短语映射到特定日期。
有什么办法可以使它工作?
答案 0 :(得分:3)
您不能添加到系统实体(以@sys
开头的实体),但是可以使用自定义日期单位实体(包括“ days back”)和系统编号实体来创建自己的复合日期实体:< / p>
date-unit
和同义词days
创建一个新的days back
实体:
并保存实体Date
的实体,取消选中Define synonyms
的框,然后输入@sys.number @date-unit
作为实体的值:
并保存实体X days back
培训示例添加到意图中,该意图应自动注释(如果未突出显示训练短语并手动对其进行注释):
并保存意图。通过X days back
查询来查询您的代理,以进行尝试。从此有效负载接收的JSON取决于识别到@sys.date
实体还是识别出您刚刚创建的@Date
实体。您的Webhook将收到的17 days back query
的JSON有效负载如下:
{
"responseId": "1f67167c-8840-42ed-b3ed-420e2c2b1c43",
"queryResult": {
"queryText": "17 days back",
"parameters": {
"Date": "17 days"
},
"allRequiredParamsPresent": true,
"fulfillmentMessages": [
{
"text": {
"text": [
""
]
}
}
],
"intent": {
"name": "projects/anotheragent-c5ea8/agent/intents/6743e47a-8cb5-458d-b573-626d1a392a46",
"displayName": "Date"
},
"intentDetectionConfidence": 1,
"languageCode": "en"
}
}
因此,除了@sys.date
类型之外,您还需要在Webhook中添加一些逻辑来解析此日期类型。