RAGFlow安装教程:打造属于自己的本地知识库

介绍


RAGFlow 是一款基于深度文档理解构建的开源 RAG(Retrieval-Augmented Generation)引擎。可以为各种规模的企业及个人提供一套精简的 RAG 工作流程,结合大语言模型(LLM)针对用户各类不同的复杂格式数据提供可靠的问答以及有理有据的引用。

系统架构


安装


  • 环境要求

CPU >= 4 cores

RAM >= 16 GB

Disk >= 50 GB

Docker >= 24.0.0 & Docker Compose >= v2.26.1

启动服务器

确保 vm.max_map_count 不小于 262144。如需确认 vm.max_map_count 的大小,服务执行:

sysctl vm.max_map_count

如果 vm.max_map_count 的值小于 262144,可以进行重置:

# 这里我们设为 262144:``sudo sysctl -w vm.max_map_count=262144

你的改动会在下次系统重启时被重置。如果希望做永久改动,还需要在 /etc/sysctl.conf 文件里把 vm.max_map_count 的值再相应更新一遍:

vm.max_map_count=262144

1.克隆仓库

git clone https://github.com/infiniflow/ragflow.git

2.修改配置

cd ragflow/docker``vi .env

  • 修改配置RAGFLOW_IMAGE,我们测试安装使用包含推理模型的镜像v0.16.0,如果自己本地部署了embedding模型,我们可以选择v0.16.0-slim版本,以减少体积。

RAGFlow 镜像tag

大小

是否包含推理模型

v0.16.0

≈9

包含

v0.16.0-slim

≈2

不包含

RAGFLOW_IMAGE=infiniflow/ragflow:v0.16.0

  • 修改配置RAGFLOW_IMAGE,默认的地址可能下载会比较慢,我们可以使用国内镜像源

华为云镜像名:swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow

阿里云镜像名:registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow

RAGFLOW_IMAGE=registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow:v0.16.0

  • 其他配置,.env中定义了使用的各种服务对外端口、用户名、密码,版本号以及内存限制等其他信息,如果需要修改请确保修改的配置与service_conf.yaml.template 文件中的配置保持一致。

3.启动、停止

启动:

cd ragflow/docker``docker compose -f docker-compose.yml up –d

停止:

docker compose -f docker/docker-compose.yml down –v

注意:-v 将会删除 docker 容器的 volumes,已有的数据会被清空,正常停止不要携带该参数。

5.查看服务是否正常启动

docker logs -f ragflow-server

出现以下信息,即可使用浏览器打开登陆页面

默认首页地址: http://部署机器的IP:端口 端口默认【80】具体端口参考docker-compose.ym 文件中的配置

使用


1.注册登录

填写基础信息,点击继续,进入登录页面

2.配置语言模型

进入模型提供商页面,我们可以看到各种模型厂商信息,这里我们配置本地模型经常用到的三个类型分别是 Ollama、OpenAI-API-Compatible、LocalAI。如果是其他模型厂商官网提供的可以使用对应的厂商模型,直接配置官网提供的API-key、Base-Url即可。我这边重点说明一下本地接入三种方式的区别,用聊天补全接口作为示例,其他接口类似:

模型类型

请求路径

Header中Authorization是否生效

Ollama

/v1 /completions

OpenAI-API-Compatible

/v1/chat/completions

LocalAI

/v1/chat/completions

我这边的模型是符合 /v1/chat/completions 格式,并且需要校验Authorization,所以我这边选择OpenAI-API-Compatible厂商配置。配置好后点击确定。

3.创建知识库

知识库配置页面,嵌入模型我们选择BAAI/bge-large-zh-v1.5即可,其他配置暂时默认,点击保存。

选择文件,我这边使用的word文档,然后确定。

在数据集中看到我们刚刚上传的文档,我们点击这个开始解析按钮,等待解析成功

文件解析成功后,我们可以点击名称查看分块信息。我们可以禁用一些分块或者针对一些分块添加关键词增加检索匹配的能力。我这边对这个块自定义个关键词和问题,等会来测试效果。

我们进行一下检索测试,在测试文本中输入我们的关键词或问题看一下检索效果,测试结果跟预期一样。

4.新建助理

注意知识库需要有文档才能在这个配置页面查看到,否则是看不见的。

模型选择我们开始自己配置的模型,我配置的是DeepSeek,然后保存。

创建会话,查看知识库检索效果。我们提问问题,发现可以从知识库中检索出相关信息,并给我们相关引用信息。

其他说明


我们可以基于这个框架,然后上传我们的自己的文档,打造各种各样的私有助理,比如产品助理、医疗助理等等~~~

后续还会给大家整理更多 RAGFlow 实际使用中遇到的问题。

AI大模型学习路线

如果你对AI大模型入门感兴趣,那么你需要的话可以点击这里大模型重磅福利:入门进阶全套104G学习资源包免费分享!

扫描下方csdn官方合作二维码获取哦!

在这里插入图片描述

这是一份大模型从零基础到进阶的学习路线大纲全览,小伙伴们记得点个收藏!

请添加图片描述
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

100套AI大模型商业化落地方案

请添加图片描述

大模型全套视频教程

请添加图片描述

200本大模型PDF书籍

请添加图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

LLM面试题合集

请添加图片描述

大模型产品经理资源合集

请添加图片描述

大模型项目实战合集

请添加图片描述

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

在这里插入图片描述

