自动化流程开源框架BotSharp
BotSharp是一款为方便构建智能对话机器人平台而开发的开源框架,最大的特点是所有模型算法都是基于.NET Core开发实现,甚至最基本的Penn Treebank分词标准,都重新用C#实现了。在机器学习python占绝对优势的时代算是不可多得的项目。该项目涉及自然语言理解,计算机视觉和音频处理技术,旨在促进智能机器人助手在信息系统中的开发和应用。目前里面的NLP部分实现的比较多一些,比如n-gram, TF-IDF, CRF, SVM和Bayes。Chabot所需要的算法都已经有了,大家下载完源代码就可以开始搭建Chabot平台了,开箱即用的机器学习算法使.NET程序员能够更快,更轻松地开发对话式人工智能应用程序。
BotSharp的目标是帮助.NET开发者构建自己的流程自动化机器人,以自然语言对话交流的方式让电脑完成一些机械重复的劳动,并加入智能感知进去。让机器人能在声音,图像和语言方面都能与使用者沟通。项目分成几个项目,封装在不同的Dll里,有基本数据算法库,自然语言库,计算机视觉库和语音识别及合成库,最后通过即时通讯通道和使用者进行互动,像Slack和Facebook Messenger这样的可以进行富内容展现的聊天平台。
BotSharp严格按照组件原则,解耦框架中所需的每个部分。因此,您可以选择不同的UI / UX,或选择不同的NLP Tagger,或选择更高级的算法来执行命名实体识别任务。它们都是基于接口进行模块化设计的。NLP流程管道的设计让你可以随意扩充机器人的识别能力。使用了标准的Open API,可以用Swagger进行API调试。使用了Docker容器技术,运行布署都很方便。
下面是一些特性总结:
-
无需依赖任何其他机器学习算法库,集成调试更容易。
-
内置多Bot管理,轻松构建Bot即服务平台。
-
具有生命周期的上下文输入/输出管理,使圣诞流程切换更可控。
-
使用自然语言处理管道机制轻松使用扩展,并构建自己独特的机器人处理流程。
-
用C#全面实现NLP基础算法而没有历史问题。
-
直接支持来自其他bot平台的导出/导入。
-
支持不同的UI提供商,如Rasa UI和Articulate UI。
-
支持多种数据请求和响应格式,如Rasa NLU和Dialogflow。
-
与流行的社交平台集成,如Facebook Messenger,Slack和Telegram。
-
多核并行计算优化。
项目本身还在不断的迭代中,代码可以在这里下载。如果大家觉得这个项目对自己很有帮助,请记得Like一下哦,得到大家的认可是对开源项目贡献者最大的支持。也欢迎大家提出意见和建议,有Pull Request更好了。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
Noark入门之极速体验
官方网站 www.noark.xyz 开源地址 https://gitee.com/xiaoe/noark3 简介 Noark是一个游戏服务器端框架,可快速开发出一个易维护、易扩展且稳定高能的游戏服务器,让开发者专注于业务功能的开发 实现了配置注入,协议映射,模板加载,数据存储,异步事件,延迟任务,内部指令等功能模块 从而达到了松散耦合的效果,提高了系统的可重用性、可维护性以及可扩展性 精心设计过的它大大简化了网络编程和多线程编程,众多的工具类库就是为了解决开发中那些重复劳动而产生的框架 优点: 使用简单,学习成本低 功能强大,很容易写出性能优秀的服务 十分灵活,并且可与常用技术无缝衔接 安装 Gradle implementation "xyz.noark:noark-game:3.1.18.Final" 当前需要Jdk1.8,Noark版本最新已是3.1.18了 引入Noark,按照历史惯例,先来一个Hello Kitty... 0x01Hello Kitty 第一个游戏服务器Demo,来开始我们的ABC三步走 A、Application应用启动入口 在【com.company.s...
-
下一篇
Golang面试题解析(五)
41.执行下面的代码发生什么? package main type Param map[string]interface{} type Show struct { *Param } func main() { s := new(Show) s.Param["RMB"] = 10000 } 考点:map初始化 map需要初始化后才能使用。 编译错误:invalid operation: s.Param["RMB"] (type *Param does not support indexing) 42.执行下面的代码发生什么? package main import "fmt" type student struct { Name string } func zhoujielun(v interface{}) { switch msg := v.(type) { case *student, student: msg.Name = "qq" fmt.Print(msg) } } 考点:类型转换 msg不属于student类型,所以没有Name字段。 改为: s := v.(student)...
相关文章
文章评论
共有0条评论来说两句吧...