【win10+RAGFlow+Ollama】搭建本地大模型助手(教程+源码)

一、RAGFlow简介

RAGFlow是一个基于对文档深入理解的开源RAG(Retrieval-augmented Generation,检索增强生成)引擎。

系统架构
主要作用: 让用户创建自有知识库,根据设定的参数对知识库中的文件进行切块处理,用户向大模型提问时,RAGFlow先查找自有知识库中的切块内容,接着把查找到的知识库数据输入到对话大模型中再生成内容输出。

平台特点: 支持丰富的文件类型,如Word、PPT、excel表格、csv/txt、图片、PDF、结构化数据、网页等 。

平台Demo链接: https://demo.ragflow.io.

二、win10 系统本地化部署 RAGFlow 平台

2.1 部署思路

1、通过win10系统自带的wsl构建linux虚拟环境;
2、通过docker desktop实现docker环境部署
3、通过ollama实现大模型底座下载管理;
4、将ragflow平台下载到本地linux环境进行运行部署,使用ollama中的大模型能力;
5、自己构建业务数据训练本地大模型;
6、测试训练结果。

2.2 环境要求

CPU >= 4 cores
RAM >= 16 GB
Disk >= 50 GB
Docker >= 24.0.0 & Docker Compose >= v2.26.1

2.3 前置条件(win10 环境设置)

可通过代码或者自己配置实现环境设置。
(1)代码修改

// 启用适用于 Linux 的 Windows 子系统
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

//检查运行 WSL 2 的要求
//若要更新到 WSL 2,需要运行 Windows 10。
// 对于 x64 系统:版本 1903 或更高版本,采用 内部版本 18362 或更高版本。
// 对于 ARM64 系统:版本 2004
// 或更高版本,采用 内部版本 19041 或更高版本。
// 低于 18362 的版本不支持 WSL 2。使用 Windows Update 助手更新 Windows 版本。

//启用虚拟机功能
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

//开启“虚拟机平台”后需要重启电脑生效。

//将 WSL 2 设置为默认版本
wsl --set-default-version 2

//查看当前wsl版本列表
wsl --list --verbose

(2)手动配置
在这里插入图片描述在这里插入图片描述在这里插入图片描述

注意:开启以上功能需要重启

2.4 开始部署

2.4.1安装Docker

(一)下载Docker安装包
链接: https://docs.docker.com/desktop/setup/install/windows-install/
在这里插入图片描述(二)安装Docker
直接下一步安装就行。
在这里插入图片描述(三)安装Docker成功
在这里插入图片描述

2.4.2利用wsl安装ubuntu系统

(一)更新wsl

//更新一下可以解决很多后面的问题,自己安装的时候没有更新,搞了很久。
wsl --update

在这里插入图片描述
(二)利用 wsl 安装 Ubuntu

//安装ubuntu命令
wsl --install -d ubuntu

//安装成功以后会自动提醒创建用户,按照要求创建用户、设置密码
//使用刚创建的账户登录
//因为docker一些操作需要root账户,但是这时候不知道root 密码,通过命令修改密码

sudo passwd
//输入当前登录账户的密码,然后输入新密码,这时候可以使用新密码登录root账户
su root

//至此linux环境安装成功。

在这里插入图片描述(三)建议安装windows terminal,操作wsl安装的系统

windows terminal的操作界面会比默认的CMD看起来舒服一点,而且方便单独操作虚拟系统。

在这里插入图片描述

在这里插入图片描述

(四)按照建议修改系统参数
按照官方建议调整vm.max_map_count参数

sysctl vm.max_map_count
sudo sysctl -w vm.max_map_count=262144

在这里插入图片描述

(四)下载 ragflow
RAGFlow官方链接: https://infiniflow.cn/docs/v0.7.0/

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

注意:如果出现下列问题可修改hosts文件解决
在这里插入图片描述

文件位置:
C:\Windows\System32\drivers\etc
最下方添加:
10.10.211.68 www.github.com

如果效果不明显,可自己调整延迟最低的ip映射

访问以下地址查看本地延迟情况,然后选择延迟最低的。
https://ping.chinaz.com/github.com

在这里插入图片描述
注意:如果出现下载慢导致下载失败,可使用以下办法尝试解决
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.4.3 安装 RagFlow

官方链接:RagFlow

