阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

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

作者: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:003661

评论

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

常用的echo和cat,这次让我折在了特殊字符丢失问题上

华为云开发者联盟

Linux cat echo 特殊字符 定向

大数据开发之Hive如何提高查询效率

@零度

大数据 hive

从人工到智能!百度AI开发者大会分论坛,探寻国球乒乓背后的AI之路

百度大脑

人工智能

Linux之find exec

入门小站

这几个IDE是Node.js 开发人员需要知道的

@零度

node.js 前端开发

Greenplum内核源码分析-分布式事务(一)

王凤刚(ginobiliwang)

源码分析 分布式事务 greenplum

一文解析Apache Avro数据

华为云开发者联盟

序列化 flink sql Apache Avro 反序列 Avro

TDSQL PostgreSQL如何快速定位阻塞SQL

腾讯云数据库

tdsql 国产数据库

取代Maven?maven-mvnd持续霸榜 GitHub Trending,性能提升300%

沉默王二

maven

Greenplum内核源码分析-分布式事务(三)

王凤刚(ginobiliwang)

源码分析 分布式事务 greenplum

区块链赋能生猪养殖,让“猪”事有迹可循

CECBC

一个cpp协程库的前世今生(二)协程切换的原理

SkyFire

c++ 协程 cocpp

尚硅谷喜获央广网2021年度公信力教育品牌

@零度

强强联袂!腾讯云TDSQL与国双战略签约,锚定国产数据库巨大市场

腾讯云数据库

tdsql 国产数据库

【签约计划第二季】百位签约创作者名单公布

InfoQ写作社区官方

签约计划第二季 热门活动

链计算、新基建:区块链助力数字经济新生态

CECBC

Greenplum内核源码分析-分布式事务(二)

王凤刚(ginobiliwang)

源码分析 分布式事务 greenplum

☕【难点攻克技术系列】「海量数据计算系列」如何使用BitMap在海量数据中对相应的进行去重、查找和排序

洛神灬殇

BitMap bitmaps bitset 12月日更

MongoDB按需物化视图介绍

MongoDB中文社区

mongodb

旺链科技团建图鉴 | 认真工作,肆意生活~

旺链科技

区块链 企业文化 团建

java开发之SSM开发框架的快速理解

@零度

ssm JAVA开发

腾讯云TDSQL数据库信创演进与实践

腾讯云数据库

tdsql 国产数据库

WireShark好学吗?我来手把手教你学WireShark抓包及常用协议分析

学神来啦

网络安全 Wireshark 渗透测试 kali kali Linux

新年将至,惊喜来袭

浪潮云

云计算运维

强强联袂!腾讯云TDSQL与国双战略签约,锚定国产数据库巨大市场

腾讯云数据库

tdsql 国产数据库

消息队列存储消息数据设计

张靖

#架构实战营

forEach、map和for循环

编程江湖

大前端

在线JSON转Schema工具

入门小站

工具

性能工具之常见压力工具是否能模拟前端?

zuozewei

前端 浏览器 性能分析 测试工具 12月日更

Dubbo为什么要用Go重写?

捉虫大师

Go dubbo

Iog4j2漏洞相关技术分析

极光JIGUANG

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