NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

最小可行架构实践:构建家庭保险聊天机器人

作者:Kurt Bittner, Pierre Pureur

  • 2022-06-24
  • 本文字数:3518 字

    阅读完需:约 12 分钟

最小可行架构实践:构建家庭保险聊天机器人

我们的前一篇文章探讨了最小可行架构(Minimum Viable Architecture,MVA)的概念。本文将通过一个聊天机器人与传统保险系统(如保单管理系统)和企业外部数据源(重建成本、房屋估价数据)交互的虚构示例,探讨如何应用 MVA 概念,并回答房主可能针对他们的保单和保障范围提出的问题。为了便于说明问题,我们将集中讨论与住宅重置成本有关的问题。

使用 MVA 方法实现一个聊天机器人

 

我们之所以选择了聊天机器人作为示例,是因为它有一个简单的用户界面,把与数据完整性、并发性、延迟和响应性相关的复杂问题隐藏掉了。聊天机器人是一种软件服务,它可以通过文本或文本到语音的方式提供在线聊天对话,从而替代真人。

 

它很适合被用在许多软件系统中,如保险公司使用的家庭保险系统。受火灾等自然灾害的影响,保险公司和保险公司的家庭保险专家经常会接到大量来自客户的电话和咨询电子邮件。受自然灾害影响的房主希望他们的问题能得到及时回答,但因为电话数量太多,中介不能及时回答房主的紧急问题。在正常时期,房主通常会有一些简单但不紧急的问题,他们想问这些问题,但又不想麻烦中介。聊天机器人可以提供更及时的信息,从而提高客户满意度,同时让代理腾出时间处理更复杂的任务。

初始 MVA:一个简单的基于菜单的聊天机器人

 

创建 MVA 的第一步是选择聊天机器人的工作方式,这足以实现最小可行产品(MVP)。在我们的例子中,MVP 仅具备能够实现我们为其设定的产品目标的最小功能。如果没有人想使用它,或者它不能满足客户的需求,我们就不会继续开发它。因此,我们打算向有限的用户群发布 MVP,采用了简单的基于菜单的界面,并假设因访问外部数据源收集数据可能产生的延迟是客户可以接受的。我们希望避免超出我们试图要解决的问题的需求——包括功能性需求和质量属性需求(QAR)。这将产生如下所示的初始设计。如果我们的 MVP 被证明是有价值的,我们将增加它的功能,并在随后的步骤中逐步构建它的架构。MVP 是产品开发战略的一个有用的组成部分,与原型不同,MVP 最终不会被“扔掉”。

 

我们可以用可重用的开源框架(如RASA)来实现一系列客户服务聊天机器人,从简单的基于菜单的机器人到使用自然语言理解(Natural Language Understanding,NLU)的高级机器人。借助这个框架,最初的 MVA 设计实现了基于菜单的单用途聊天机器人,它能够处理简单的咨询业务。这个简单的聊天机器人在智能手机、平板电脑、笔记本电脑或台式电脑上向用户提供一个简单的选择列表。其结构如下图所示:



聊天机器人与以下这些后台服务发生交互:

 

  • 投保范围:这项服务是保险公司的内部服务,提供了 API 访问,预计存在低至中等的延迟。

  • 重建成本:这项服务在保险公司外部,提供了 API 访问,延迟是未知的。

  • 房屋评估:这项服务也在保险公司外部,也提供了 API 访问,延迟也是未知的。

 

正如我们在前一篇文章中所描述的,在开始 MVA 时,我们针对解决方案做出了一系列基本的选择,并使用一个简单的检查清单来确保我们做出了合适的架构决策。我们的清单包括以下这些项:

 

  • 安全性——我们需要考虑 MVP 的安全性需求。用户需要授权才能访问聊天机器人检索的信息,因此,聊天机器人应该捕获用户凭据并将这些凭据传递给后端服务进行验证。

  • 监控——我们相信,每一个应用程序都应该提供基本的监控功能,用于监控性能并收集在初次发布期间可能遇到的潜在系统问题。

  • 平台——我们已经决定 MVP 将托管在商业云平台上。

  • 用户界面——我们认为,一个简单的基于菜单的界面对于 MVP 来说已经足够了,但可能需要根据最初用户的反馈进行调整。MVP UI 适用于智能手机、平板电脑、笔记本电脑和台式电脑。

  • 延迟和响应性——虽然我们不担心延迟和响应性,因为 MVP 的部署面向的是一个小用户群,但如果 MVP 获得成功,我们需要扩大它的用户基础。届时,延迟和响应性可能成为潜在的问题。延迟指标将作为基本监控功能的一部分。

 

