【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
#运行ragflowdocker 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:7bollama 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、问答测试(我这里使用的是医疗数据,如我没有进行数据训练,测试将无结果)
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C/C++圣诞树

系列文章 序号直达链接1C/C爱心代码2C/C跳动的爱心3C/C李峋同款跳动的爱心代码4C/C满屏飘字表白代码5C/C大雪纷飞代码6C/C烟花代码7C/C黑客帝国同款字母雨8C/C樱花树代码9C/C奥特曼代码10C/C精美圣诞树11C/C俄罗斯方块12C/C贪吃蛇13C/C孤单又灿烂的神-鬼怪14C/C闪烁的爱心15C…

投标心态:如何在“标海战术”中保持清醒的头脑?

在竞争激烈的市场环境下,“标海战术”——即大规模参与投标——已经成为许多企业争取市场份额的重要策略。然而,盲目追求投标数量可能导致资源浪费、团队疲劳以及战略目标的模糊化。在这种高强度的竞争模式中,如何保持清醒的头脑,…

研发效能DevOps: Vite 使用 Element Plus

目录 一、实验 1.环境 2.初始化前端项目 3.安装 vue-route 4.安装 pinia 5.安装 axios 6.安装 Element Plus 7.gitee创建工程 8. 配置路由映射 9.Vite 使用 Element Plus 二、问题 1.README.md 文档推送到gitee未自动换行 2.访问login页面显示空白 3.表单输入账户…

NVIDIA DeepStream插件之Gst-nvtracker

NVIDIA DeepStream插件之Gst-nvtracker 1. 源由2. 基础知识3. Gst-nvtracker插件3.1 插件参数3.2 插件API接口 4. 分析问题5. 总结6. 参考资料 1. 源由 这篇的主要目的是稍微吐槽下NVIDIA的设计,当然其实他们做的还是不错的(从系统架构设计角度看&#…

进程内存转储工具|内存镜像提取-取证工具

1.内存转储,内存转储(Memory Dump)是将计算机的物理内存(RAM)内容复制到一个文件中的过程,这个文件通常被称为“内存转储文件”或“核心转储文件”(Core Dump),内存转储的主要目的是…

Lua语言入门 - Lua 面向对象

Lua 面向对象 面向对象编程(Object Oriented Programming,OOP)是一种非常流行的计算机编程架构,通过创建和操作对象来设计应用程序。 以下几种编程语言都支持面向对象编程: CJavaObjective-CSmalltalkC#Ruby Lua 是…

Pyqt6在lineEdit中输入文件名称并创建或删除JSON文件

1、创建JSON文件 代码 import osdef addModulekeyWordFile(self):if "" ! self.lineEdit_module.text():moduleFile self.lineEdit_module.text() .jsonelse:self.toolLogPrinting(请输入模块名称)returnfilePath modulekeyWordFileDir moduleFileif os.path.e…

数据结构--堆的向上调整和向下调整

文章目录 1.完全二叉树2.堆向上调整3.堆向下调整4.测试代码 1.完全二叉树 下面的这个就是对于我们的完全二叉树的这个逻辑结构和物理结构的说明: 逻辑结构就是我们自己认为的进行购想出来的; 但是这个物理结构却是我们的这个数据结构在内存里面的真是…

智能挂号系统设计典范:SSM 结合 Vue 在医院的应用实现

摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了医院预约挂号系统的开发全过程。通过分析医院预约挂号系统管理的不足,创建了一个计算机管理医院预约挂号系统的方案。文章介绍了医院预约挂号系统的系…

Transform组件的用法

文章目录 1. 概念介绍2. 使用方法3. 示例代码我们在上一章回中介绍了Checkbox Widget相关的内容,本章回中将介绍Transform Widget.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在这里说的Transform是一种容器类widget,它和Container组件类似。它可以包含其它的组件…

go面试问题

1 Go的内存逃逸如何分析 go build -gcflags-m main_pointer.go 2 http状态码 300 请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择 301 永久移动。请求的资源已被永久的移动到新U…

TouchGFX移植(5)增加触屏驱动

一)增加驱动代码gt9xxx.c和ctiic.c到工程中的BSP目录下: 二)更改触摸文件STM32TouchController.cpp 1)在STM32TouchController.cpp文件中增加: #include “gt9xxx.h” 2)增加gt9xxx_init(); void STM32TouchControlle…

资源型数字化平台该如何顺利运营?

一、引言 随着信息技术的迅猛发展,资源型数字化平台在各领域的重要性日益凸显。此类平台整合各类资源,以数字化手段提升资源利用效率与价值,但确保其顺利运营面临诸多挑战。 二、资源型数字化平台特点 资源型数字化平台具有资源整合性&…

GitLab的安装和使用

1.GitLab 环境说明 系统版本 CentOS 7.2 x86_64 软件版本 gitlab-ce-10.8.4 GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能…

Leetcode 串联所有单词的子串

算法思想(中文解释) 这道题目要求我们在字符串 s 中找到所有子串,这些子串是字符串数组 words 中所有单词的串联,并且每个单词只能使用一次,且顺序可以任意。下面是代码的算法思想: 1. 核心思路 分解问题…

解析在OceanBase创建分区的常见问题|OceanBase 用户问题精粹

在《分区策略和管理分区计划的实践方案》这篇文章中,我们介绍了在ODC中制定分区策略及有效管理分区计划的经验。有不少用户在该帖下提出了使用中的问题,其中一个关于创建分区的限制条件的问题,也是很多用户遭遇的老问题。因此本文以其为切入&…

有哪些免费的 ERP 软件可供选择?哪些 ERP 软件使用体验较好?

想找个 “免费” 的 ERP 软件? 咱得知道,ERP 那可是涉及财务、人力、供应链、采购、销售等好多方面的重要企业软件。功能这么全,能免费才怪呢!真要是有免费的,早就火遍大江南北,说不定把市场都垄断了&…

centos-stream9系统安装docker

如果之前安装过docker需要删除之前的。 sudo dnf -y remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine 安装yum-utils工具: dnf -y install yum-utils dnf-plugin…

了解cuda的统一内存

1. CUDA 6中的统一内存 在CUDA 6中,从Kepler GPU架构(计算能力3.0或更高)开始,在64位Windows 7、8和Linux操作系统(内核2.6.18)上开始支持统一内存. 从CUDA 6开始,NVIDIA推出了CUDA平台历史上…

Pytorch | 从零构建MobileNet对CIFAR10进行分类

Pytorch | 从零构建MobileNet对CIFAR10进行分类 CIFAR10数据集MobileNet设计理念网络结构技术优势应用领域 MobileNet结构代码详解结构代码代码详解DepthwiseSeparableConv 类初始化方法前向传播 forward 方法 MobileNet 类初始化方法前向传播 forward 方法 训练过程和测试结果…