Skip to main content
New in Orchard Core 1.6 AzureDeveloper.cn was build on OrchardCore Bootstrap

创新就这么简单:AI驱动 + Azure加速!

立即开始使用最新模型和最喜爱的 Azure 工具构建 AI 解决方案。即用即付或免费试用 Azure 长达 30 天。无前期承诺使用量(可随时取消)。

az cloud set --name AzureChinaCloud; az login
Download Azure Cli

入门指南 · 架构指南 · 服务介绍 · 所有文章 · 电子书籍

PowerByAi

开发基于微信公众号的聊天机器人

分类:  Azure机器人 标签:  #Azure Bot Framework SDK #Azure Bot Service #机器人 发布于: 2023-08-07 23:16:24

要学习微信的开发以及在微信的Adapter上支持哪些功能,可以详细的参考这个Sample,另外新增了两个Adapter的实现: WeChatAdapterWithErrorHandler WeChatAdapterWithErrorAndTranscriptLoggerHandler 区别在于一个Adapter会存储Transcript到SQL Server, 另外一个不会,关于如何使用SQL Server作为外部的存储,可以参考文档:

Read more

聊天机器人项目中将状态管理数据存储到数据库中

分类:  Azure机器人 标签:  #Azure Bot Framework SDK #Azure Bot Service #机器人 发布于: 2023-08-07 23:12:13

SDK默认情况下仅仅提供了两种外部存储支持: 存放在内存中:MemoryStorage是我们的类。 存放在Azure Storage中,这又要求我们必须有Azure Storage的账户。 有没有办法将这些状态数据存储到本地的存储机制上呢?例如关系型数据库? 要解决这个问题,要么自己实现IStore要么可以使用现成的由开源社区开发的库:https://github.com/BotBuilderCommunity/botbuilder-community-dotnet/tree/develop/libraries/Bot.Builder.Community.Storage.EntityFramework, 这个库利用EF Core来将状态保存在SQL Server里,但是很不幸

Read more

聊天机器人项目中使用Dialog实现循环任务

分类:  Azure机器人 标签:  #Azure Bot Framework SDK #Azure Bot Service #机器人 发布于: 2023-08-07 23:08:04

什么是循环任务?例如在聊天的会话中,我们需要对某些场景进行分页,显示更多的数据,或者需要用户重复的确认某一件合同,收集不同的信息,等等都可以实现为一个循环任务。我们本例继续延续之前的场景,当用户年龄大于35岁,询问他是否会购买保险,如果用户选择了购买保险,那么我们需要给用户看一个3页的保险说明书,案例中使用循环任务实现了从第一页保险说明循环到最后一页退出,或者用户选择特定的按钮退出循环。

Read more

深入理解Bot Framework SDK Dialog系统

分类:  Azure机器人 标签:  #Azure Bot Framework SDK #Azure Bot Service #机器人 发布于: 2023-08-07 22:59:56

为了让大家能快速了解Bot Framework SDK中的Dialog库,我们写了一个快速的Demo, 大家可以查看之前的这一篇文章:<> 复习一下,本章我们深入的学习一下Dialog的架构。 第一个需要明确的概念就是Dialog的组件是一个有状态的系统,因此我们必须在启用聊天机器人的状态管理器,并将代表Dialog系统的状态变量存入到Bot的状态管理器中。 Dialog State 管理Dialog系统状态的类是DialogState, 为了管理状态在启动Dialog时就必须将DialogState的实例放入到状态管理器中,例如:

Read more

使用Dialog库控制聊天机器人的会话流程

分类:  Azure机器人 标签:  #Azure Bot Framework SDK #Azure Bot Service #机器人 发布于: 2023-08-07 22:57:01