以下内容并不是目前应该关注的问题,但随着用户群和使用量大幅增长,以后可能需要关注。

 

  • 并发性——目前不需要考虑,我们假设用户群不会变得太大。

  • 吞吐量——目前不需要考虑,因为目前需要处理的数据量非常小。

  • 可伸缩性——目前不需要考虑,但如果聊天机器人的用户基数显著扩大,这可能会成为一个问题。

  • 持久性——目前不需要考虑,因为聊天机器人需要存储的数据很少。

 

你可以将这个清单视为你的应用程序的一个合理的入手点,当然,你可能需要根据你遇到的技术问题调整或扩展它。

 

在 MVP 交付之后,用户似乎对产品的性能相对满意,但他们表示,基于菜单的界面太过局限。即使是 MVP 中使用的简单菜单也相当繁琐,增加菜单选项只会让用户体验进一步恶化,特别是在智能手机和平板电脑上。他们希望能够使用自然语言与聊天机器人进行更自然的交谈。

实现自然语言接口

 

MVP 使用的开源聊天机器人框架也支持自然语言理解,因此,我们将继续使用它来为聊天机器人添加 NLU,将简单的聊天机器人变成机器学习(ML)应用程序。

 

切换成 NLU 接口会改变聊天机器人的架构,如下图所示。训练数据的离线数据摄取和数据准备是两个非常重要的步骤,此外,还需要模型部署和模型性能监控。对语言识别准确性以及吞吐量和延迟的监控尤为重要。商业用户会使用一些“行业术语”,随着时间的推移,聊天机器人会更好地理解这些术语。

 


新架构包含了两个模型,它们需要在沙盒环境中进行训练,并部署到一组 IT 生成环境中。这两个模型可以看作是与用户提问有关的 NLU 模型,以及与聊天机器人的回答有关的对话管理模型。更具体地说,聊天机器人使用 NLU 模型来理解用户想要做什么,并使用管理模型来构建对话,让聊天机器人能够顺畅地回应问题。模型和它们所使用的数据都应该放在版本控制系统中。

处理后端服务的延迟

 

重建成本和房屋估价数据最初是由其他组织存储和维护的,保险公司可控的只有投保信息是。即使在使用量较低的情况下,当聊天机器人从两个外部数据服务收集必要的数据时,用户也可能会感受到延迟。我们应该在使用最初基于菜单的 UI 时对客户可接受延迟的假设进行测试。

 

如果因访问外部服务导致的延迟不受欢迎,就必须调整架构,在本地(或至少与投保数据位于相同的位置)缓存外部服务数据,并定期更新缓存数据。假设房屋估价和重建成本在短时间内不会发生太大变化,那么缓存这些数据似乎是一种合理的权衡。然而,我们也需要对这种假设进行测试,将延迟影响客户体验的成本与维护缓存一致性的成本进行对比,确定是否值得花费时间和精力在缓存上。此外,我们还应该经常复查 MVA 检查清单,确保在这个过程开始时所做的假设仍然有效,并且在 MVP 演变成为成熟产品的过程中,架构仍然是令人满意的。

结论

 

乍一看,聊天机器人似乎并不需要太多的架构考量,因为提供了大部分构建模块的框架比比皆是,开发应用程序似乎只需要训练一些 NLU 模型和集成一些现成的组件。但是,任何经历过构建聊天机器人的人都知道,正确使用聊天机器人应用程序并不容易,试错成本会极大地影响客户满意度。即使是像聊天机器人这样简单的应用程序也需要 MVP 和 MVA。

 

对于更复杂的应用,MVA 需要解决的问题将取决于 MVP 的目标。MVP 是从客户的角度来测试产品是否值得开发,而 MVA 则通常考虑的是向客户交付解决方案在技术和经济方面是否可行,并在其预期寿命内为解决方案提供支持。MVA 还必须超越 MVP,至少需要提供 MVP 成功之后解决问题的方案,以免成功的 MVP 导致组织无法承受长期的产品维持。

 

作者简介:

 

Kurt Bittner 拥有超过 30 年短周期交付软件的经验。他帮助过许多采用敏捷软件交付实践的组织,包括大型银行、保险、制造和零售企业,以及大型政府机构。他曾为大型软件交付企业工作,包括甲骨文、惠普、IBM 和微软,并曾是 Forrester Research 公司的技术行业分析师。他的重点领域是帮助组织建立强大、自组织、高性能的团队,为客户交付受欢迎的解决方案。他撰写了 4 本与软件开发相关的书,包括“The Nexus Framework for Scaling Scrum”。他现居科罗拉多州博尔德市,并担任 Scrum.org 的企业解决方案副总裁。

 

