目录

一、环境配置

1.Python环境搭建 

2.依赖库安装

二、模型部署与量化

1.Ollama本地部署

2.模型下载

3.显存优化配置(看自己需求)

三、可视化界面部署

安装Docker与RAGFlow集成方案:真~保姆级教程!!!Linux部署ragflow,从安装docker开始~_docker安装ragflow-CSDN博客

四、使用RAGFlow

1.创建知识库:

RAGFlow官方文档:快速入门 | RAGFlow 引擎

安装过程中遇到的问题:

端口被占用

常用命令:


一、环境配置

系统要求验证​

  • ​操作系统​​:Windows 10/11 64位(需更新至 22H2 及以上)
  • ​显存确认​​:nvidia-smi 显示至少 8GB 可用显存(7B 模型需 8GB,8B 需 10GB+)

1.Python环境搭建 

# 安装Python 3.10 (推荐使用Anaconda)
winget install Python.Python.3.10

# 创建虚拟环境
python -m venv deepseek-env
.\deepseek-env\Scripts\activate

2.依赖库安装

根据CUDA 版本选择合适的 PyTorch 安装命令,如果不确定CUDA 版本,可以通过以下命令查询:

nvidia-smi

如果安装了不兼容的 CUDA 版本,可能会导致 PyTorch 无法正常运行或出现错误。

已经安装了 CUDA,可以通过以下命令检查已安装的 CUDA 版本:

nvcc --version

访问 NVIDIA 官方网站,查找您的 GPU 型号,查看其支持的 CUDA 版本

NVIDIA CUDA下载官网地址:

CUDA Toolkit 12.9 Update 1 Downloads | NVIDIA Developerhttps://developer.nvidia.com/cuda-downloads

# 安装 CUDA 11.8 兼容版本(RTX 3060 需匹配 CUDA 11.x)  
pip install torch==2.1.2+cu118 torchvision==0.16.2+cu118 --index-url https://download.pytorch.org/whl/cu118  
# 安装关键依赖  
pip install transformers==4.37.2 accelerate bitsandbytes sentencepiece  
# CUDA 11.7
pip install torch==2.1.0+cu117 torchvision==0.14.0+cu117 --index-url https://download.pytorch.org/whl/cu117

# CDUA 11.6
pip install torch==2.0.1+cu117 torchvision==0.15.2+cu117 --index-url https://download.pytorch.org/whl/cu117

# CUDA 11.3
pip install torch==2.0.1+cu113 torchvision==0.15.2+cu113 --index-url https://download.pytorch.org/whl/cu113

# CUDA 10.2
pip install torch==2.0.1+cu102 torchvision==0.15.2+cu102 --index-url https://download.pytorch.org/whl/cu102

# CPU版本(无CUDA)
pip install torch==2.1.2+cpu torchvision==0.16.2+cpu --index-url https://download.pytorch.org/whl/cpu

安装关键依赖
pip install transformers==4.37.2 accelerate bitsandbytes sentencepiece

二、模型部署与量化

1.Ollama本地部署

下载链接:Download Ollama on macOS

安装后验证:

ollama -V # 应显示版本号如 v0.1.34

2.模型下载

# 下载 4-bit 7B 模型
ollama run deepseek-r1:7b 
# 若需 8B 模型
ollama run deepseek-r1:8b 

3.显存优化配置(看自己需求)

在 %USERPROFILE%\.ollama\config.json 中添加

"gpu_layers": 35,  # 分配前35层到GPU  
"precision": "f16"  

三、可视化界面部署

安装Docker与RAGFlow集成方案:真~保姆级教程!!!Linux部署ragflow,从安装docker开始~_docker安装ragflow-CSDN博客

(大家可以看这个博主的写的很详细很实用,这边给他隔空点赞!)

这边说明一下:slim版与完整版的区别
模型支持
完整版 :包含本地可运行的 Embedding 模型和 Reranker 模型,如 BGE/BCE 嵌入模型等,开箱即用,无需额外配置服务。
slim 版 :不包含上述本地运行的 Embedding 模型和 Reranker 模型,需要用户在外部配置相关服务,如用 Ollama 或者 Xinference 启动本地 Embedding 模型和 Reranker 模型,或者直接配置采用其他的 SaaS 服务。