<think>好的,我现在需要帮助用户在Ubuntu 20.04上安装VLLM并集成RAGFlow来处理复杂PDF文件,同时搭建本地知识库。首先,我得理清楚整个流程,确保每个步骤都正确无误。 用户提到的是VLLM和RAGFlow。VLLM是Hugging Face的一个库,用于高效推理和部署大语言模型,而RAGFlow可能是一个结合了检索增强生成(RAG)的工作流程。不过,目前关于RAGFlow的具体信息不多,可能需要进一步确认。用户可能是指他们自己构建的RAG流程,或者某个特定工具。需要假设RAGFlow可能是一个自定义的系统,结合了RAG框架来处理PDF文件。 首先,安装VLLM。根据官方文档,VLLM需要Python 3.8或更高版本,CUDA环境。Ubuntu 20.04自带Python 3.8,所以这一步没问题。但需要确保安装正确的CUDA驱动和工具包。用户可能需要安装CUDA 11.8,因为VLLM推荐使用。然后通过pip安装vllm包。 接下来是处理PDF文件。复杂的PDF可能包含表格、图像等,所以需要OCR工具。Tesseract OCR是常用的,安装它和Python的pdf处理库,比如PyPDF2、pdfplumber、pymupdf。此外,可能需要unstructured库来处理非结构化数据。这一步需要安装这些依赖项。 然后是RAG集成。这部分可能需要使用LangChain或LlamaIndex这样的框架来构建检索增强生成流程。安装相应的库,比如langchain、faiss-cpu或chromadb作为向量数据库。需要将处理后的文本向量化并存储,以便检索。 搭建本地知识库的话,需要将处理后的PDF内容转换为向量,并存储在向量数据库中。用户可能需要使用Sentence Transformers来生成嵌入,然后使用FAISS或ChromaDB存储。同时,确保数据预处理流程正确,包括文本分块、清洗等步骤。 集成VLLM和RAGFlow可能涉及将VLLM作为生成模型,结合RAG流程中的检索部分。例如,使用VLLM加载大模型(如LLAMA-2),在生成回答时,先检索相关知识库的内容,再生成答案。 需要注意的潜在问题包括:CUDA版本与系统驱动兼容性、Python包版本冲突、PDF解析的准确性(特别是复杂布局)、向量数据库的配置和性能优化。此外,可能需要处理OCR中的语言设置,比如安装中文语言包。 测试流程是否正常:安装完所有依赖后,尝试处理一个PDF文件,提取文本,生成向量,存储到数据库,然后通过VLLM进行查询测试,检查是否能够正确检索并生成回答。 可能还需要配置环境变量,例如设置CUDA路径,或者调整VLLM的模型加载参数。如果用户遇到内存不足的问题,可能需要调整分块大小或使用量化模型。 总结步骤:安装系统依赖(CUDA、Python等)→安装VLLM→安装PDF处理工具→安装RAG相关库→处理PDF并构建知识库→集成VLLM进行推理。整个过程需要逐步验证每个环节是否正常工作。</think>### Ubuntu 20.04 安装 VLLM 集成 RAGFlow 完整指南 #### 一、系统环境准备 1. **更新系统** ```bash sudo apt update && sudo apt upgrade -y ``` 2. **安装 CUDA 11.8** VLLM 需要 CUDA 环境支持[^1]: ```bash wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600 sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /" sudo apt install cuda-11-8 ``` 3. **配置环境变量** ```bash echo 'export PATH=/usr/local/cuda-11.8/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc ``` #### 二、安装 VLLM 1. **创建 Python 虚拟环境** ```bash sudo apt install python3.8-venv python3 -m venv vllm-env source vllm-env/bin/activate ``` 2. **安装依赖** ```bash pip install torch==2.0.1+cu118 --extra-index-url https://download.pytorch.org/whl/cu118 pip install vllm ``` #### 三、PDF 处理环境搭建 1. **安装 OCR 依赖** ```bash sudo apt install tesseract-ocr libtesseract-dev poppler-utils pip install pdfplumber pytesseract python-magic ``` 2. **复杂 PDF 处理增强** ```bash pip install unstructured[pdf] pdf2image ``` #### 四、RAGFlow 集成 1. **安装知识库组件** ```bash pip install langchain chromadb sentence-transformers ``` 2. **配置处理流程** ```python from langchain.document_loaders import PyPDFLoader from langchain.embeddings import HuggingFaceEmbeddings from langchain.vectorstores import Chroma # PDF 加载与分块 loader = PyPDFLoader("complex_file.pdf") pages = loader.load_and_split() # 向量化存储 embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/all-mpnet-base-v2") vector_db = Chroma.from_documents(pages, embeddings, persist_directory="./chroma_db") ``` #### 五、VLLM 服务部署 1. **启动 API 服务** ```bash python -m vllm.entrypoints.openai.api_server \ --model meta-llama/Llama-2-7b-chat-hf \ --download-dir ./models \ --tensor-parallel-size 1 ``` 2. **调用示例** ```python from vllm import LLM, SamplingParams llm = LLM(model="meta-llama/Llama-2-7b-chat-hf") sampling_params = SamplingParams(temperature=0.7, top_p=0.95) outputs = llm.generate(["如何解释量子纠缠?"], sampling_params) ``` #### 六、系统集成验证 1. **PDF 处理测试** ```python import pdfplumber with pdfplumber.open("test.pdf") as pdf: print(pdf.pages[0].extract_text()) ``` 2. **端到端流程验证** ```python # RAG 检索 + VLLM 生成 query = "文档中提到的关键技术是什么?" results = vector_db.similarity_search(query, k=3) context = "\n".join([doc.page_content for doc in results]) prompt = f"根据以下上下文回答问题:\n{context}\n\n问题:{query}" print(llm.generate([prompt])) ``` §§ 相关问题 §§ 1. 如何处理 PDF 中的表格和图像内容? 2. VLLM 如何实现多 GPU 分布式推理? 3. 如何评估 RAG 系统的检索准确率? 4. 本地知识库如何进行版本管理? --- : 引用内容来自站内文档中关于 Linux 系统下深度学习工具链的安装指导
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值