【案例共创】ESC基于RAGFlow和DeepSeek构建本地问答知识库
【案例共创】ESC基于RAGFlow和DeepSeek构建本地问答知识库
一、案例介绍
在人工智能技术飞速发展的当下,企业知识库智能化正成为提升运营效率的核心路径。DeepSeek 几乎家喻户晓,而 RAGFlow 是一个基于深入文档理解的开源RAG(检索增强生成)引擎。当与LLMs集成时,它能够提供真实的问题回答功能,并由来自各种复杂格式数据的有理有据的引用支持。本次我们基于ESC使用 Docker 部署RAGFlow,并使用 ollama 部署 DeepSeek R1 模型和 bge-m3 嵌入模型,体验 RAGFlow 的知识库、对话、Agent等功能,通过RAGFlow的智能文档解析与DeepSeek大语言模型的精准推理能力,构建具备多源异构数据处理、语义深度理解及动态知识更新特征的问答知识库、Agent。
二、案例用时
本案例总时长预计120分钟。
三、案例流程
说明:
通过ECS中安装dokcer部署ragflow
通过ECS中docker部署ollama来运行deepseek
通过配置ragflow来调用deepseek-r1模型能力
用过通过公网ip访问ECS从而体验ragflow+deepseek
四、资源总览
云资源 |
消耗/时 |
时长 |
ECS(含公网IP、磁盘等) |
0.9885 |
120min |
合计:1.977元
五、实践步骤
0. 购买ECS
配置如下:
bash |
清单链接:https://www.huaweicloud.com/pricing/calculator.html?shareListId=267c3c60fc6411efa933bd915e6892f5
1、安装 RAGFlow
1.1 安装 Docker CE 和 Docker Compose
打开终端,新建 install-docker.sh:
bash |
写入以下脚本到 install-docker.sh
bash |
接着运行 docker 安装脚本:
bash |
我们查看版本发现 docker-compse 版本有点低,可能会影响后续的安装,因此尝试升级 docker-compose
bash |
升级 docker-compose:
bash |
1.2 安装 RAGFlow
先设置一下最大虚拟内存。vm.max_map_count该值设置进程可能拥有的内存映射区域的最大数量。它的默认值是65530。虽然大多数应用程序需要的映射少于一千个,但减小此值可能会导致异常行为,并且当进程达到限制时,系统将抛出内存不足错误。RAGFlow v0.17.0使用Elasticsearch或Infinity进行多次调用。正确设置vm.max_map_count的值对于Elasticsearch组件的正常运行至关重要。
bash |
接着安装 RAGFlow
bash |
我们可以修改 .env 启用全量版本(非必须,可无须修改直接使用 slim 版本),并设置 docker 镜像源:
bash |
RAGFlow镜像标签 |
镜像大小(GB) |
是否包含嵌入模型和Python包 |
是否稳定 |
v0.17.0 |
≈9 |
✔️ |
稳定版本 |
v0.17.0-slim |
≈2 |
❌ |
稳定版本 |
nightly |
≈9 |
✔️ |
nightly 构建不稳定 |
nightly-slim |
≈2 |
❌ |
|
接着通过 docker-compose 启动 RAGFlow,全量的镜像约 9G,安装稍微慢些,需要耐心等待大约10分钟
bash |
2. 访问本地 RAGFlow并配置模型
RAGFlow是一个RAG引擎,需要与大模型服务一起搭配使用,实现本地、无幻觉的问答功能。RAGFlow支持大多数主流LLMs。
2.1 访问本地RAGFlow 并注册账号登录
如本次案例中 ecs-ragflow 的 ip 为1.95.184.111 则访问: http://1.95.184.111/login ,注册账号即可使用 RAGFlow。
登录之后的主界面如下:
⚠️本地模型为选配,同样可以使用其他大模型API服务,比如 Mass、硅基流动等 |
2.2 通过 Docker 安装 ollama
首先我们设置docker镜像源,重启docker之后,通过docker拉取ollama镜像并运行
bash |
2.3 安装 DeepSeek-R1 模型和 bge-m3
鉴于网络下载速度比较慢,我们拉取相对较小的 deepseek-r1:1.5b 和嵌入模型 bge-m3 (预计25分钟,具体看网络状况)
bash |
2.4 配置模型
虽然RAGFlow和Ollama都是跑在同一台机器上,但由于分别使用了docker-compose和docker来部署,可能会导致网络不通的情况,那我们可以通过暴露 11434 ollama的端口来提高大模型服务。于是,我们在模型提供商选择Ollam之后分别配置了嵌入模型 bge-m3 和聊天模型deepseek-r1:1.5b。
接着并在设置--系统模型设置中配置好聊天模型和嵌入模型。
3. 简单使用
接下来,我们简单体验一下RAGFlow 提供的功能,分别是知识库、聊天、搜索、Agent。
3.1 知识库功能体验
点击知识库,我们创建了一个名为ModelArts助手的知识库,传入了几个pdf文件作为本地知识库。
在RAGFlow中知识库被称为数据集,我们可以上次多个文件作为数据集,并通过不通的解析方法将文档进行处理如切片、Q/A等。
解析成功的文档可以在后续功能中作为知识库引入。
3.2 聊天功能体验
我们创建了ModelArts助手的助理,可以对助理进行配置如基本信息、关键词分析、模型参数设置等,并选取知识库作为回答语料。
我们一个“如何快速入门”的简单问题开始,AI助理根据挂载的知识给了相关的回答。
3.3 搜索功能体验
在RAGFlow中,还有搜索功能,类似于传统的搜索引擎给出结果并添加了智能回答和思维导图。
3.4 Agent功能体验
最后我们来体验Agent功能,这里我们使用的是预置的 text2sql。
Agent 会提供一个工作流编排界面,并提供运行测试功能,我们发现Agent也是可以作为单独的页面嵌入到其他网站,
简单地要Agent给出“用户转化率”,它基于 deepseek-r1 模型,因此也有思考能力,最终它生成了一段完整的 SQL 语句。
至此,案例实践就结束了,记得释放资源哦!记得释放资源哦!记得释放资源哦!
我正在参加【案例共创】第2期 构建开发场景最佳实践/体验评测,创作案例文章https://bbs.huaweicloud.com/forum/thread-0225174879180881007-1-1.html |
- 点赞
- 收藏
- 关注作者
评论(0)