Pierre Pureur 是一位经验丰富的软件架构师,拥有丰富的创新和应用程序开发背景、广泛的金融服务行业经验、广泛的咨询经验和全面的技术基础设施知识。他曾担任一家大型金融服务公司的首席企业架构师,领导大型架构团队,管理大型并发应用程序开发项目,指导创新计划,以及制定战略和业务计划。他是“Continuous Architecture in Practice: Scalable Software Architecture in the Age of Agility and DevOps”(2021 出版)和“Continuous Architecture: Sustainable Architecture in an Agile and Cloud-Centric World”(2015 出版)的合著者,并发表了许多文章,以及在多个软件架构会议上发表相关演讲。

 

原文链接

Minimum Viable Architecture in Practice: Creating a Home Insurance Chatbot

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2022-06-24 08:003663

评论

发布
暂无评论
发现更多内容

Go 语言快速入门指南:Go 结构体

宇宙之一粟

Go 语言 结构体 1月月更

只有天空才是你的极限,我们热爱探索的过程并沉浸其中丨图数据库 TiMatch 团队访谈

PingCAP

设计模式【11】-- 搞定组合模式

秦怀杂货店

Java 组合模式

1月月更|推荐学java——Spring集成MyBatis

逆锋起笔

mybatis ssm Spring Framework spring aop spring+mybatis

SIG技术直播来了!技术专家教你,如何使用 iLogtail 采集可观测数据?

OpenAnolis小助手

Linux 开源 数据 直播 采集

Spring中部署Activiti流程定义的三种姿势

华为云开发者联盟

spring 工作流 Activiti流程 Activiti框架 Activiti Explorer

社区知识库|常见问答 FAQ 集合第 3 期:Topic 数量、Broker 设置等相关问题

Apache Pulsar

分布式 云原生 Apache Pulsar 开源社区 消息中间件

带你读AI论文丨RAID2020 Cyber Threat Intelligence Modeling GCN

华为云开发者联盟

网络威胁情报 CTI 异构信息网络 GCN HINTI

(1-15/15) 预训练模型+微调范式下如何做到文本数据安全

mtfelix

300天创作 2022Y300P

web技术分享| 白板SDK之函数和方程式的运用

anyRTC开发者

前端 音视频 视频会议 白板 web技术分享

鸿蒙开发初体验【鸿蒙01】

坚果

鸿蒙 1月月更

使用 google_breakpad 分析 Electron 崩溃日志文件

编程三昧

Electron 1月月更 google_breakpad

从零开发区块链应用(一)--golang配置文件管理工具viper

杰哥的技术杂货铺

golang 区块链

从零开发区块链应用(二)--mysql安装及数据库表的安装创建

杰哥的技术杂货铺

社区知识库|常见问答 FAQ 集合第 2 期:Topic 配置、ACK 等问题的解决

Apache Pulsar

架构 云原生 Apache Pulsar 开源社区 消息中间件

社区知识库|常见问答 FAQ 集合第 4 期:消息保留及延迟、Broker、Pulsar 权限等相关问题

Apache Pulsar

架构 云原生 开源社区 消息中间件 Apachepulsar

HTTP跨域小结

wong

nginx HTTP cros

博文推荐|Apache Pulsar: 统一消息流平台

Apache Pulsar

开源 云原生 broker Apache Pulsar 消息中间件

Spring的底层实现机制

编程江湖

Spring JPA

Form 表单在数栈的应用(下):深入篇

袋鼠云数栈

前端

谈A股投资策略--《香帅中国财富报告》摘录(5/100)

hackstoic

投资

从零开发区块链应用(三)--mysql初始化及gorm框架使用

杰哥的技术杂货铺

HarmonyOS工程【鸿蒙开发02】

坚果

鸿蒙开发 1月月更

模块 5 作业

miliving

ReactNative进阶(二十四):react-native-scrollable-tab-view 标签导航器组件详解

No Silver Bullet

1月月更 ReactNative 标签导航

Tcp网络模型

你?

低代码实现探索(二十四)业务的领域可视化构思

零道云-混合式低代码平台

Spring都在用的技术,你确定不过来看看?1️⃣

XiaoLin_Java

1月日更

从零开发区块链应用(四)--自定义业务错误信息

杰哥的技术杂货铺

博文推荐|深入解析Apache BookKeeper 系列:第一篇 — 架构原理

Apache Pulsar

开源 架构 云原生 中间件 Apache Pulsar

2022AJAX常见面试题分享

编程江湖

ajax

最小可行架构实践:构建家庭保险聊天机器人_语言 & 开发_InfoQ精选文章