从数据到智能:openGauss+openEuler Intelligence的RAG架构实战

06-01 1822阅读

随着人工智能和大规模语言模型技术的崛起,传统的搜索引擎由于其只能提供简单的关键字匹配结果,已经越来越无法满足用户对于复杂、多样化和上下文相关的知识检索需求。与此相对,RAG(Retrieval-Augmented Generation)技术既借鉴了传统搜索引擎的优势,又结合了先进的大语言模型和向量数据库技术,使其能够在复杂查询和自然语言交互中表现得更为智能。这种增强生成技术在很多应用场景下都能提供更丰富和个性化的体验。那么,本地如何快速创建一个RAG智能问答模型呢?

本文将使用openEuler Intelligence智能问答工具和openGauss向量数据库从零到一搭建一个openGauss专有领域智能问答助手,下面让我们一起逐步完成这个技术实践项目。

openEuler Intelligence部署

1. 服务部署总览

1.1 部署图

从数据到智能:openGauss+openEuler Intelligence的RAG架构实战

1.2 软件要求

类型

资源名称

版本

镜像euler-copilot-frameworkeuler-copilot-web

data_chain_back_end

data_chain_web

authhub

authhub-web

opengauss

redis

mysql

minio

mongo

secret_inject

0.9.5

0.9.5

0.9.5

0.9.5

0.9.3

0.9.3

7.0.0-RC1

7.4-alpine

8

empty

7.0.16

dev

模型bge-m3-Q4_K_Mdeepseek-llm-7b-chat-Q4_K_M

工具helm

k3s

ollama

v3.15.0

v1.30.3

0.6.5

2. 构建RAG系统

