云端问道12期实操教学-构建基于Elasticsearch的企业级AI搜索应用

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 本文介绍了构建基于Elasticsearch的企业级AI搜索应用,涵盖了从传统关键词匹配到对话式问答的搜索形态演变。阿里云的AI搜索产品依托自研和开源(如Elasticsearch)引擎,提供高性能检索服务,支持千亿级数据毫秒响应。文章重点描述了AI搜索的三个核心关键点:精准结果、语义理解、高性能引擎,并展示了架构升级和典型应用场景,包括智能问答、电商导购、多模态图书及商品搜索等。通过实验部分,详细演示了如何使用阿里云ES搭建AI语义搜索Demo,涵盖模型创建、Pipeline配置、数据写入与检索测试等步骤,同时介绍了相关的计费模式。

构建基于 Elasticsearch 的企业级 AI 搜索应用  

 

摘要:本文整理自阿里云搜索产品专家牛俊(南也)在云端问道 12 期实操教学关于构建基于 Elasticsearch 的企业级 AI 搜索应用的分享。

 

接下来开始关于动手实验环节的介绍,在上个环节,详细的解析 AI搜索中比较典型的 RAG 场景全链路的技术栈,以及包括每个技术的详细目前的解析,这个环节会从场景的角度出发,介绍阿里云 AI 搜索,动手搭建一套 AI 语义搜索的方案。


一、简单搜索形态

image.png

首先看简单搜索的形态,最左边的图是日常比较常见搜索的形态,通过搜索的输入框可以输入对应的关键词,和底层的数据库里面相关的信息进行匹配和检索,得到符合需求的商品内容,或者是相关知识的数据,输入对应的 Query,得到最后结果的过程是搜索的过程,也是目前应用最多搜索的形态,随着大语言模型的爆发以及技术的增长,以及爆发式的技术发展之后,看右边的结构是目前以及今后可能的一种新的搜索的产品形态,可以咨询相关的问题,用对话式的问答的方式呈现整个搜索的结果,包括得到符合预期的答案。搜索形态的变化不仅是整个产品交互的变化,它背后也是技术的重大升级,左边的图需要输入对应的关键词,一般使用像淘宝类的搜索产品的时候,会通过堆砌对应的关键词得到符合预期的商品的数据,这个过程中人类再去匹配机器的语言,让底层的检索引擎能够识别输入的关键词,从而得到符合预期的结果,可以看右边的结果,输入 Query,它可以是相对比较口语化的信息,它也不一定是关键词的堆砌。对于搜索 Query 的要求也不是非常的高,背后的底层逻辑是让机器理解人类的语言,能够解析出实际的诉求,从而得到符合预期的结果,过程是技术的重大突破,后续是可以用机器或者是用大语言的模型理解人类的语言,包括人类的意图,这里是搜索形态的升级,搜索的内容目前最常见的是对于文本的信息的检索,在后期会越来越多的逐渐开始接触到多模态的搜索,比如通过图片、音频或者是视频信息,做相关的检索以及互动,整个搜索的形态会非常的丰富,对于技术的要求也比较高。


二、搜索核心关键点

image.png

了解搜索的整个形态之后,看搜索最核心的关键点有什么。首先是最核心的,能够拿到最精准的结果是搜索的本质,如何通过搜索的内容获得最终符合预期的目标的结果,随着机器学习,或者是大语言模型的技术,爆发式的增长以及技术的发展,可以更好的理解用户输入  Query 的内容,智能理解的部分也越来越重要,理解用户的意图,找到符合预期的信息,也是搜索比较核心的关键,这样可以让搜索的整个过程更加智能化。不论搜索形态是传统的搜索框,还是对话式的搜索,对于语义的理解,包括智能化的搜索,这部分都是必不可少。最后一步也是最基础的,在搜索的架构下,需要比较高性能的搜索引擎的服务,可以让整个搜索的体验更加平滑有趣,这是目前搜索最核心的三个关键点。


三、阿里云搜索产品架构升级

image.png

基于这三个关键点,在阿里云的 AI 搜索产品也做架构的升级,阿里云 AI 搜索依托于自研的搜索引擎以及开源的 Elastic Search 引擎,可以提供高性能的检索的服务,阿里云 AI 搜索是从零八年开始,从阿里集团内部孵化而来,可以支持千亿级别的数据,毫秒级响应,这款是自研的搜索引擎,在一八年和 Elastic Search 做战略的合作,在今年做战略的升级,发布企业版的 Elastic Search,后续会全面的应用企业级的产品的能力,在检索引擎的基础之上,也孵化出非常多的智能搜索的组件化的服务,如何提升语义理解的能力,中间的微服务层里面就包括 RAG 全链路的组件化的能力,它可能包括离线的数据的解析,向量化以及在线查询的时候如何理解用户的意图,包括问题的补充拓展,这一系列的模型都会在 AI 搜索开放平台里面做组件化能力的突出,可以比较灵活的做能力的调用,结合 AI 搜索开放平台和高性能的检索引擎,也发布六款产品化的垂直场景的具体的产品,第一是开箱即用的比较成熟的智能问答的 RAG 产品,上传对应的数据知识库的非结构化的文档数据之后,就可以进行右边看到的对话式的问答,第二个是企业级的 ES 的整体的通用检索分析服务,以及在日志场景下的 Serverless 服务,还有在智能的语义理解的场景下,比如电商内容,或者是其他的垂直领域,如何提升智能搜索的效果,也推出行业的算法版本,比较底层的是销量检索和图检索的版本,以上是 AI 搜索产品整体的大图。


