在 Microsoft botframework 中回复“正在输入”消息

2024-03-07

我正在 c#.net 和 LUIS 认知服务上使用 MicrofsoftBotFramework 开发聊天机器人。

我希望当用户输入时,它应该在输入或机器人正在输入时回复。

 public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
            {
                Trace.TraceInformation($"Type={activity.Type} Text={activity.Text}");

                if (activity.Type == ActivityTypes.Message)
                {
                    //await Microsoft.Bot.Builder.Dialogs.Conversation.SendAsync(activity, () => new ContactOneDialog());

                    //Implementation of typing indication
                    ConnectorClient connector = new ConnectorClient(new System.Uri(activity.ServiceUrl));
                    Activity isTypingReply = activity.CreateReply("Shuttlebot is typing...");
                    isTypingReply.Type = ActivityTypes.Typing;
                    await connector.Conversations.ReplyToActivityAsync(isTypingReply);

                    await Conversation.SendAsync(activity, () =>
                    new ExceptionHandlerDialog<object>(new ShuttleBusDialog(), displayException: true));                              
                }
                else
                {
                    HandleSystemMessage(activity);
                }
                var response = Request.CreateResponse(System.Net.HttpStatusCode.OK);
                return response;
            }

此代码也有效,但它显示“TYPING”作为动画并转到下一条消息。但我希望它应该显示我设置为“Shuttlebot 正在输入...

see the image here"


大多数频道本身支持“正在打字”通知。只需将打字活动作为消息发送即可:

var reply = activity.CreateReply(String.Empty);
reply.Type = ActivityTypes.Typing;
await activityContext.SendResponse(reply);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Microsoft botframework 中回复“正在输入”消息 的相关文章

随机推荐