Opendial是什么
Opendial是基于Java开发和领域无关的工具包,用于开发语音对话系统。OpenDial 最初设计用于执行对话管理任务,但它也可用于构建成熟的对话系统。
可以广泛的应用在问答聊天场景中,偏门一点也可以用在工作流引擎的场景中。
技术能力有限,类比工作流引擎对我来说更容易理解。
Opendial的简单应用
Q买家: 请问有人在吗
A客服: 在的,请问您需要什么帮助么?
Q买家: 177穿那个码?
A客服: 您可以发一下那个商品链接么?
Q买家: https://www.xxxx.com/xxx/xxx?id=xxxxx
A客服: 请问您的体重是多少呢?
Q买家: 60
A客服: 根据xxxx,推荐xxxx
<br />如上所示,这个是一个简易的问答场景,也可以说是一个简易的 `工作流引擎` 。 这个只是它能力的一部分,它可以利用 `贝叶斯算法` 的概率进行流程调整,例如下雨天起火的概率。
Opendial的能力
- 判断关系,用于判定是否执行某一条规则
- 等于
- 不等于
- 大于
- 小于
- 包含
- 不包含
- 等等
- 多个判断关系组合形成的复杂关系
- 设置变量
- 流程开始可以将外部变量投递到流程上下文中,类比ThreadLocal
- 流程流转中间可以把变量塞到上下文中。
- 调用外部函数可以把外部函数的结果设置到上下文中
触发其他流程
理解相对简单,有作者的论文帮助理解,可以快速消化
- XML流程配置,流程简单
缺点
- 没有中文资料
- 代码比较复杂
- 大规模使用需要图形化的流程图,官方仅支持XML解析
- 一些错误会导致奇奇怪怪的错误。