工行里的数字员工是怎么来的?( 三 )


意图配置
数字人提供页面支持用户配置意图 , 意图配置包括用户问题、槽位、词典、服务实现、自动回复等模块 。 用户在配置带槽位的问题时 , 需要为各个槽位设置对应的词典和追问问题 , 并通过设置服务信息来完成意图与服务的映射 。 当发生对话时 , 数字人工程通过意图识别模型判断用户意图 , 通过实体抽取模型提取任务关键词补齐槽位信息 , 根据配置好的意图和服务映射完成服务的调用 , 并将处理结果以可视化的形式呈现给用户 。
数据可视化
数字人的前端工程封装了表单、卡片容器组件;同时 , 引入ECharts组件 , 配合ECharts定制和数据转化适配工具 , 支持将查询返回的数据结果以图表、折线、波浪、扇形等直观的形式展示 。 数字人支持自定义配置数据服务与展示组件的绑定关系 , 为用户提供灵活多样的数据可视化能力(见图6) 。
工行里的数字员工是怎么来的?
文章图片
图6数据可视化
服务热插拔
数字人底座能力基于Java服务动态扩展机制(DubboSPI)编写 , SPI(ServiceProviderInterface)本质是将接口实现类的全限定名配置在文件中 , 并由服务加载器读取配置文件来加载实现类 , 这样可以在运行时动态为接口替换实现类 。
在Java中 , SPI是被用来给服务提供商做插件使用、基于策略模式来实现动态加载的机制 。 我们在程序中只定义一个接口 , 具体的实现交给不同的服务提供者;程序在启动的时候 , 通过读取配置文件来确定要调用哪一个服务提供者 。 同时 , Dubbo重新实现了一套功能更强的SPI机制,支持AOP(AspectOrientProgramming)与依赖注入 , 并且利用缓存提高加载实现类的性能 , 支持实现类的灵活获取 。 基于SPI的能力 , 接入方可自行替换基础能力 , 并整合存量功能组件形成新业务能力 。
(1)基础能力热插拔替换 。 以意图识别组件为例 , 意图识别组件本身为基础组件之一 , 接入方可根据框架规定的边界开发全新的意图识别组件进行基础能力替换;同时意图识别组件内部可分为意图获取、多意图处理、意图扩展等二级组件 , 接入方亦可只针对二级组件进行功能替换 。
(2)功能服务整合 。 接入方可基于数字人整合存量业务服务 , 深度定制开发细分专业方向上的数字人 , 比如财报分析、产品体验、安全顾问、审批监督等数字人 。
微前端+微服务
为了多渠道触达用户 , 兼容各业务系统和平台 , 数字人交互工程采用“微前端+微服务”模式进行开发 , 并对人机对话的基础功能进行解耦和瘦身 , 支持云原生部署 。
微前端借鉴了微服务的架构理念 , 将一个庞大的前端应用拆分为多个独立灵活的小型应用 , 每个应用都可以独立开发、独立运行、独立部署 , 再将这些小型应用联合为一个完整的应用 。 数字人基于iframe隔离的微前端方案 , 通过窗口变量与主系统完成数据交互来保证子应用的正确加载、执行和更新 。 通过微前端技术 , 数字人既可以与业务应用融合为一 , 又可以减少应用之间的耦合 。
数字人微前端工程主要开展两方面工作:一方面 , 工程内底层处理逻辑封装为npm依赖(例如iframe集成与微前端子工程加载等功能) , 并实现插件依赖自动注册 , 降低工程代码复杂度;另一方面 , router、store等公共文件与功能代码分离 , 实现功能代码之间完全解耦 , 将公共文件中涉及功能代码的部分抽取后放置在各功能文件夹内部 , 收敛开发区域 , 方便移植和增删功能代码 。
数字人的后端工程基于微服务架构搭建 , 主要包括会话管理、意图识别、智能问答与智能检索、能力分发、任务管理、辅助能力(邮件发送、短信发送、持久化存储等)等多个功能组件 。 通过对功能组件进行画像 , 确定边界、输入输出 , 统一交互总线 。 在工程框架层面 , 在接入层核心组件设计时进行设计模式抽象 , 再针对各基础能力组件进行第二层的松耦合设计 , 将技术代码和业务能力代码分层 。 接入方只需针对业务需求编写微服务 , 通过意图配置挂接服务 , 即可扩展数字人的业务处理能力 。 同时 , 数字人自身也可以通过微服务的方式接入业务系统 , 实现无侵入式引入 。