当前位置: 首页 > news >正文

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

相关文章:

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

一、RAGFlow简介 RAGFlow是一个基于对文档深入理解的开源RAG(Retrieval-augmented Generation,检索增强生成)引擎。 主要作用: 让用户创建自有知识库,根据设定的参数对知识库中的文件进行切块处理,用户向大…...

现代风格VUE3易支付用户控制中心

适用系统 彩虹易支付 技术栈 vitevue3elementuiplusphp 亮点 独立前端代码,扩展开发,不改动系统文件,不影响原版升级 支持功能订制 界面预览...

CentOS 7 上自动安装 Python 3.9 脚本

安装 在 CentOS 7 上安装 Python 3.9 可以通过编写一个 Shell 脚本来自动化这一过程。以下是一个示例脚本,它将帮助你在 CentOS 7 上安装 Python 3.9: #!/bin/bash# 脚本设置失败终止 set -e# 更新系统 # sudo yum update -y# 安装依赖 sudo yum insta…...

Spring(二)---基于注解的方式实现Bean管理和注入属性

目录 引入 什么是注解 Spring针对Bean管理中创建对象提供的注解 用注解的方式创建对象 ①:编写接口和实现类 ②:在需要管理的类上添加Component注解(上边四个都可以) ③:编写配置文件,重点是开启注解…...

采购管理系统的设计与实现【文档+源码】

目录 摘 要 Abstract 第一章 引言 1.1研究现状 1.2主要研究的目的及内容 1.3研究方法及设计思路 1.3.1 研究方法 1.3.2 设计思路 1.4.相关技术简介 1.4.1 JSP技术简介 1.4.2 Struts 框架 1.4.3 Hibernate数据访问框架 1.4.4 B/S模式分析 1.5 系统开发步骤 第二…...

Overleaf编译运行时间太长,国内如何支付升级Overleaf高级账户?

大家好,我是『扑扑特桔』 最近为了赶论文,我一直在 Overleaf 上忙活。 但是因为论文里面图片比较多,因此在某一次编译的时候,突然就提示编译超时。 主要是因为用的是免费版本的Overleaf,对编译时长有限制&#xff0c…...

UE5喷涂功能

许多FPS/TPS 游戏都有喷涂、涂鸦功能 其实原理很简单,就是利用了延迟贴花实现的 我们从网上随便找一张图 创建一个材质,材质域选择延迟贴花 混合模式选择半透明,自发光强度可以看感觉调整 材质做好之后编译保存,新建一个Actor…...

Unity局部和世界坐标系相互转换的实现原理

注:本篇是基于唐老师的学习视频做的一些理论实践,需要提前知道一些线性代数的基础知识,原视频链接: 8.数学基础知识学习说明_哔哩哔哩_bilibili 前期准备: 知识点①: Unity中需要遵守的设定:…...

MySQL通用语法 -DDL、DML、DQL、DCL

SQL 全称 Structured Query Language,结构化查询语言。操作关系型数据库的编程语言,定义了 一套操作关系型数据库统一标准 。 SQL通用语法 MySQL语言的通用语法。 SQL语句可以单行或多行书写,以分号结尾。SQL语句可以使用空格/缩进来增强…...

C# 6.0 连接elasticsearch数据库

在 C# 6.0 中连接 Elasticsearch 数据库,您可以使用官方的 Elasticsearch 客户端库 NEST。NEST 是一个高性能的 .NET 客户端,用于与 Elasticsearch 进行交互。以下是一个详细的步骤指南,帮助您在 C# 6.0 项目中连接和操作 Elasticsearch。 1. 安装 NEST 包 首先,您需要在您…...

占个坑:利用工作以外的时间,用numpy实现MLP-手写识别

背景 随着近半年的正式工作,一直在做的都是模型后处理相关的,逐渐意识到技术的自我迭代陷入了瓶颈。组里都是搞模型的,对于缺少模型背景的我,很难深刻理解同事将模型和业务结合时好的idear,这使得我难以掌握组里最核心…...

抽象之诗:C++模板的灵魂与边界

引言 在计算机科学的浩瀚长河中,C模板如同一颗璀璨的星辰,以其独特的泛型编程方式为程序设计注入了灵魂。它是抽象的艺术,是类型的舞蹈,是效率与灵活性的交响乐。模板不仅是一种技术工具,更是一种哲学思考&#xff0c…...

后端统一接口返回状态【初步模板】

后端统一接口返回状态【模板】 文章目录 后端统一接口返回状态【模板】1 .Result类编写2 .Constants类编写3 .更改Controller层下的类return格式 开发过程中,每个接口的返回格式设计都是一样的,这样可以大大提高开发效率。 项目结构如下图:分…...

呼入机器人:24小时客户服务的未来趋势

呼入机器人:24小时客户服务的未来趋势 作者:开源大模型智能呼叫中心系统FreeAICC,Github:https://github.com/FreeIPCC/FreeAICC 在当今快节奏的商业环境中,客户服务已成为企业竞争的核心要素之一。随着人工智能技术…...

whisper.cpp: PC端测试 -- 电脑端部署音频大模型

whisper.cpp: PC端测试 1.环境需要2.构建项目3.PC测试 1.环境需要 以下是经实验验证可行的环境参考,也可尝试其他版本。 (1)PC:Ubuntu 22.04.4 (2)软件环境:如下表所示 工具版本安装Anacond…...

WPF ControlTemplate 控件模板

区别于 DataTemplate 数据模板,ControlTemplate 是控件模板,是为自定义控件的 Template 属性服务的,Template 属性类型就是 ControlTemplate。 演示, 自定义一个控件 MyControl,包含一个字符串类型的依赖属性。 pub…...

序列化和反序列化(一)

