Opendial是什么

Opendial是基于Java开发和领域无关的工具包,用于开发语音对话系统。OpenDial 最初设计用于执行对话管理任务,但它也可用于构建成熟的对话系统。

可以广泛的应用在问答聊天场景中,偏门一点也可以用在工作流引擎的场景中。

技术能力有限,类比工作流引擎对我来说更容易理解。

Opendial的简单应用

  1. Q买家: 请问有人在吗
  2. A客服: 在的,请问您需要什么帮助么?
  3. Q买家: 177穿那个码?
  4. A客服: 您可以发一下那个商品链接么?
  5. Q买家: https://www.xxxx.com/xxx/xxx?id=xxxxx
  6. A客服: 请问您的体重是多少呢?
  7. Q买家: 60
  8. A客服: 根据xxxx,推荐xxxx
  1. <br />如上所示,这个是一个简易的问答场景,也可以说是一个简易的 `工作流引擎` 。 这个只是它能力的一部分,它可以利用 `贝叶斯算法` 的概率进行流程调整,例如下雨天起火的概率。

Opendial的能力

  • 判断关系,用于判定是否执行某一条规则
    • 等于
    • 不等于
    • 大于
    • 小于
    • 包含
    • 不包含
    • 等等
    • 多个判断关系组合形成的复杂关系
  • 设置变量
    • 流程开始可以将外部变量投递到流程上下文中,类比ThreadLocal
    • 流程流转中间可以把变量塞到上下文中。
    • 调用外部函数可以把外部函数的结果设置到上下文中
  • 触发其他流程

    • 在流程中触发其他并继续执行

      优点

  • 理解相对简单,有作者的论文帮助理解,可以快速消化

  • XML流程配置,流程简单

缺点

  • 没有中文资料
  • 代码比较复杂
  • 大规模使用需要图形化的流程图,官方仅支持XML解析
  • 一些错误会导致奇奇怪怪的错误。