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

news2025/5/25 1:30:17

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

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

openEuler Intelligence部署

1. 服务部署总览

1.1 部署图

图片

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 <YourPath>

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

    参照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

    图片

    按照上图修改模型名称后更新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 添加记录<服务器IP> authhub.eulercopilot.local(或者您自定义的域名)<服务器IP> www.eulercopilot.local(或者您自定义的域名)

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

    图片

    3. 准备openGauss领域知识库

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

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

    图片

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

    图片

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

    图片

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

    图片

    4. 对话测试

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

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

    图片

    • 最后我们通过实际测试对比加入知识库前后的回答效果差异,对于"openGauss版本"的提问:
      未接入知识库的回答表现:存在明显的虚构内容,版本号等关键信息失实
      接入知识库后的回答表现:准确返回真实版本信息,附带版本特性说明

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

    图片

    至此,基于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

    本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2385004.html

    如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

    相关文章

    【Linux】初见,基础指令

    前言 本文将讲解Linux中最基础的东西-----指令&#xff0c;带大家了解一下Linux中有哪些基础指令&#xff0c;分别有什么作用。 本文中的指令和选项并不全&#xff0c;只介绍较为常用的 pwd指令 语法&#xff1a;pwd 功能&#xff1a;显示当前所在位置&#xff08;路径&#xf…

    什么是实时流数据?核心概念与应用场景解析

    在当今数字经济时代&#xff0c;实时流数据正成为企业核心竞争力。金融机构需要实时风控系统在欺诈交易发生的瞬间进行拦截&#xff1b;电商平台需要根据用户实时行为提供个性化推荐&#xff1b;工业物联网需要监控设备状态预防故障。这些场景都要求系统能够“即时感知、即时分…

    工业RTOS生态重构:从PLC到“端 - 边 - 云”协同调度

    一、引言 在当今数字化浪潮席卷全球的背景下&#xff0c;工业领域正经历着深刻变革。工业自动化作为制造业发展的基石&#xff0c;其技术架构的演进直接关系到生产效率、产品质量以及企业的市场竞争力。传统的PLC&#xff08;可编程逻辑控制器&#xff09;架构虽然在工业控制领…

    基于开源链动2+1模式AI智能名片S2B2C商城小程序的社群构建与新型消费迎合策略研究

    摘要&#xff1a;随着个性化与小众化消费的崛起&#xff0c;消费者消费心理和模式发生巨大变化&#xff0c;社群构建对商家迎合新型消费特点、融入市场经济发展至关重要。开源链动21模式AI智能名片S2B2C商城小程序的出现&#xff0c;为社群构建提供了创新工具。本文探讨该小程序…

    高性能RPC框架--Dubbo(五)

    Filter&#xff1a; filter过滤器动态拦截请求&#xff08;request&#xff09;或响应&#xff08;response&#xff09;以转换或使用请求或响应中包含的信息。同时对于filter过滤器不仅适合消费端而且还适合服务提供端。我们可以自定义在什么情况下去使用filter过滤器 Activa…

    搭建自己的语音对话系统:开源 S2S 流水线深度解析与实战

    网罗开发 &#xff08;小红书、快手、视频号同名&#xff09; 大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等…

    feign调用指定服务ip端口

    1 背景 在springcloud开发时候&#xff0c;同时修改了feign接口和调用方的代码&#xff0c;希望直接在某个环境调用修改的代码&#xff0c;而线上的服务又不希望被下线因为需要继续为其他访问页面的用户提供功能后端服务&#xff0c;有时候甚者包含你正在修改的功能。 2 修改…

    【深尚想!爱普特APT32F1023H8S6单片机重构智能电机控制新标杆】

    在智能家电与健康器械市场爆发的今天&#xff0c;核心驱动技术正成为产品突围的关键。传统电机控制方案面临集成度低、开发周期长、性能瓶颈三大痛点&#xff0c;而爱普特电子带来的APT32F1023H8S6单片机无感三合一方案&#xff0c;正在掀起一场智能电机控制的技术革命。 爆款基…

    Unity EventCenter 消息中心的设计与实现

    在开发过程中&#xff0c;想要传递信号和数据&#xff0c;就得在不同模块之间实现通信。直接通过单例调用虽然简单&#xff0c;但会导致代码高度耦合&#xff0c;难以维护。消息中心提供了一种松耦合的通信方式&#xff1a;发布者不需要知道谁接收事件&#xff0c;接收者不需要…

    MySQL远程连接10060错误:防火墙端口设置指南

    问题描述&#xff1a; 如果你通过本机服务器远程连接MySQL&#xff0c;出现10060错误&#xff0c;那可能是你的防火墙的问题 解决&#xff1a; 第一步&#xff1a;查看防火墙规则 通过以下命令查询&#xff0c;看ports是否开放了3306端口&#xff0c;目前只开放了22端口 f…

    使用 OpenCV 实现 ArUco 码识别与坐标轴绘制

    &#x1f3af; 使用 OpenCV 实现 ArUco 码识别与坐标轴绘制&#xff08;含Python源码&#xff09; Aruco 是一种广泛用于机器人、增强现实&#xff08;AR&#xff09;和相机标定的方形标记系统。本文将带你一步一步使用 Python OpenCV 实现图像中多个 ArUco 码的检测与坐标轴…

    canal实现mysql数据同步

    目录 1、canal下载 2、mysql同步用户创建和授权 3、canal admin安装和启动 4、canal server安装和启动 5、java 端集成监听canal 同步的mysql数据 6、java tcp同步只是其中一种方式&#xff0c;还可以通过kafka、rabbitmq等方式进行数据同步 1、canal下载 canal实现mysq…

    易境通专线散拼系统:全方位支持多种专线物流业务!

    在全球化电商快速发展的今天&#xff0c;跨境电商物流已成为电商运营中极为重要的环节。为了确保物流效率、降低运输成本&#xff0c;越来越多的电商卖家选择专线物流服务。专线物流作为五大主要跨境电商物流模式之一&#xff0c;通过固定的运输路线和流程&#xff0c;极大提高…

    06 如何定义方法,掌握有参无参,有无返回值,调用数组作为参数的方法,方法的重载

    1.调用方法 2.掌握有参函数 3.调用数组作为参数 一个例题&#xff1a;数组参数&#xff0c;返回值 方法的重载 两个例题&#xff1a;冒泡排序和九九乘法表的格式学习

    使用vscode MSVC CMake进行C++开发和Debug

    使用vscode MSVC CMake进行C开发和Debug 前言软件安装安装插件构建debuug方案一debug方案二其他 前言 一般情况下我都是使用visual studio来进行c开发的&#xff0c;但是由于python用的是vscode&#xff0c;所以二者如果统一的话能稍微提高一点效率。 软件安装 需要安装的软…

    提升开发运维效率:原力棱镜游戏公司的 Amazon Q Developer CLI 实践

    引言 在当今快速发展的云计算环境中&#xff0c;游戏开发者面临着新的挑战和机遇。为了提升开发效率&#xff0c;需要更智能的工具来辅助工作流程。Amazon Q Developer CLI 作为亚马逊云科技推出的生成式 AI 助手&#xff0c;为开发者提供了一种新的方式来与云服务交互。 Ama…

    @Column 注解属性详解

    提示&#xff1a;文章旨在说明 Column 注解属性如何在日常开发中使用&#xff0c;数据库类型为 MySql&#xff0c;其他类型数据库可能存在偏差&#xff0c;需要注意。 文章目录 一、name 方法二、unique 方法三、nullable 方法四、insertable 方法五、updatable 方法六、column…

    基于 ESP32 与 AWS 全托管服务的 IoT 架构:MQTT + WebSocket 实现设备-云-APP 高效互联

    目录 一、总体架构图 二、设备端(ESP32)低功耗设计(适配 AWS IoT) 1.MQTT 设置(ESP32 连接 AWS IoT Core) 2.低功耗策略总结(ESP32) 三、云端架构(基于 AWS Serverless + IoT Core) 1.AWS IoT Core 接入 2.云端 → APP:WebSocket 推送方案 流程: 3.数据存…

    unity在urp管线中插入事件

    由于在urp下&#xff0c;打包后传统的相机事件有些无法正确执行&#xff0c;这时候我们需要在urp管线中的特定时机进行处理一些事件&#xff0c;需要创建继承ScriptableRenderPass和ScriptableRendererFeature的脚本&#xff0c;示例如下&#xff1a; PluginEventPass&#xf…

    docker安装es连接kibana并安装分词器

    使用Docker部署Elasticsearch、Kibana并安装分词器有以下主要优点&#xff1a; 1. 快速部署与一致性 一键式部署&#xff1a;通过Docker Compose可以快速搭建完整的ELK栈环境 环境一致性&#xff1a;确保开发、测试和生产环境完全一致&#xff0c;避免"在我机器上能运行…