一个可扩展、支持多业务场景对话引擎,同时也可以将引擎应用到其他的场景。
一、引擎的设计
引擎的基本组件包括6个, 开始、执行、响应、判断、子流程、结束
开始节点:流程运行开始的地方
执行节点:执行一段动作,操作。
响应节点:与对话相关,与用户的一次交互
判断节点:分支,判断
子流程: 调用其他的子流程
结束: 结束标识
二、逻辑设计
2.1逻辑的抽象层面
流程的编辑上,前端以json的数据格式组建数据,然后由后端进行构建。
三、总结
第一次做这种逻辑比较多的设计,对自己提升还是蛮大的,虽然有很多其他的细节,自己当时觉得很满足,但现在提炼出来,就只剩上面一点了。
3.1 抽象的能力
好的抽象能概览操作,方便系统的扩展,如将节点(6种不同)统一归成执行,层次清晰,向下扩展也比较方便
3.2 情商能力
以前很排斥文科这样的,但是发现其实生活中就是这样,形形色色的人。但是我还是觉得只要自己方向明确,到达目的其实是很简单。就以这个来说,之前的对话引擎是什么都没有的,到现在有了这个成品。
3.3 一个基本软件系统可以有的抽象
1、上下文 context: 这个是负责数据的保存,一次的会话过程的记录,所有需要保存的相关性东西的地方
2、资源 resource: 在运行过程中,不可避免的需要一些文件等其他东西,来辅助运行的东西
3、环境 environment: 在不同的环境上,可能需要不能配置等等。
以一个需要完成跑步为例子,要完成这次跑不的动作,我可能需要 1、穿上跑鞋(资源) 2、到达跑步地点(环境 要去哪里跑) 3、我要记录下我跑了多远(上下文)