首页 > 解决方案 > Microsoft 聊天机器人对问题给出双重答复的问题,而不是我指示它做的 1 次

问题描述

我目前正在使用微软的语音工作室来创建一个简单的聊天机器人。对于我所有的问题,我需要添加一个确认规则来询问他们是否需要进一步的帮助才能到达他们正在寻找的位置。然而,在它到达语音命令的最后一部分之后,它会一直说语音 2 次,而不是只说一次。例如,对于这个关于房间 b 在哪里的问题,它会说两次语音响应,而不是它过去仅在 2 天前输出的一次。

例句页面

这是我在语音工作室中的确认命令,询问他们是否需要帮助才能到达该位置 这是我的成功命令,假设用户在确认阶段说是

然而,这个问题就在昨天我测试聊天机器人时出现了。我在测试期间得到了这个输出:“当然,请现在跟我来”两次,而不是我需要的一次。 这是在测试阶段出现的。如您所见,它说当然请现在关注我 2 次,而不是我需要的 1 次

标签: azuremicrosoft-cognitivespeechmicrosoft-speech-apimicrosoft-speech-platform

解决方案


感谢您伸出援手。

屏幕截图中的配置看起来不错。

我创建了一个确认示例来验证行为,但我无法使用 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 如果您可以克隆您的应用程序并提供带有故障的精简版本,我们将很乐意帮助您进一步排除故障。


推荐阅读