azure - Microsoft 聊天机器人对问题给出双重答复的问题,而不是我指示它做的 1 次
问题描述
我目前正在使用微软的语音工作室来创建一个简单的聊天机器人。对于我所有的问题,我需要添加一个确认规则来询问他们是否需要进一步的帮助才能到达他们正在寻找的位置。然而,在它到达语音命令的最后一部分之后,它会一直说语音 2 次,而不是只说一次。例如,对于这个关于房间 b 在哪里的问题,它会说两次语音响应,而不是它过去仅在 2 天前输出的一次。
这是我在语音工作室中的确认命令,询问他们是否需要帮助才能到达该位置 这是我的成功命令,假设用户在确认阶段说是
然而,这个问题就在昨天我测试聊天机器人时出现了。我在测试期间得到了这个输出:“当然,请现在跟我来”两次,而不是我需要的一次。 这是在测试阶段出现的。如您所见,它说当然请现在关注我 2 次,而不是我需要的 1 次
解决方案
感谢您伸出援手。
屏幕截图中的配置看起来不错。
我创建了一个确认示例来验证行为,但我无法使用 Windows 客户端重现此行为(与您在屏幕截图中使用的相同)。
这是您可以导入以试用的示例应用程序。
{
"entityResolver": {
"searchConfiguration": {
"maxEdits": 0
},
"type": "internal",
"isGenerated": true
},
"minIntentConfidence": 0.4,
"highIntentConfidence": 0.8,
"lgTemplates": [
"# FallbackResponse",
"- Add your fallback message here",
"# TestCommand-MyNumber",
"- what number?",
"# TestCommand-27dfe650040311ebb2dccf4459b3ff8b",
"- confirmed.",
"# TestCommand-3228f4d0040311ebb2dccf4459b3ff8b",
"- denied.",
"# TestCommand-4ea19f40040311ebb2dccf4459b3ff8b",
"- sure?"
],
"type": "BaseLanguage",
"recognizer": {
"application": "",
"isStaging": false,
"versionId": "0.1",
"type": "luis"
},
"speechOutput": {
"font": "Microsoft Server Speech Text to Speech Voice (en-US, Aria24kRUS)",
"locale": "en-US"
},
"webEndpoints": [],
"globalParameters": [],
"commands": [
{
"name": "FallbackCommand",
"completionStrategy": "OnRequiredParameters",
"parameters": [],
"rules": [],
"completionRules": [
{
"name": "DefaultResponse",
"conditions": [
{
"type": "True"
}
],
"actions": [
{
"type": "SpeechResponse",
"response": {
"type": "Template",
"templateName": "# FallbackResponse"
}
}
],
"postExecutionState": "None"
}
],
"triggeringExamples": [
"> - You can start sentences with '>' to add comments.",
"> - You can also use parameters by adding the name of the parameter within curly braces, i.e.",
"> Set an alarm to {YourDateParameterName}",
"> Where YourDateParameterName is the name of a parameter defined in the 'Parameters' section.",
"Help",
"Help me",
"What can you do?",
"How can I start?",
"Hello",
"Hi"
],
"multiTurnExamples": []
},
{
"name": "TestCommand",
"completionStrategy": "OnRequiredParameters",
"parameters": [
{
"name": "MyNumber",
"type": {
"name": "Number"
},
"elicitResponse": {
"type": "Template",
"templateName": "# TestCommand-MyNumber"
}
}
],
"rules": [
{
"name": "Confirm command",
"conditions": [
{
"type": "AllRequiredParameters"
}
],
"actions": [
{
"type": "SpeechResponse",
"response": {
"type": "Template",
"templateName": "# TestCommand-4ea19f40040311ebb2dccf4459b3ff8b"
}
}
],
"nextTurnExpectations": [
{
"type": "Confirmation"
}
],
"postExecutionState": "WaitForInput"
},
{
"name": "Confirmation succeeded",
"conditions": [
{
"type": "SuccessfulConfirmation"
}
],
"actions": [
{
"type": "SpeechResponse",
"response": {
"type": "Template",
"templateName": "# TestCommand-27dfe650040311ebb2dccf4459b3ff8b"
}
}
],
"nextTurnExpectations": [],
"postExecutionState": "ReadyForCompletion"
},
{
"name": "Confirmation denied",
"conditions": [
{
"type": "DeniedConfirmation"
}
],
"actions": [
{
"type": "SpeechResponse",
"response": {
"type": "Template",
"templateName": "# TestCommand-3228f4d0040311ebb2dccf4459b3ff8b"
}
}
],
"nextTurnExpectations": [],
"postExecutionState": "CompleteCommand"
}
],
"completionRules": [
{
"name": "Done",
"conditions": [
{
"type": "True"
}
],
"actions": [],
"nextTurnExpectations": [],
"postExecutionState": "CompleteCommand"
}
],
"triggeringExamples": [
"number {MyNumber}",
"my number is {MyNumber}"
]
}
]
}
这是 Windows 客户端的示例输出。
希望这有帮助!ow 如果您可以克隆您的应用程序并提供带有故障的精简版本,我们将很乐意帮助您进一步排除故障。
推荐阅读
- cucumber - 如何在 Gherkin 文件中添加要点?
- python - tensorflow如何从批处理输入中非零值
- javascript - 如何在 php 或 javascript 中更改 Joomla3.9 子表单的最小/最大值?
- python - 如何将 python 对象(数据)上传到 impala(hadoop 集群)?
- .htaccess - 了解 .htaccess 条目
- php - 我是客人时的身份验证
- ios - 如何使用 MVVM + Swift4 实现注册屏幕
- ios - expo弹出后无法运行IOS,只看到白屏,如何使其工作?
- ios - objc-runtime search_method_list 永远挂起,死锁?
- ios - iOS 自定义键盘增加 UIInputViewController 高度