随着AIGC技术日新月异的发展,LLM应用也在持续迭代,检索增强生成(RAG)系统已经成为企业知识库、智能客服、电商导购等场景的核心环节。阿里云OpenSearch-LLM智能问答版联合数据集成Data Integration产品,帮助企业和开发者实现分钟级构建专属RAG系统。本教程介绍如何通过云上数据库一站式构建RAG系统。
方案概览
OpenSearch-LLM智能问答版:OpenSearch-LLM智能问答版内置数据解析与处理、切片、向量化、文本&向量检索、多模态LLM等模型和功能,提供一站式开箱即用的RAG产品,快速构建包含问答、对话、文档链接、参考图片在内的多模态对话式搜索服务,帮助企业和开发者快速搭建专属RAG系统。
数据集成 Data Integration:数据集成 Data Integration是阿里云对外提供的安全、低成本、稳定高效、弹性伸缩的数据同步平台,属于DataWorks的核心能力之一,致力于提供复杂网络环境下、丰富的异构数据源之间高速稳定的数据移动及同步能力。
如果您在数据集成 Data Integration支持的数据源(例如Elasticsearch)上曾经搭建过一个知识库,那么您可以通过Data Integration将数据同步到OpenSearch-LLM智能问答版,快速搭建起一个RAG系统。
通过云上数据库一站式构建RAG系统,只需3步:
创建实例:我们首先分别创建OpenSearch-LLM智能问答版实例、以及数据集成Data Integration实例。
配置数据同步任务:然后我们在数据集成控制台配置数据同步任务,将数据源数据同步到OpenSearch。
问答测试:最后我们登录OpenSearch-LLM智能问答版控制台对这个RAG系统进行问答效果测试。
除使用Data Integration同步已有的数据源外,OpenSearch还支持通过控制台或API/SDK导入数据,实现全量数据导入与实时数据更新。具体请参考:企业知识库问答、PushKnowledgeDocuments-文档推送。
创建实例
创建OpenSearch-LLM智能问答版实例:进入OpenSearch LLM智能问答版售卖页,按需求购买实例。
创建数据集成Data Integration实例:进入数据集成Data Integration售卖页,按需求购买实例,可选择独享资源或通用资源。
重要请务必保证OpenSearch-LLM智能问答版实例和数据集成Data Integration实例在同一地域。
登录DataWorks控制台,创建DataWorks工作空间,并将已购买的资源组绑定至当前工作空间。
单击创建工作空间按钮:
进行资源组配置:
配置数据同步任务
在DataWorks工作空间列表界面,选择操作栏下选择快速进入->数据集成进入数据集成控制台,在创建同步任务中选择来源和去向后单击开始创建。
来源选择当前数据存储的云上数据库(本文以Elasticsearch为例)。
去向选择OpenSearch。
设置新任务名称,同步类型选择单表离线,然后跳转到Datastudio进行配置。
新建节点,节点类型选择离线同步,按需选择节点路径并点击确认。
选择数据源、数据集成资源组。
按页面要求填写云上数据源,并完成连通性测试(如果未连通则按页面配置完成相应参数调整)。
单击下一步,完成数据去向配置。
Elasticsearch数据源同步OpenSearch实例参考配置代码:
{ "transform": false, "type": "job", "version": "2.0", "steps": [ { "stepType": "elasticsearch", "parameter": { "search": { "match": { "_type": "_doc" //Elasticsearch中的数据查询条件 } }, "datasource": "test", //DataWorks中配置的数据源名称 "retryCount": 30, "readTimeOut": "600000", "scroll": "1m", "column": [ //需要同步至OpenSearch中的原始字段,建议包含id、标题、内容等RAG系统常用字段 "id", "title", "content" ], "index": "product_info", //Elastisearch中的表名 "pageSize": "100", "type": "default", "connTimeOut": "600000", "retrySleepTime": "10000" }, "name": "Reader", "category": "reader" }, { "stepType": "opensearch", "parameter": { "accessId": "", //云账号accessId "endpoint": "http://opensearch.cn-shanghai.aliyuncs.com", //OpenSearch上海区域Endpoint "accessKey": "", //云账号accessKey "indexName": "data_es", //OpenSearch实例名称 "host": "http://opensearch-cn-shanghai.aliyuncs.com", //OpenSearch上海区域host "column": [ //同步至OpenSearch的目标字段,OpenSearch主表结构可参考控制台或产品文档 "id", "title", "content" ], "writeMode": "add", "batchSize": "10", "skipDirtyRecord": "true", "ignoreWriteError": "false", "table": "main" }, "name": "Writer", "category": "writer" }, { "copies": 1, "parameter": { "nodes": [], "edges": [], "groups": [], "version": "2.0" }, "name": "Processor", "category": "processor" } ], "setting": { "errorLimit": { "record": "0" }, "locale": "zh", "speed": { "throttle": false, "concurrent": 2 } }, "order": { "hops": [ { "from": "Reader", "to": "Writer" } ] } }
配置完成后,单击运行,即可开启离线数据同步任务。
说明运行前请先删除代码注释。
问答测试
登录OpenSearch-LLM智能问答版控制台,单击操作栏下的管理按钮进入实例详情界面,在左侧导航栏选择配置中心->数据配置,可查看已导入的文档。
在左侧导航栏选择问答测试,即可调整问答参数并测试问答效果。
效果预览
OpenSearch-LLM智能问答版支持pdf、doc、html、ppt等丰富形式的非结构化数据,和excel、json等结构化数据,还能支持对于图片等多模态内容的理解,可方便快捷的构建智能问答、对话式搜索系统。
总结
至此,您已完成了云上数据源的数据同步以及RAG系统的搭建,后续只要将OpenSearch相应的接口接入到业务中,就可以支持企业知识库、智能文档、电商导购、教育问答等多种多样的场景。
了解更多LLM智能问答版内容,可参考:https://www.aliyun.com/activity/bigdata/opensearch/llmsearch
如有其它关于RAG系统或数据构建的相关问题,欢迎加入OpenSearch-LLM智能问答版钉钉支持群,了解更多技术细节和使用详情。