四、阿里云ai搜索方案

image.png

接下来基于阿里云 Elasticsearch 的整体 AI 搜索的方案,下面是关于 RAG 全链路的链路图,可以基于 ES 的 Influence API 和 AI 搜索开放平台的模型服务搭建语音搜索或者是 RAG 的整个链路框架,主要分成两个链路。在数据写入的阶段,可以对知识库的文档进行相关的解析理解,同时对它进行相关的切分,调用对应的模型做向量化,在阿里云 ES 中构建对应的索引,进行混合的检索,在线查询阶段,可以对用户输入的问题进行意图的识别,从而进行对应的向量化,和已经构建的索引库的数据进行混合的检索,将检索到的 Top  内容,可以再次利用语义的重排模型进行二次的重排,获取到最 Top  的内容,可以组成 Prompt 在调用最终的大模型生成用户所需要的答案,在过程中,也透出 RAG 的测评的服务可以对整体的结果进行整体的测评,了解大概的效果,是 AI 搜索整体在 RAG 场景下的全链路的流程,再简单看阿里云 ES 的 AI 搜索的典型的应用场景,在内容和企业知识库的对应的场景,需要有大量的内容数据,包括可能会有比较复杂的权限的隔离数据,可以用传统的搜索增强语义的理解,增强搜索效果,也可以只用对话式搜索助手的形式提供对应的交互。在电商的售前,售后,导购环节,是比较典型的应用场景,包括教育、搜题,或者是其他更加垂直的搜索的场景,应用都非常广。


五、电商导购demo

image.png

接下来看电商导购的 Demo,这里是用商品的数据作为底层的数据库进行相关的检索。问题是想购买女士的领带,可以看到基于下面的商品内容,给出对应的答复,接着追问这款型号的领带是否支持机洗,这里也基于实际上的商品相关的信息给出对应的答复,再次让推荐对应的大衣,也给出两款大衣的推荐。最后问题是给出身高和体重的信息,让助手推荐对应的尺码,看最终的结果。根据用户提供的信息给出对应尺码的建议,是比较典型的简单的电商导购的 Demo 过程,用电商相关的描述的商品信息作为底层的数据库,对商品的信息进行解析、切分,以及向量化的处理,进行混合的检索。最终的答案是结合大语言模型给出的回复,对应的参考链接是检索到相关的商品的信息。


六、多模态图书

image.png

接下来多模态图书的 Case,在 Case 里面上传的数据是纯图片的信息,只有书籍的封面的图片。这个场景下首先需要对上传的封面图片进行理解和内容的解析,将解析到的信息,构建对应的索引,做混合检索。当咨询对应的问题适合儿童的图书之后,对已经解析后的知识进行总结和回复,同时也可以给出比较相关的封面的图片。


七、电商多模态

image.png

接下来是电商多模态的场景,相比于电商的导购的 Demo,增加商品的图片数据,除已有的商品相关的描述信息之外,也可以把图片的信息作为一种知识库的数据,也同时存到的数据库里面进行解析,之后参与到对应的检索里面,就可以做到电商多模态的形式呈现。


八、实验

1.实验的具体链路上

image.png

本次实验以电商的场景为例,做一套 AI 语义搜索的 Demo,在场景里面上传对应的商品数据后,会对它进行简单的切分,构建稠密和稀疏向量,最后用阿里云的 ES 构建对应的索引,在线查询的时候,用户输入问题,也会用相同的向量化的服务给它转成向量,进行混合的检索,从而得到 Top 的问题,整个简单的过程,应用到对应的模型服务以及在线和离线处理的整个链路,在过程中,第一步需要开通阿里云 ES 的实例,需要开通 8.13 及以上的版本,同时在上海的区域需要开通搜索开放平台的服务,第二步是做基础的配置,比如 ES的 IP 的白名单,或者搜索开放工作台的健全相关的信息,第三步是使用 Es 的 Inference Api 创建所需要的一系列模型,第四步是配置语义的 Pipeline,Pipeline 是将切分和向量化组装在一起,当用户导入对应的数据,可以依托 Pipeline 自动做数据的处理,从而把处理好的数据写入对应的索引结构里面。第五步是整个索引的构建,数据的写入,以及对应的查询测试的过程,这是整个实验的链路过程。

