如何在Microsoft Bot Framework C#中安排任务?
我正在使用Microsoft的Bot Framework / Bot Builder为C#.NET / LUIS构建测试机器人.它部署在Azure上.我的测试项目的想法是向用户发送提醒.
例如,当用户要求“在两小时内提醒我购买牛奶”时,它应该在两小时内发起对话或向现有对话发送回复. 使用LUIS将自然语言解析为日期和任务没有问题,但我不知道如何安排任务,以便框架以某种方式稍后向用户发送回复. 我已经阅读了文档并在https://docs.botframework.com/en-us/csharp/builder/sdkreference/检查了示例,并在StackOverflow上进行了搜索,但似乎框架不支持它.我也看过Azure Scheduler,但它似乎非常昂贵,即使我的机器人只有100个用户,每个用户只有一个计划任务. 安排任务的另一种方法是什么,以便机器人在指定时间向用户发送消息?
因此,如果我理解正确,您的问题涉及两个部分:
1.如何开始对话 在v3.0中,MS引入了一种新的方式来开始新的对话(组或1对1).参考:https://docs.botframework.com/en-us/csharp/builder/sdkreference/routing.html#conversation 示例代码: var connector = new ConnectorClient(incomingMessage.ServiceUrl); var ConversationId = await connector.Conversations.CreateDirectConversationAsync(incomingMessage.Recipient,incomingMessage.From); IMessageActivity message = Activity.CreateMessageActivity(); message.From = botChannelAccount; message.Recipient = new ChannelAccount() { name: "Larry","id":"@UV357341"}; message.Conversation = new ConversationAccount(id: ConversationId.Id); message.Text = "Hello"; message.Locale = "en-Us"; var reply = await connector.Conversations.ReplyToActivityAsync(message); 2.如何安排工作 有多种方法,您可以使用外部队列服务,Azure Web作业,Web角色,或尝试在ASP.NET本身注册. Hangfire(http://hangfire.io/)是我用于机器人的东西. 代码示例: BackgroundJob.Schedule( () => TriggerConversation(),// <= the start conversation code here TimeSpan.FromDays(1)); // <= when the job should be ran (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Windows – RNDIS小工具无法启动
- windows-8 – 如何模拟我的Metro应用程序被终止?
- Microsoft Translator API Java,如何使用Azure获
- WIN2000 Apache php mysql 安装及安全手册
- Script?Engine?异常?服务器IIS问题解决办法!
- .net – 无法加载DLL’SqlServerSpatial.dll’
- batch-file – 如何在bat文件中添加可选的命令行
- windows下如何为jdk配置环境变量
- 使用fiddler 抓取windows 10 应用程序https流量
- windows编译和使用tesseract(C++ api)