#配置要求
CPU >= 4 核
RAM >= 16 GB
Disk >= 50 GB
Docker >= 24.0.0 & Docker Compose >= v2.26.1
如果你并没有在本机安装 Docker(Windows、Mac,或者 Linux), 可以参考文档 Install Docker Engine 自行安装。

#克隆仓库
git clone https://github.com/infiniflow/ragflow.git

文件比较大,需要下载一段时间,下载完成后:
# 进入下载目录
cd ragflow
#运行ragflow
 docker compose -f docker/docker-compose.yml up -d
 # 注意:这里需要启动本地docker desktop 应用,不然无法执行。

下载、运行成功以后,会在docker desktop 管理端看到以下镜像信息。

在这里插入图片描述

# 注册账号
登录127.0.0.1:80  进行注册账号登录

在这里插入图片描述

2.4.4 安装 Ollama

管网下载并安装[Ollama](https://ollama.com/)。
具体安装过程自行查找,安装成功以后可按照以下方式进行验证。
输入以下链接查询服务是否i东
http://127.0.0.1:11434/

在这里插入图片描述

#根据个人电脑配置情况下载需要的大模型,这里推荐使用qwen2或者qwen2.5,模型大小从效果考虑建设使用7b以上,但是本地设备配置不够的话,可以使用1.5b尝试效果。
#模型下载安装命令(win10中安装)
#列出模型
ollama list
#删除模型
ollama rm 
#显示模型信息
ollama show  
 #下载运行qwen2:7b
 ollama run qwen2:7b
#下载Embedding模型,一个免费的中文的向量化模型
ollama pull shaw/dmeta-embedding-zh

2.4.5 准备个人数据

这里提供一个训练数据下载地址,里面有一些业务的训练数据。
https://huggingface.co/InfiniFlow

也可以完全自己构建训练数据集,数据训练格式参考如下:

在这里插入图片描述

2.4.6 运行RagFlow

1、注册账户。http://127.0.0.1/login,
2、创建知识库
在这里插入图片描述
3、配置数据库
在这里插入图片描述4、解析数据集
在这里插入图片描述
5、问答测试(我这里使用的是医疗数据,如我没有进行数据训练,测试将无结果)
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在 Ubuntu 上部署 Terraform 管理平台:实现云基础设施的集中管理

简介 Terraform 是一款开源基础架构自动化工具,可让您通过命令行界面部署和管理数百台服务器。使用 Terraform,你可以通过在一个人类可读的文件中定义配置来构建、更改和管理你的基础架构。它支持许多云提供商,如 AWS、Azure、GCP 和阿里巴巴…

概率论得学习和整理25:EXCEL 关于直方图/ 频度图 /hist图的细节,2种做hist图的方法

目录 1 hist图的特点 2 hist的设置技巧:直接生成的hist图往往很奇怪不好用:因为横轴的分组不对 3 如何修改分组 4 设置开放边界,把长尾合并,得到hist图1 5 用原始表得到频数表 6 用上面的频数图做柱状图,再修改&…

RabbitMQ的核心组件有哪些?

大家好,我是锋哥。今天分享关于【RabbitMQ的核心组件有哪些?】面试题。希望对大家有帮助; RabbitMQ的核心组件有哪些? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 RabbitMQ是一个开源的消息代理(Messag…

桥接模式的理解和实践

桥接模式(Bridge Pattern),又称桥梁模式,是一种结构型设计模式。它的核心思想是将抽象部分与实现部分分离,使它们可以独立地进行变化,从而提高系统的灵活性和可扩展性。本文将详细介绍桥接模式的概念、原理…

【原创教程】西门子1500TCP_UDP通信说明大全(下篇)

2.3.3 TRCV故障说明 通讯无法正常连接时,ERROR引脚和STATUS引脚得状态有助于我们判断错误得原因,根据下表得提示,快速排除问题。 2.3.4 TRCV使用 点击TRCV指令得右上角蓝色图标,打开开始组态画面,按照控制要求填写 EN_R:用于激活接收的控制参数,及何时使用TRCV的接收功…

Grafana配置告警规则推送企微机器人服务器资源告警

前提 已经部署Grafana,并且dashboard接入数据 大屏编号地址:Node Exporter Full | Grafana Labs 创建企微机器人 备注:群里若有第三方外部人员不能创建 机器人创建完成,记录下来Webhook地址 Grafana配置告警消息模板 {{ define &…

RabbitMQ如何构建集群?

大家好,我是锋哥。今天分享关于【RabbitMQ如何构建集群?】面试题。希望对大家有帮助; RabbitMQ如何构建集群? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在RabbitMQ中,集群(Cluster&#x…

JDK以及JRE

目录 1.常用的快捷键操作2.重要的dos命令3.Jre(java Runtime environment)4.Jdk(java development kit)5.安装JDK6.JDK的目录7.Jdk的环境变量配置8.写第一个java程序8.1 安装UE软件8.2 写第一个HelloWorld 9.java运行机制 1.常用的…

Groovy 语法快速入门

文章目录 1. Groovy 的特点2. 基本语法2.1. 变量2.2. 字符串2.3. 条件语句 3. 集合操作3.1. 列表(List)3.2. 映射(Map) 4. 循环语句4.1. 普通循环4.2. 闭包遍历 5. 方法定义6. 闭包(Closure)6.1. 定义与调用…

MySQL 事务管理

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 MySQL 事务管理 收录于专栏[MySQL] 本专栏旨在分享学习MySQL的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 CURD 不加控制&#xff0…

【大模型微调学习5】-大模型微调技术LoRA

【大模型微调学习5】-大模型微调技术LoRA LoRa微调1.现有 PEFT 方法的局限与挑战2.LoRA: 小模型有大智慧 (2021)3.AdaLoRA: 自适应权重矩阵的高效微调 (2023)4.QLoRA: 高效微调量化大模型 (2023) LoRa微调 1.现有 PEFT 方法的局限与挑战 Adapter方法,通过增加模型深…

Windows server服务器之网络安全管理(防火墙入站规则创建)

任务14.1 Windows server 防火墙的管理 系统防火墙概述:无论哪一种操作系统都有自己的防火墙,无论是客户端OS还是服务器端的NOS都有防火墙。 winr-control----打开控制面板 上图是Windows客户端的防火墙,三个重点要关注的内容;网…

【Python】PyWebIO 初体验:用 Python 写网页

目录 前言1 使用方法1.1 安装 Pywebio1.2 输出内容1.3 输入内容 2 示例程序2.1 BMI 计算器2.2 Markdown 编辑器2.3 聊天室2.4 五子棋 前言 前两天正在逛 Github,偶然看到一个很有意思的项目:PyWebIo。 这是一个 Python 第三方库,可以只用 P…

四、CSS3

一、CSS3简介 1、CSS3概述 CSS3 是 CSS2 的升级版本,他在CSS2的基础上,新增了很多强大的新功能,从而解决一些实际面临的问题。 CSS在未来会按照模块化的方式去发展:https://www.w3.org/Style/CSS/current-work.html …

Loki 微服务模式组件介绍

目录 一、简介 二、架构图 三、组件介绍 Distributor(分发器) Ingester(存储器) Querier(查询器) Query Frontend(查询前端) Index Gateway(索引网关&#xff09…

上海亚商投顾:创业板指缩量下跌 多只高位股午后跌停

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 市场全天震荡调整,创业板指领跌,高位股开始出现退潮,建设工业、星光股份、…

libnanomsg详解

libnanomsg,或简称为nanomsg,是一个高性能的消息传递库,它为开发者提供了简单且高效的“可扩展协议”实现。以下是对libnanomsg的详细解析: 一、基本概述 项目地址:GitCode - 全球开发者的开源社区,开源代码托管平台 …

MySQL基础大全(看这一篇足够!!!)

文章目录 前言一、初识MySQL1.1 数据库基础1.2 数据库技术构成1.2.1 数据库系统1.2.2 SQL语言1.2.3 数据库访问接口 1.3 什么是MySQL 二、数据库的基本操作2.1 数据库创建和删除2.2 数据库存储引擎2.2.1 MySQL存储引擎简介2.2.2 InnoDB存储引擎2.2.3 MyISAM存储引擎2.2.4 存储引…

geoserver 瓦片地图,tomcat和nginx实现负载均衡

在地理信息系统(GIS)领域,GeoServer作为一个强大的开源服务器,能够发布各种地图服务,包括瓦片地图服务。为了提高服务的可用性和扩展性,结合Tomcat和Nginx实现负载均衡成为了一个有效的解决方案。本文将详细…

Spark执行计划解析后是如何触发执行的?

在前一篇Spark SQL 执行计划解析源码分析中,笔者分析了Spark SQL 执行计划的解析,很多文章甚至Spark相关的书籍在讲完执行计划解析之后就开始进入讲解Stage切分和调度Task执行,每个概念之间没有强烈的关联,因此这中间总感觉少了点…