openEuler Intelligence 是一个基于 openEuler 操作系统的人工智能助手,可以帮助用户解决各种技术问题,提供技术支持和咨询服务。它使用了最先进的自然语言处理技术和机器学习算法,能够理解用户的问题并提供相应的解决方案。其安装模式灵活适配不同环境:

  • 在线模式:自动拉取镜像,一键部署,适合网络畅通的云端或个人开发环境。

  • 离线模式:手动导入镜像文件,保障内网或安全敏感场景下的稳定运行。

    两种模式仅在资源准备阶段存在差异,后续使用流程完全一致,用户可根据实际需求自由选择。

    2.1 准备资源

    1)在线模式

    git clone https://gitee.com/openeuler/euler-copilot-framework.git -b dev

    2)离线模式

    • 获取Euler Copilot项目

      在Euler Copilot官方仓库下载压缩包,上传至服务器并解压。

      unzip euler-copilot-framework.tar -d 

      获取镜像、模型以及工具包

      参照1.2资源列表在 Euler Copilot资源下载地址(https://repo.oepkgs.net/openEuler/rpm/openEuler-22.03-LTS/contrib/eulercopilot/)中下载需要使用的镜像、模型以及工具包。

      确保服务器已创建以下目录,并把下载好的资源放入对应文件夹

      /home/eulercopilot/├── images/    # 存放镜像文件├── models/    # 存放模型文件└── tools/     # 存放工具包

      在线模式和离线模式仅在资源准备阶段不同,后续步骤完全一致。

      2.2 运行部署脚本
      # 切换目录至部署脚本路径下cd euler-copilot-framework/deploy/scripts# 为脚本文件添加可执行权限chmod -R +x ./*# 运行部署脚本bash deploy.sh
      2.3 开始部署服务

      运行完部署脚本后会出现下面的部署菜单列表,我们将采用分步手动部署的方式来完成这个项目,以便更清晰地理解每个环节的实现细节。​​​​​​​

      ==============================        主部署菜单==============================0) 一键自动部署1) 手动分步部署2) 重启服务3) 卸载所有组件并清除数据4) 退出程序==============================请输入选项编号(0-3): 1

      ​​​​​​​

      # 输入选项编号(0-9),逐步部署==============================       手动分步部署菜单==============================1) 执行环境检查脚本2) 安装k3s和helm3) 安装Ollama4) 部署Deepseek模型5) 部署Embedding模型6) 安装数据库7) 安装AuthHub8) 安装EulerCopilot9) 返回主菜单==============================请输入选项编号(0-9):

      这里只要确保每个步骤都能顺利完成且不出现错误提示,即可进入下一环节。如果以下服务pod状态都正常就可以开启访问openEuler Intelligence之旅啦。

      ​​​​​​​

      [root@localhost euler_copilot]# kubectl get pods -ANAMESPACE       NAME                                      READY   STATUS      RESTARTS   AGEeuler-copilot   authhub-backend-deploy-9f46b886b-c25nl    1/1     Running     0          29heuler-copilot   authhub-web-deploy-7957555974-7fgsx       1/1     Running     0          29heuler-copilot   framework-deploy-cffdfc75f-pvv4c          1/1     Running     0          9m21seuler-copilot   minio-deploy-746786cf66-6rnwt             1/1     Running     0          29heuler-copilot   mongo-deploy-c89868d7d-5nczl              1/1     Running     0          29heuler-copilot   mysql-deploy-7c6b8997cf-xrqjp             1/1     Running     0          29heuler-copilot   opengauss-deploy-968d7848d-vqgjw          1/1     Running     0          11meuler-copilot   rag-deploy-79ddfd786d-rtzw9               1/1     Running     0          38seuler-copilot   rag-web-deploy-7df6d6b66d-bkh5v           1/1     Running     0          19heuler-copilot   redis-deploy-7fb5b67844-kv9mz             1/1     Running     0          29heuler-copilot   web-deploy-59dcfb78f7-cd54l               1/1     Running     0          19hkube-system     coredns-576bfc4dc7-9v7dm                  1/1     Running     0          29hkube-system     helm-install-traefik-crd-wwv9f            0/1     Completed   0          19hkube-system     helm-install-traefik-dgszg                0/1     Completed   0          19hkube-system     local-path-provisioner-6795b5f9d8-msz9p   1/1     Running     0          29hkube-system     metrics-server-557ff575fb-grbm6           1/1     Running     0          29hkube-system     svclb-traefik-be11ef18-qzv8d              2/2     Running     0          29hkube-system     traefik-5fb479b77-pcbgr                   1/1     Running     0          29h

      注意,如果本地有ollama服务并拉取了embedding和chat大模型,可以跳过3-5步骤,在安装完openEuler Intelligence服务后修改模型配置即可,下面是修改步骤及内容。

      cd euler-copilot-framework/deploy/chart/euler-copilot
        vim values.yaml

        从数据到智能:openGauss+openEuler Intelligence的RAG架构实战

        按照上图修改模型名称后更新euler-copilot的部署:

        • helm upgrade euler-copilot -n euler-copilot .

          其他GPU/NPU模型部署参考:https://gitee.com/openeuler/euler-copilot-framework/blob/master/docs/user-guide/%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97/%E7%BD%91%E7%BB%9C%E7%8E%AF%E5%A2%83%E4%B8%8B%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97.md#%E5%A4%A7%E6%A8%A1%E5%9E%8B%E5%87%86%E5%A4%87

          2.4 访问openEuler Intelligence网页界面

          在访问网页前需要先配置域名:​​​​​​​

          # 本地Windows主机中进行配置# 打开 C:\Windows\System32\drivers\etc\hosts 添加记录 authhub.eulercopilot.local(或者您自定义的域名) www.eulercopilot.local(或者您自定义的域名)

          最后,在浏览器中输入 https://authhub.eulercopilot.local(或者您自定义的域名) 链接访问 openEuler Intelligence 的网页界面:

          从数据到智能:openGauss+openEuler Intelligence的RAG架构实战

          3. 准备openGauss领域知识库

          本文以构建openGauss知识库为例,语料可以在openGauss官网中下载收集。

          首先选择openEuler Intelligence页面左侧工具栏中的知识库,注册账号登录后点击右上角的设置按钮,进行语言模型的选择。这里选择本地ollama部署的llama3.2模型,配置页面如下:

          从数据到智能:openGauss+openEuler Intelligence的RAG架构实战

          接下来就可以创建专属openGauss的资产库了,描述信息填写示例如下:

          从数据到智能:openGauss+openEuler Intelligence的RAG架构实战

          之后点进创建好的资产库就可以导入并解析文档:

          从数据到智能:openGauss+openEuler Intelligence的RAG架构实战

          以下是文本解析后的具体内容,可以通过页面右侧的滑动开关选择是否采用该条文本块:

          从数据到智能:openGauss+openEuler Intelligence的RAG架构实战

          4. 对话测试

          当专属知识库创建完成后,我们可以将其作为外部知识源集成到对话应用中,实现知识增强的智能问答功能。

          • 这里需要先在知识库界面获取资产库ID作为唯一标识,然后进入对话页面,将获得的ID配置到知识库关联设置中,设置页面如下:

            从数据到智能:openGauss+openEuler Intelligence的RAG架构实战

            • 最后我们通过实际测试对比加入知识库前后的回答效果差异,对于"openGauss版本"的提问:

              未接入知识库的回答表现:存在明显的虚构内容,版本号等关键信息失实

              接入知识库后的回答表现:准确返回真实版本信息,附带版本特性说明

              知识库的引入有效杜绝了大模型的虚构回答,确保技术细节的准确性和可靠性。

              从数据到智能:openGauss+openEuler Intelligence的RAG架构实战

              至此,基于openGauss向量数据库的openEuler Intelligence搭建圆满完成。

              总结

              通过本文的实践,我们不仅成功构建了一个基于openEuler Intelligence和openGauss的专有领域智能问答系统,更验证了RAG技术在解决传统搜索局限性方面的强大潜力。这个项目充分展示了如何将前沿的AI技术与专业领域知识深度结合,为开发者提供了一条可复现的技术升级路径。期待读者能将此方案拓展到更多业务场景,推动知识检索技术向更智能、更精准的方向持续演进。

              参考资料

              • openEuler Intelligence无网络环境下部署指南:https://gitee.com/openeuler/euler-copilot-framework/blob/master/docs

              • openEuler Intelligence网络环境下部署指南:https://gitee.com/openeuler/euler-copilot-framework/blob/master/docs

    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

    目录[+]

    取消
    微信二维码
    微信二维码
    支付宝二维码