适用场景
完整版 :适合有较高隐私要求、希望所有处理都在本地完成,且存储资源充足,不想额外配置模型服务的用户。
slim 版 :适合存储资源有限,或已有一些外部模型服务可利用,希望通过灵活配置来满足个性化需求的用户

(如上图所示,无嵌入模型,需要另外下载)

RAGFlow安装中有五个部分

ragflow-server:作为 RagFlow 的主服务容器,负责运行 RagFlow 的核心业务逻辑和功能

ragflow-minio:

  • 对象存储服务 :基于 MinIO 提供对象存储功能,用于存储上传的原始文档、处理后的文本切片、向量数据以及文档切片图像信息等非结构化数据。
  • 提供 S3 兼容 API 接口 :具备标准的 S3 兼容 API 接口,方便与其他支持 S3 协议的应用程序进行集成和交互,提高了系统的兼容性和扩展性。
  • 管理控制台 :包含管理控制台,通过访问特定端口(如 9001 端口),用户可以直观地查看和管理存储在 MinIO 中的各类数据,方便进行数据的上传、下载、删除以及容器管理等操作。

ragflow-es-01:

  • 搜索引擎组件 :是 Elasticsearch 搜索结果表明,用于全文检索和向量搜索,能够对海量文本数据进行高效的索引和检索,快速找到与用户查询相关的文档和信息,是实现 RagFlow 检索功能的关键组件之一。
  • 知识库存储后端 :作为系统的知识库存储后端,负责存储文档的索引数据和向量表示,支持向量存储和相似度搜索,为智能问答和知识检索提供数据基础,帮助系统理解和检索知识库中的语义信息。

ragflow-mysql:

  • 关系型数据库 :用于存储系统的结构化数据,包括用户账户信息、权限设置、知识库的元数据等。例如,记录用户的登录信息、角色权限、知识库的名称、描述、创建时间等元数据信息,为系统的用户管理和知识库管理提供数据支持。
  • 支持复杂查询与事务处理 :能够处理复杂的 SQL 查询,支持事务处理,保证数据的一致性和完整性。在多用户并发访问系统时,确保数据操作的准确性和可靠性,为系统的稳定运行提供保障。

ragflow-redis:

  • 缓存与消息队列 :作为缓存数据库,用于缓存频繁访问的数据,如用户的会话信息、查询结果等,提高系统的响应速度和性能。同时,也可作为消息队列使用,处理异步任务,例如在文档处理、任务执行等过程中,通过消息队列实现任务的异步分发和处理,提高系统的并发处理能力。
  • 临时数据存储 :存储临时数据和会话信息,例如用户登录状态、临时的查询参数等,这些数据在用户会话结束或任务完成后可以被清理,从而减少对持久化存储的依赖,提高系统的效率和灵活性。

四、使用RAGFlow

1.创建知识库:

RAGFlow完全指南:从0到1搭建RAG知识库,一篇文章全面掌握!非常详细收藏这一篇就够了!_ragflow知识库-CSDN博客

(我发现CSDN上有博主写了详细细的教程了我也不过多赘述,大家点进链接一看便知,同样隔空点赞)

(打开链接后只查看   应用   部分!!!即可!!!!!!!!)

聊天模型

  • 定义:一种基于大语言模型的对话生成模型
  • 作用:接收用户输入的prompt或部分对话,利用其对自然语言的理解生成对话响应。

嵌入模型

  • 定义:将离散数据(如文本、图像)映射到连续向量空间的模型
  • 作用:
  1. 将文本、图像等转换为向量,保留语义信息,使语义相似的数据在向量空间中距离更近。
  2. 用于语义检索,通过计算向量间的相似度(如余弦相似度、欧氏距离)来支撑检索增强生成(RAG)、推荐系统等应用。
  3. 压缩复杂数据为低维稠密向量,提升存储与计算效率。

Img2txt模型

  • 定义:一种将图像转换为文本描述的模型
  • 作用:
  1. 用于图片描述、图片分析等,能够根据输入的图片生成相应的文本描述。
  2. 常用于图像内容识别、生成图像说明等场景。

Sequence2txt模型

  • 定义:一种序列到文本的模型
  • 作用:用于处理序列数据并将其转换为文本,适用于语音识别、机器翻译等序列处理任务。

