我有一个将日期作为输入的意图。我曾经@sys.date识别日期,它能够识别多种日期格式,包括今天、11 月 2 日、2 天前。
但是,令人惊讶的是,它无法将2 天之类的短语映射回特定日期。
有什么办法让它工作吗?
1 回答
3
您不能添加到系统实体(以 开头的实体@sys),但您可以使用自定义日期单位实体(包括“天数”)和系统编号实体创建自己的复合日期实体:
date-unit使用值days和同义词创建一个新实体days back:
并保存实体- 创建另一个名为 的实体
Date,取消选中该框Define synonyms并输入@sys.number @date-unit该实体的值:
并保存该实体 - 接下来将
X days back训练示例添加到应自动注释的意图(如果不突出显示训练短语并手动注释):
并保存意图。通过查询您的代理来尝试一下X days back。
您从此有效负载收到的 JSON 将根据@sys.date实体是否被识别或@Date您刚刚创建的实体是否被识别而有所不同。您的 webhook 将接收的 JSON 有效负载17 days back query如下所示:
{
"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"
}
}
因此,除了类型之外,您还需要在 webhook 中添加一些逻辑来解析此日期@sys.date类型。
于 2018-11-20T15:14:11.967 回答

