AWS Lambda 似乎最适合帮助您实现您想要实现的目标。
通过 AWS Lex 控制台进行测试时,单击“检查” 按钮并查看 JSON 格式的请求和响应。
您会发现,当用户以文字形式输入数值时 - 如您的示例 "nine" 而不是 "9" - Lex 将为您提供与原始输入以及输入的数字形式。
看看下面我从我自己的示例中提取的 JSON 有效负载:
{
"messages":[
{
"content":"Well done!",
"contentType":"PlainText"
}
],
"sessionState":{
"dialogAction":{
"type":"Close"
},
"intent":{
"name":"MainIntent",
"slots":{
"quantity":{
"value":{
"originalValue":"two",
"interpretedValue":"2",
"resolvedValues":[
"2"
]
}
}
},
"state":"ReadyForFulfillment",
"confirmationState":"None"
},
"originatingRequestId":"e309a92b-124b-4250-bbd3-2fb8891aa90f"
},
"interpretations":[
{
"nluConfidence":{
"score":1
},
"intent":{
"name":"MainIntent",
"slots":{
"quantity":{
"value":{
"originalValue":"two",
"interpretedValue":"2",
"resolvedValues":[
"2"
]
}
}
},
"state":"ReadyForFulfillment",
"confirmationState":"None"
}
},
{
"intent":{
"name":"FallbackIntent",
"slots":{
}
}
}
],
"sessionId":"858917309331613"
}
查看负载中的 interpretedValue 字段。这是您要查找的数值。
使用 Lambda 函数,您可以提取此值并执行您可能需要的任何验证,然后再继续流程或用户旅程的其余部分。
您可以从开发人员指南中了解更多关于将 Lambda 函数集成到 Lex 中的信息:
https://docs.aws.amazon.com/lexv2/latest/dg/lambda.html