2.实验demo

image.png

接下来看整个实验的 Demo,这里需要设置访问的白名单,添加需要访问的 IP 地址,接着再进入到 Kibana 中,进入开发工具,搭建 AI 语义搜索的链路主要有三个环节。第一步,在阿里云 ES 中使用 Inference API 创建模型。Influence API 是 ES 8.13 版本提供的能力,可以用于调用各类推理模型服务。阿里云 ES 已经集成搜索开发工作台,可以直接通过 Influence API 使用阿里云 AI 模型服务,搜索开发工作台是阿里云提供的搜索组件化服务平台,需要提前开通服务并获取配置信息。进入搜索开发工作台,因为已经提前开通服务,所以没有开通的入口,开通服务不需要付费,后续调用服务的时候按量付费。

这里是搜索开发工作台的服务广场,提供九类模型服务。可以根据实际的需要选择对应的服务。点击查看详情,可以看到这里面有多款可以选择的模型服务,如果需要对模型进行的简单的测试体验,可以进入体验中心,比如选择切片服务,体验数据获取结果,在右边就可以得到切片后的内容,使用搜索开发工作台的能力需要三个配置信息。第一是空间的名称,开通服务后默认有 Default 空间,第二个需要 API-KEY 用于服务的健全,可以在这里创建 API-KEY,第三个信息是访问域名,可以直接在这里复制对应的域名。

获取到这三个信息之后,可以继续进入 K8 的页面,在 ES 中已经创建切片模型,这里的配置信息从搜索开发工作台中获取,这里的零一模型。为方便演示,将切片的长度设置为 30,实际的长度与后续的链路限制有关,执行,这是稠密向量模型,零一的向量模型是一款最大输入长度为 300,输出稀疏为 1536 维的多语言模型,下面是一款稀疏向量模型,这款模型也是多语言模型,最大的输入长度是  8192,完成这三个模型的注册后,接下来做调试,在这里可以获取要输入内容的稠密向量,可以获取到输入内容的稀疏向量,对应的 Token ID 以及对应的权重。对模型可以将内容进行切分,在最大的长度线之内尽可能的保证语义的完整性。切分后的内容相对来都比较完整。第二步是配置 AI 语义搜索的 Pipeline 中包含文档的切片以及生成稠密向量,稀疏向量的过程,可以通过提前定义好的 Pipeline  写入数据,在这里执行。可以看到通过调用切片模型,将内容切分为Trunk ,将 Trunk 的内容生成稠密向量以及稀疏向量,完成 Pipeline 设置之后,来测试,执行之后,可以看到包含对应的稠密向量以及稀疏向量,这里是切封后的 Trunk 的信息,后面每个 Trunk 都会有对应的稀疏向量和稠密向量的信息。

第三步是数据的写入和检索的流程。首先进行索引的创建,这里的Mapping 结构包含文本的内容以及文本切分后的 Trunk 内容,包含文本稀疏向量以及稠密向量三个部分。接下来写入数据,最后做查询的测试。这里使用混合检索,这里包含三个部分,第一是对 Query 进行全文的检索,第二个是将 Query 转化为稀疏向量,进行稀疏向量检索。第三个部分是将 Query 转化为稠密向量,进行稠密向量检索,再使用融合排序召回 Top10 的内容。看对应的结果,最相关的内容排序在最靠上,在这里修改 Query 再测试。看到排序靠前的内容是更相关的内容,简单的 AI 语音搜索链路搭建好。Case 就演示到这里。

在用混合检索和单路的检索对比的效果过程中,可以用很多个性化的  Query 做测试,在典型场景下差异比较大,但上面有的 Case ,因为对应的数据里面也包含,所以暂时不是特别明显,但对于语义理解要求比较高场景下,它的差异性还是比较大。

最后是整个实验产品的计费的情况。阿里云 ES 目前支持包月、包年、包月和按量计费的计费的方式。它的计费项是按照具体的实例的规格和对应的节点数,以及存储的节点做计费。比如需要购买几核几 G 的对应资源,包括多少 G 的数据的存储的节点,目前起步的价格,包年,包月大概是 341,是开发测试型的机器的规格,大概是起步的价格,如果释放对应的实例,就可以在创建好的实例里面,点击释放实例就可以删除实例,删除之后对应的实例也不会做相关的计费。

