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 实际使用中遇到的问题。

如何系统的去学习大模型LLM ?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

事实上,抢你饭碗的不是AI,而是会利用AI的人。

科大讯飞、阿里、华为等巨头公司发布AI产品后,很多中小企业也陆续进场!超高年薪,挖掘AI大模型人才! 如今大厂老板们,也更倾向于会AI的人,普通程序员,还有应对的机会吗?

与其焦虑……

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高。

基于此,我用做产品的心态来打磨这份大模型教程,深挖痛点并持续修改了近70次后,终于把整个AI大模型的学习门槛,降到了最低!

在这个版本当中:

第一您不需要具备任何算法和数学的基础
第二不要求准备高配置的电脑
第三不必懂Python等任何编程语言

您只需要听我讲,跟着我做即可,为了让学习的道路变得更简单,这份大模型教程已经给大家整理并打包,现在将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

一、LLM大模型经典书籍

AI大模型已经成为了当今科技领域的一大热点,那以下这些大模型书籍就是非常不错的学习资源。

在这里插入图片描述

二、640套LLM大模型报告合集

这套包含640份报告的合集,涵盖了大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(几乎涵盖所有行业)
在这里插入图片描述

三、LLM大模型系列视频教程

在这里插入图片描述

四、LLM大模型开源教程(LLaLA/Meta/chatglm/chatgpt)

在这里插入图片描述

五、AI产品经理大模型教程

在这里插入图片描述

LLM大模型学习路线

阶段1:AI大模型时代的基础理解

  • 目标:了解AI大模型的基本概念、发展历程和核心原理。

  • 内容

    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
    • L1.4.1 知识大模型
    • L1.4.2 生产大模型
    • L1.4.3 模型工程方法论
    • L1.4.4 模型工程实践
    • L1.5 GPT应用案例

阶段2:AI大模型API应用开发工程

  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。

  • 内容

    • L2.1 API接口
    • L2.1.1 OpenAI API接口
    • L2.1.2 Python接口接入
    • L2.1.3 BOT工具类框架
    • L2.1.4 代码示例
    • L2.2 Prompt框架
    • L2.3 流水线工程
    • L2.4 总结与展望

阶段3:AI大模型应用架构实践

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。

  • 内容

    • L3.1 Agent模型框架
    • L3.2 MetaGPT
    • L3.3 ChatGLM
    • L3.4 LLAMA
    • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。

  • 内容

    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

这份 LLM大模型资料 包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

<think>好的,我现在需要帮助用户在Ubuntu 20.04上安装VLLM并集成RAGFlow来处理复杂PDF文件,同时搭建本地知识库。首先,我得理清楚整个流程,确保每个步骤都正确无误。 用户提到的是VLLMRAGFlow。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存储。同时,确保数据预处理流程正确,包括文本分块、清洗等步骤。 集成VLLMRAGFlow可能涉及将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、付费专栏及课程。

余额充值