Rerank模型

  • 定义:对初始检索结果进行重新排序的模型
  • 作用:优化检索结果的排序,提高结果的相关性和准确性。

TTS模型

  • 定义:一种将文本转换为语音的模型。
  • 作用:将文本信息转化为语音输出,适用于需要语音播报的场景,如智能语音助手、有声读物等。

每个设置项的解释及其作用:

模型:

  • 作用: 选择用于生成回答的 AI 模型。不同的模型拥有有不同的能力、风格和性能。

自由模式

  • 作用: 控制生成文本的自由度。通常有两种模式:
  • 精确: 生成的文本更符合逻辑和事实,适合需要准确信息的场景。
  • 自由: 生成的文本更具创造性和灵活性,适合创意性任务。

温度 

  • 范围: 0 到 1
  • 作用: 控制生成文本的随机性。
  • 低温 (接近 0): 输出更确定和可预测,文本更稳定但可能较保守。
  • 高温 (接近 1): 输出更随机和多样化,但可能包含不相关的内容。

Top P

  • 范围: 0 到 1
  • 作用: 控制采样范围。它决定了从概率分布中选择词汇的累积概率阈值。
  • 小 Top P: 只从概率最高的词汇中采样,生成的文本更保守。
  • 大 Top P: 允许从更广泛的词汇中采样,生成的文本更灵活。

存在惩罚

  • 范围: 0 到 1 
  • 作用: 控制模型对新话题或内容的探索程度。
  • 高存在惩罚: 鼓励模型引入新内容,避免重复。
  • 低存在惩罚: 允许模型更多地重复已有内容。


频率惩罚

  • 范围:  0 到 1 之间
  • 作用: 控制模型对高频词汇的重复程度。
  • 高频率惩罚: 减少高频词汇的重复,鼓励多样性。
  • 低频率惩罚: 允许更多的重复,适合需要强调的内容。


最大 token 数

  • 范围: 取决于模型限制
  • 作用: 控制生成文本的最大长度(以 token 为单位)。每个词或短语通常会被分解成一个或多个 token。
  • 大 token 数: 允许生成更长的文本。
  • 小 token 数: 限制生成文本的长度,适合简洁的回答。

2.学习Agent智能体应用:

DeepSeek+RagFlow 知识库:构建Agent智能体应用_ragflow agent构建-CSDN博客

RAGFlow官方文档:快速入门 | RAGFlow 引擎

安装过程中遇到的问题:

端口被占用

# 打开cmd 输入
netstat -aon | findstr :[端口号] # 查看相应进程

#根据进程号结束相应进程
taskkill /f /pid [进程号]

或者 修改默认端口号

1.打开docker-compose.yml(yaml)文件,找到ports配置部分

修改docker-compose.yml文件: 打开docker-compose.yml文件,找到ports配置部分,将默认的80:80修改为所需的端口,例如8080:80。这表示将主机的8000端口映射到容器的80端口

ports: - "8000:80" - "443:443"

2.重启服务: 停止当前运行的容器并重新启动服务(修改端口号的过程需要重启RAGflow服务,但无需重启服务器)

docker compose -f docker-compose.yml down
docker compose -f docker-compose.yml up -d

3.验证服务: 在浏览器中访问http://localhost:8080,检查RAGflow是否正常运行。

还有一种特殊情况,使用netstat -aon | findstr :[端口号] 查看相应进程时

ragflow端口未被占用但还是无法使用:

netsh int ipv4 show dynamicport tcp

查看TCP动态端口范围,检查端口号是否在动态端口范围内, 如果是可以修改端口号

如果端口未被占用,也不在动态端口范围内,还是显示冲突无法使用,请你多重启几次电脑即可解决,多重启几次电脑即可

常用命令

1.查看容器日志

docker logs [容器名]
#查看ragflow日志
# docker logs ragflow-server

2.停止/启动容器

docker start [容器名]
# 启动ragflow容器
# docker start ragflow-server

docker stop [容器名]
# 停止ragflow容器
# docker stop ragflow-server

3. 删除容器

docker rm [容器名]
# 删除 ragflow容器
# docker rm ragflow-server

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