因为通过这段时间的学习,发现,序列化和反序列化的考点和漏洞在平时遇到的还是比较多的,而且自己也没有特别去学习过这个知识点,所以在这里写一篇关于这里序列化和反序列话的博客,废话就停止在这里了。 在介绍具体的序列…...

Kubeadm+Containerd部署k8s(v1.28.2)集群(非高可用版)

Kubeadm+Containerd部署k8s(v1.28.2)集群(非高可用版) 文章目录 Kubeadm+Containerd部署k8s(v1.28.2)集群(非高可用版)一.环境准备1.服务器准备2.环境配置3.设置主机名4.修改国内镜像源地址5.配置时间同步6.配置内核转发及网桥过滤二.容器运行时Containerd安装(所有节点)…...

取子串(指针)

#include <stdio.h> #include <string.h>char* substr(char *s, int startloc, int len) {static char result[51]; // 定义一个足够大的静态数组来存储结果static char result1[] {N,U,L,L,\0};int i, j;// 检查startloc是否在字符串的范围内if (startloc < 1…...

Linux系列之如何更换Centos yum源?

系列博客专栏&#xff1a; JVM系列博客专栏SpringBoot系列博客 环境 Centos7Xshell7 问题描述 最近安装了一个虚拟机&#xff0c;准备用来学习&#xff0c;不过使用yum命令安装一些软件&#xff0c;不过使用这个命令时候&#xff0c;提示 Cannot find a valid baseurl fo…...

如何快速配置Zotero插件:终极管理解决方案与插件市场指南

如何快速配置Zotero插件&#xff1a;终极管理解决方案与插件市场指南 【免费下载链接】zotero-addons Zotero Add-on Market | Zotero插件市场 | Browsing, installing, and reviewing plugins within Zotero 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-addons …...

告别printf调试:手把手教你用STM32F411的USART6重定向标准输入输出

STM32F411串口调试革命&#xff1a;USART6重定向实战指南 在嵌入式开发中&#xff0c;调试信息的输出是开发者最依赖的工具之一。传统调试方式往往需要复杂的硬件调试器或频繁烧录程序&#xff0c;效率低下且不够灵活。本文将带你探索一种高效、便捷的调试方案——通过STM32F4…...

intv_ai_mk11开源镜像深度解析:为何选择Llama架构+7B规模+Q4量化黄金组合

intv_ai_mk11开源镜像深度解析&#xff1a;为何选择Llama架构7B规模Q4量化黄金组合 1. 为什么选择Llama架构7B规模Q4量化组合 在构建AI对话机器人时&#xff0c;模型架构、参数规模和量化方式的选择直接影响最终效果和部署成本。intv_ai_mk11采用的Llama架构7B参数Q4量化组合…...

告别默认丑标签!手把手教你用QGIS 3.28自定义地图标注(附Python脚本)

告别默认丑标签&#xff01;手把手教你用QGIS 3.28自定义地图标注&#xff08;附Python脚本&#xff09; 地图可视化不仅是数据的呈现&#xff0c;更是信息传达的艺术。当你精心准备的地理数据因为默认标签样式而显得平庸时&#xff0c;那种挫败感我深有体会——文字太小看不清…...

claude-code 深度解析:它为什么走红,以及值不值得开发者投入经理

# 从工具到方法论&#xff1a;claude-code 为什么值得开发者认真评估> 今日新增 ⭐ 10749 Stars | 总计 ⭐ 102012 Stars | 仓库&#xff1a;anthropics/claude-code## 一句话定位从命名和描述看&#xff0c;这不是单点功能脚本&#xff0c;而更像围绕 agent 工作流组织的开…...

OpenClaw私人健身教练:Qwen2.5-VL-7B分析运动视频与生成计划

OpenClaw私人健身教练&#xff1a;Qwen2.5-VL-7B分析运动视频与生成计划 1. 为什么需要AI健身教练 去年夏天&#xff0c;我在健身房遇到一个尴尬场景&#xff1a;深蹲时被教练提醒"膝盖内扣"已经持续了三周却毫无察觉。这种滞后反馈让我开始思考——能否用AI实现实…...

ClassGraph构建时扫描:Android注解处理的完整解决方案

ClassGraph构建时扫描&#xff1a;Android注解处理的完整解决方案 【免费下载链接】classgraph An uber-fast parallelized Java classpath scanner and module scanner. 项目地址: https://gitcode.com/gh_mirrors/cl/classgraph ClassGraph是一个超高速并行化的Java类…...

如何用Lingui.js在SSG项目中实现完美国际化:终极指南

如何用Lingui.js在SSG项目中实现完美国际化&#xff1a;终极指南 【免费下载链接】js-lingui &#x1f30d; &#x1f4d6; A readable, automated, and optimized (2 kb) internationalization for JavaScript 项目地址: https://gitcode.com/gh_mirrors/js/js-lingui …...

SecGPT-14B模型蒸馏:打造轻量级OpenClaw安全助手

SecGPT-14B模型蒸馏&#xff1a;打造轻量级OpenClaw安全助手 1. 为什么需要轻量级安全助手&#xff1f; 去年在为一个金融客户部署自动化安全监控系统时&#xff0c;我遇到了一个典型困境&#xff1a;他们的边缘设备只能提供4GB内存和2核CPU的算力&#xff0c;但SecGPT-14B这…...

golang.org/x/net WebSocket开发完全手册:实现实时双向通信

golang.org/x/net WebSocket开发完全手册&#xff1a;实现实时双向通信 【免费下载链接】net [mirror] Go supplementary network libraries 项目地址: https://gitcode.com/gh_mirrors/ne/net 在现代Web应用开发中&#xff0c;实时双向通信已成为提升用户体验的关键技术…...