这两年随着 LLM 的迅猛发展,Claude 为代表的大模型在各项评测中都获得了较好的成绩,为人工智能的发展注入了强有力的生命力。可以想象,现在和未来, AI 会渗透到各个领域,提升各个领域的运行效率,达到企业降本增效的目的。并且我们也可以想象在未来的应用中,传统的人机交互模式,有可能会被 AI 所取代。
本文将会以传统业务系统非常普遍的数据匹配检索为例,深入剖析如何利用 Claude 的强大语义分析能力,改变传统应用的交互模式并快速实现搜索性能的优化。
传统业务系统中业务对象搜索的问题和挑战
上图展示了一个非常传统的查询页面,有查询条件选择,例如省份、城市,机构类型,地址,名称等等,用户可以选择或输入具体要查询的条件,后台会根据条件,组合成 SQL 到业务库中查询,并返回结果。
传统搜索系统的问题在于:
- 用户的使用门槛较高,必须了解系统提供的查询的每个条件的含义,还需要了解不同条件的组合方式。结构化的查询,无法适应自然语言的模式,也很难贴近人的自然想法,例如查询上海徐汇区有哪些三甲医院,传统查询模式,你必须要分解成多个不同的条件:省市,区域、机构类型、机构级别等。显然用户必须要熟悉和符合业务系统要求,非常不方便。
- 很难适应业务变化,当业务对象发生变化的时候,需要增加和修改条件,就必然导致整个 UI 的变化和修改,开发成本上升。
- 传统搜索算法,无法通过语义层面进行分析和理解,导致匹配和搜索效果不佳,例如 系统记录里有一家北京 306 医院,如果用户输入三零六可能就无法匹配到这家医院,从而无法查询到结果。再例如:系统记录里有一家虹桥医院,如果用户输入拼音 hongqiao hospital,传统系统也无法应对这种查询。甚至有时候多几个空格也会导致搜索结果出错。
因此,本方案尝试使用大模型的语义理解和分析能力,来对传统搜索系统的上述劣势进行优化。
解决方案
本方案利用 Claude 来增强传统的机构匹配能力,以更贴近自然语言方式来实现业务数据的智能匹配,整个方案如下图所示:
该方案主要分 2 部分:
- 意图识别:利用 Claude 的语义分析能力,对用户输入的信息进行意图识别,并利用格式化的方式进行输出,做进一步的意图拆分处理。
- 意图识别后的匹配处理,目前将意图分为两大类:一类是单纯通过名称检索机构信息,一类是通过省市,区域,地址,机构类型等方式检索机构信息。匹配的处理逻辑也会分为两种,一种是传统 RAG 模式进行检索,另一种是通过 Text2SQL 进行检索。
该方案的优点:
- 通过自然语言进行检索和匹配,降低了用户的使用门槛,体验更好。
- 降低业务数据变更的复杂度,只需要适当的修改 Prompt 就可以适配新的业务对象。
- 匹配能力大大提高,能够完成传统方式很难达到的匹配效果。
基于 AWS 的解决方案架构:
该架构的优点是,充分利用云原生服务,提供高可用的架构,节省构建成本和后期运营成本,极大的提高了系统的可靠性和安全性。
Demo 样例和代码片段
1)多意图识别 PE
2)增强召回 PE
3)多意图识别智能搜索例子
以下为一些常见的搜索情形,在本方案中均得到了较好的解决。
3.1)单独进行机构名称搜索
3.2)搜索带属性的机构列表
3.3)拼音中英文混合搜索