当我们开发聊天机器人(无论是通过语音还是文字)时候,最重要的一点是机器人在理解了用户对话的主题之后,如何围绕主题对对话进行跟进。为了更真实的模拟真人对话,在很多场景下并不限制主题范围(当然我们也是可以限制的), 当用户突然改变话题,机器人需要保存当前话题的状态并进入下一个话题的,并在某些时候再恢复之前的话题并继续。举一个例子:用户在进行某项业务操作,例如购买商品,预订酒店等等动作,类似场景要给用户一个引导的过程,添加必要的小组件,例如各种卡片,方便用户进行操作,并管理用户的状态。完成这些场景我们无法通过在代码中一直使用if-else,我们可以利用Dialog组件处理这些场景,请记住所有的Dialog组件都是有状态的, 必须依赖状态管理。

Read more

基于Azure Bot Framework SDK开发的聊天机器人如何管理状态

分类:  Azure机器人 标签:  #Azure Bot Framework SDK #Azure Bot Service #机器人 发布于: 2023-08-07 22:52:46

我们之前已经讨论过了Azure Bot Framework SDK的应用是构建于Web API的应用之上,同样也是基于Asp.net Core的框架,这样带来一个问题就是每一个Bot应用实际上是无状态的应用,因为HTTP协议天然就是无状态,为了在Web应用上实现状态的管理,每个开发的框架都有实现自己的会话管理机制(Session), 大多数Web应用会基于Cookie或者是Header或者是查询字符串在每次请求的时候带上唯一的id, 用这个ID来标识每一个会话。基于这样的构想,Azure Bot Framework SDK也同样使用了类似的原理来管理状态,和Web应用不同,Bot的状态管理因为场景的差异,加入了更多的设计。

Read more

聊天机器人里的消息和Activity

分类:  Azure机器人 标签:  #Azure Bot Framework SDK #Azure Bot Service #机器人 发布于: 2023-08-07 22:48:20

Bot的事件驱动 我们之前的文章讨论了一个Bot应用实际参与的几个组件。 物理组件: Channel: 就是一个物理的应用,例如微信,Teams Bot Service: 用于和Channel相连,转发消息到Bot 运行Bot的资源。 逻辑组件: Channel endpoint Adapter Bot Turn Context Handle Activity TurnContext 一个消息的流入路径是:用户 -> Channel -> Adapter -> Adapter middleware -> Bot Turn handle

Read more

创建一个全功能的聊天机器人项目模板

分类:  Azure机器人 标签:  #Azure Bot Framework SDK #Azure Bot Service #机器人 发布于: 2023-08-07 22:43:39

我们前面的文章向大家展示了如何快速的写一个简单的聊天机器人,如果您还没有看过这篇文章,您可以使用如下的连接阅读:https://www.azuredeveloper.cn/article/hello-bot。 需要说明的是,之前文章介绍的虽然是一个很简单的聊天机器人,但是它的应用场景不简单。它已经可以很好的满足很多场景下的聊天需求了,您需要需要做的仅仅是在Bot里添加更多或者集成的服务,用于满足更多场景:例如在Bot的OnMessageActivity的事件里添加更多的命令,保存每个用户的id和它和bot之间的conversationId,添加自然语言处理,或者问答系统。机器人的架构可以不用做任何更改,通过扩充和集成其他系统到Bot事件处理方法里,就可以提升和增加它的处理能力了。

Read more

Hello, Bot!

分类:  Azure机器人 标签:  #Azure Bot Framework SDK #Azure Bot Service #机器人 发布于: 2023-08-07 22:40:36

我们之前的文章简单的介绍了一下由微软提供的Azure Bot Framework SDK以及Azure Bot Service服务,比较不妙的是看起来这个服务真没啥人用,不能排除微软之后就不支持这个服务。但是Azure Bot Framework SDK是开源的,而且还有一个开源的社区,因此即便微软不支持Azure Bot Service了,Azure Bot Framework SDK还会以开源的形式继续存在,如果要做聊天机器人,还是可以继续使用这个框架,也可以考虑参与开源的开发。我为了自己的项目也尝试参与了两个开源的项目,一个是Bot基于SQL Server的IStore实现,另外一个是WeChat的Adapter, 这两个项目之前都是有的,但是太老,几年没有更新了,不能支持.Net6,

Read more
;