我已经使用LUIS在azure服务中创建了该机器人,该机器人用作聊天机器人并可以使用对话框创建对话。
有时,我正尝试使用 Direct Line API 3.0 将消息推送到聊天机器人,而我正在使用Postman将消息发送到bot。
我能够以bot身份向对话发送消息,下面是我从Postman发送消息并获得成功回复的图片。
但是我的问题是,在发送消息后,即使不是用户消息,该机器人也会尝试进行分析。 Bot开始从默认的消息处理程序发送消息,如下所示,
即使成功发送了消息,我的机器人也会触发默认消息处理程序,该消息处理程序只会在用户消息中发生,而在机器人消息中不会发生。
我还检查了网络聊天频道,它不会触发此默认消息处理程序。仅在DirectLine API中会发生这种情况,任何人都可以帮我解决这个问题。
答案 0 :(得分:1)
您应该将消息发送为“事件”,而不是将消息发送为“消息”类型。 这样,您的MessagesController会将其视为Event的ActivityType而不是Message,并且您可以根据需要进行处理,而不会浪费实际的消息处理量 如果您想发送不同类型的事件以使其更轻松,则可以通过在json中为“名称”字段提供值来“命名”事件。 第三,如果您需要在消息中包含数据,则可以在json的“值”字段中提供一个值。
standard webchat client的github页面上有一些有关发送事件的重要信息。也许可以更清楚地了解json。
您可以阅读有关'event' activity type here
的更多信息您给json发送的消息看起来像这样:
{
"type": "event",
"from": {
"id": "user1"
},
"name": "theEvent",
"value": "someDataMyBotNeeds"
}