搜索开放工作台的开通免费,只有调用模型之后才会付费,没有调用,即便开通的也没有任何的费用。目前产品前 100 次的调用免费,这里列和本次实验相关的费用为例,比如现在大多数的模型都按照Token 做相关的计费。文档切分的模型 1000 Tokens 大概是 0.05,一块钱大概有 200 个前 Tokens 的相关数据处理,这是整个模型相关的费用,如果做搜索平台的资源释放,日常不调用没有付费,如果担心其他人做相关的调用,或者担心在哪些地方调用不知道如何处理,可以删除掉刚刚在平台里面创建的 API-KEY 信息,所有的调用包括鉴权都是基于 API-KEY ,删除 API-KEY 之后,所有的调用就会终止,计费也会终止。如果自定义自己的工作空间,刚刚默认创建的是 Default 空间,如果有自己自定义空间,后续不需要使用,可以删除掉整个空间,它里面所有的 API-KEY 也会相关的进行关联的删除。

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
打赏
0
5
4
0
1025
分享
相关文章
Lindorm作为AI搜索基础设施,助力Kimi智能助手升级搜索体验
月之暗面旗下的Kimi智能助手在PC网页、手机APP、小程序等全平台的月度活跃用户已超过3600万。Kimi发布一年多以来不断进化,在搜索场景推出的探索版引入了搜索意图增强、信源分析和链式思考等三大推理能力,可以帮助用户解决更复杂的搜索、调研问题。Lindorm作为一站式数据平台,覆盖数据处理全链路,集成了离线批处理、在线分析、AI推理、融合检索(正排、倒排、全文、向量......)等多项服务,支持Kimi快速构建AI搜索基础设施,显著提升检索效果,并有效应对业务快速发展带来的数据规模膨胀和成本增长。
Archon – 开源 AI 智能体框架,自主生成代码构建 AI 智能体
Archon 是一个开源的 AI 智能体框架,能够自主生成代码并优化智能体性能,支持多智能体协作、领域知识集成和文档爬取等功能,适用于企业、教育、智能家居等多个领域。
92 10
Archon – 开源 AI 智能体框架,自主生成代码构建 AI 智能体
容器化AI模型的安全防护:构建可信的AI服务
在AI模型广泛应用的背景下,容器化AI模型的安全防护至关重要。主要安全威胁包括数据窃取、模型窃取、对抗样本攻击和模型后门攻击等。为应对这些威胁,需采取多层次防护措施:容器安全(如使用可信镜像、限制权限)、模型安全(如加密、水印)、数据安全(如加密、脱敏)和推理安全(如输入验证、异常检测)。此外,利用开源工具如Anchore Engine、Falco和ART等,可进一步加强防护。遵循安全开发生命周期、最小权限原则和深度防御等最佳实践,确保AI服务的安全性和可信度。
PySpur:零代码构建AI工作流!开源可视化拖拽平台,支持多模态与RAG技术
PySpur 是一款开源的轻量级可视化 AI 智能体工作流构建器,支持拖拽式界面,帮助用户快速构建、测试和迭代 AI 工作流,无需编写复杂代码。它支持多模态数据处理、RAG 技术、文件上传、结构化输出等功能,适合非技术背景的用户和开发者快速上手。
152 5
容器化机器学习流水线:构建可复用的AI工作流
本文介绍了如何构建容器化的机器学习流水线,以提高AI模型开发和部署的效率与可重复性。首先,我们探讨了机器学习流水线的概念及其优势,包括自动化任务、确保一致性、简化协作和实现CI/CD。接着,详细说明了使用Kubeflow Pipelines在Kubernetes上构建流水线的步骤,涵盖安装、定义流水线、构建组件镜像及上传运行。容器化流水线不仅提升了环境一致性和可移植性,还通过资源隔离和扩展性支持更大规模的数据处理。
Dify与DeepSeek的深度融合——构建您的专属AI助手
在当今数据驱动、AI为王的时代,Dify与DeepSeek作为领先的AI开发工具和大模型引擎,为企业和个人提供高效智能的解决方案。Dify是面向AI应用开发的低代码平台,集成预训练模型、可视化界面和无缝部署功能;DeepSeek则是高性能、低成本的开源大语言模型,具备多轮推理能力。两者结合并通过私有化部署,确保数据安全与合规,极大提升开发效率和业务生产力。阿里云计算巢提供了两者的私有化部署方案,帮助用户快速搭建专属AI应用。
金鸡电影节创投大会AI短片《天线》:构建基于现实世界的想象空间
金鸡电影节创投大会AI短片《天线》:构建基于现实世界的想象空间
Lindorm作为AI搜索基础设施,助力Kimi智能助手升级搜索体验
Lindorm作为AI搜索基础设施,助力Kimi智能助手升级搜索体验
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
129 5
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
这篇文章是关于Elasticsearch的学习指南,包括了解Elasticsearch、版本对应、安装运行Elasticsearch和Kibana、安装head插件和elasticsearch-ik分词器的步骤。
477 0
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等