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

大模型实战一、Ollama+RagFlow 部署本地知识库

大模型实战一、Ollama+RagFlow 部署本地知识库

参考你提供的文章,这里是基于 Windows 系统通过 Docker 安装部署 RagFlow 和 Ollama 的本地化大模型知识库的详细教程。本文将指导你如何在 Windows 上使用 Docker 来设置 RagFlow 和 Ollama 环境,并安装通义千问2 7B大模型和支持中文的 Embedding 模型。

在 Windows 上通过 Docker 安装和部署 RagFlow 和 Ollama

1. 环境准备

确保你的系统满足以下条件:

  • Windows 10 或更高版本
  • Docker Desktop 已安装并启用 WSL 2 后端
1.1 安装 Docker Desktop

如果你还没有安装 Docker Desktop,请按照以下步骤进行安装:

  1. 下载 Docker Desktop:Docker Desktop 官网
  2. 运行安装程序,按照提示完成安装。
  3. 启用 WSL 2 后端:
    • 打开 Docker Desktop,进入 Settings > General,勾选 “Use the WSL 2 based engine”。
    • 确保已安装并启用了 WSL 2。可以参考 微软官方指南 来完成 WSL 2 的安装和启用。
1.2 启动 Docker Desktop

安装完成后,启动 Docker Desktop,确保 Docker 正常运行。可以通过命令行验证 Docker 版本来确认安装成功:

docker --version

2. 安装 RagFlow 和 Ollama

RagFlow 和 Ollama 是用于管理和部署大模型知识库的关键工具。

2.1 拉取 Ollama 镜像

Ollama 是一个专注于大语言模型管理的工具,使用 Docker 容器来运行模型。

  1. 在终端中运行以下命令来拉取 Ollama 镜像:

    docker pull ollama/ollama
    
  2. 运行 Ollama 容器:

    docker run --rm -it --name ollama-cli ollama/ollama:latest
    
2.2 安装 RagFlow

RagFlow 是一个用于构建和管理信息检索生成流的工具。我们可以使用 Docker 容器来安装 RagFlow。

  1. 拉取 RagFlow 镜像:

    docker pull ragflow/ragflow:latest
    
  2. 运行 RagFlow 容器:

    docker run --rm -it --name ragflow-cli ragflow/ragflow:latest
    

3. 安装通义千问2 7B 模型

通义千问2 7B 是一个中文语言模型,可以用于构建本地化知识库。

3.1 下载并安装通义千问2 7B 模型
  1. 使用 Ollama CLI 来下载通义千问2 7B 模型:

    ollama pull tongyi/qwen-7b-chat
    

    这将下载并准备模型以便于后续使用。

3.2 运行模型容器
  1. 使用 Ollama 运行通义千问2 7B 模型:

    docker run --rm -it --name qwen-7b-chat ollama/tongyi-qwen-7b-chat
    

    你可以通过指定模型参数和配置来调整模型的运行行为。

4. 设置支持中文的 Embedding 模型

为了使 RagFlow 能够处理中文文本并进行向量化,我们需要安装一个支持中文的 Embedding 模型,例如 m3e-base

4.1 安装 transformers 和 sentence-transformers 库
  1. 创建一个 Docker 容器来安装和运行 Python 及相关库:

    docker run --rm -it --name embedding-env python:3.8-slim bash
    
  2. 在容器内部安装所需的库:

    pip install transformers sentence-transformers
    
4.2 下载和加载 Embedding 模型

我们可以使用以下 Python 代码来加载 m3e-base 模型:

from sentence_transformers import SentenceTransformer# 加载中文嵌入模型
embedding_model = SentenceTransformer('moka-ai/m3e-base')

你可以将上述代码保存为脚本,并在 Docker 容器中执行它。

5. 整合 RagFlow 和 Ollama,构建本地知识库

现在,我们可以通过 RagFlow 和 Ollama 集成来构建一个本地化知识库系统。

5.1 初始化 RagFlow 项目

在 Docker 容器中初始化一个新的 RagFlow 项目:

docker exec -it ragflow-cli ragflow init my-local-knowledgebase
cd my-local-knowledgebase
5.2 添加中文 Embedding 和模型配置

编辑 config.yml 文件,配置 RagFlow 使用 Ollama 模型和中文嵌入:

embedding:model: "moka-ai/m3e-base"retriever:type: "local"index_path: "./index"model:type: "ollama"model_name: "tongyi/qwen-7b-chat"container_engine: "docker"
5.3 构建知识库索引

将你希望添加到知识库的中文文档或文本进行索引。假设我们有一些中文文档放在 data/ 目录中:

docker exec -it ragflow-cli ragflow index --data-dir ./data
5.4 运行知识库查询服务

使用 RagFlow 启动查询服务:

docker exec -it ragflow-cli ragflow serve

你现在可以通过 REST API 或命令行工具查询本地化的中文知识库。

6. 测试部署

通过命令行或 HTTP 请求测试你的本地化知识库:

curl -X POST http://localhost:8000/query -H "Content-Type: application/json" -d '{"query": "通义千问2的主要功能是什么?"}'

7. 完成部署和调优

根据实际需求进一步调优模型和检索配置,添加更多的自定义功能和业务逻辑。

总结

通过以上步骤,你已经成功在 Windows 系统上通过 Docker 部署了一个本地化的大模型知识库,结合 RagFlow 和 Ollama,安装了通义千问2 7B 模型和中文 Embedding 模型,构建了一个支持中文问答的系统。这种设置适用于企业内部知识管理、自动化客服、智能问答等场景。

相关文章:

大模型实战一、Ollama+RagFlow 部署本地知识库

大模型实战一、OllamaRagFlow 部署本地知识库 参考你提供的文章,这里是基于 Windows 系统通过 Docker 安装部署 RagFlow 和 Ollama 的本地化大模型知识库的详细教程。本文将指导你如何在 Windows 上使用 Docker 来设置 RagFlow 和 Ollama 环境,并安装通…...

系统工程建模MBSE

################################# ############# 片段一 ############## ################################# 下图采用“V”模式显示了集成的基于模型的系统/嵌入式软件开发流程Harmony。左侧描述了自顶向下的设计流程,而右侧显示了自底而上的从单元测试到最终系统验收测试…...

SVN的使用技巧

SVN(Subversion)是近年来崛起的版本管理工具,因为是免费的,所以用的人还是不少的。故做一些总结。 如果是新手,基本对SVN一点都不了解的话,建议去学习一下这个系统的教程,讲的也很详细Tortoise…...

使用 RabbitMQ 实现秒杀订单系统的异步消息处理

使用 RabbitMQ 实现秒杀订单系统的异步消息处理 在秒杀系统中,如何确保高并发环境下的订单处理稳定高效是个很大的挑战。为了解决这个问题,我们通常会引入消息队列,通过异步处理来削峰填谷。这篇文章将详细讲解如何使用 RabbitMQ 来设计一个…...

oracle19.3单机升级到Oracle19.22

1.补丁包、opatch准备 -rw-r--r-- 1 oracle oinstall 1817908992 9月 10 14:25 p35943157_190000_Linux-x86-64.zip -rw-r--r-- 1 oracle oinstall 133535622 9月 10 14:22 p6880880_190000_Linux-x86-64.zip2.解压补丁包和opatch包 先将原有opatch备份 [oraclecyptdg ~]$…...

半导体的发展--创世新产品介绍

文章目录 半导体的发展 半导体的发展 现代社会对于芯片的需求是越来越多了,90 年代我们能在收音机,电视机,DVD,上面看到芯片的身影,进入 2000 年,电脑,手机逐渐进入中国家庭,中国高…...

Ubuntu WSL使用技巧

0 Preface/Foreword 1 默认为root用户 当下载完成Ubuntu之后,首次登录,当完成初始化后,提示输入新的用户名时候,直接点击右上角的X按钮,再重新登陆,系统会默认使用root权限登录。...

4 个步骤带你快速上手 Einstein Copilot for Tableau

如果你的企业仍未部署或希望迁移至 Tableau Cloud,可考虑订阅 Tableau 高级套件。 自 Einstein Copilot for Tableau 发布以来,相信部分用户已经尝试过在 Tableau Cloud 中借助 AI 对话助理,快速解决数据分析中的问题,获得更准确的…...

C++ | Leetcode C++题解之第386题字典序排数

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<int> lexicalOrder(int n) {vector<int> ret(n);int number 1;for (int i 0; i < n; i) {ret[i] number;if (number * 10 < n) {number * 10;} else {while (number % 10 9 || numbe…...

vsftpd配置用户和密码让其他客户端连接

一、第一个主机:vsftpd下载及配置 前置准备: #卸载防火墙 yum -y remove firewalld #为了不让防火墙有影响&#xff0c;iptables配置也清空 iptables -F vim /etc/selinux/conf SELINUXdisabled #主要是把它改为disabled或者permissive SELINUXTYPEtargeted #重启linux让seli…...

Oracle使用序列后提示违反唯一约束---解决办法

1、问题原因分析 出现这个问题的原因是插入数据的时候&#xff0c;由于之前没有使用序列插入&#xff0c;而是直接插入了一个比当前序列nextval还大的值&#xff0c;即直接将id写死了。后面再使用序列插入的时候&#xff0c;如果序列小于该值的话&#xff0c;是可以正常插入的…...

乐观锁悲观锁

乐观锁 乐观锁的核心思想是“尽量不去锁定资源&#xff0c;而是尽量让线程并发地工作”&#xff0c;并在最后阶段检查冲突&#xff0c;只有在检测到冲突时才会采取纠正措施。乐观锁通常通过以下方式实现&#xff1a; 版本号控制&#xff1a;每次对共享资源进行修改时&#xf…...

Unity面试:什么是UnityEvent?

UnityEvent是Unity引擎中一种特殊的事件系统&#xff0c;属于Unity的事件和委托机制。它允许开发者在运行时定义和管理事件的响应&#xff0c;从而实现松耦合的事件处理。 以下是UnityEvent的一些主要特点和用途&#xff1a; 松耦合的设计&#xff1a;UnityEvent允许对象之间…...

食品安全管理员考试真题题库及答案

食品安全管理员考试真题题库及答案 95.对食品生产经营企业来说&#xff0c;实施ISO 22000是&#xff08;&#xff09;。 A.强制性的 B.无效的 C.自愿的 D.必须的 答案&#xff1a;C 96.CDC的意思是&#xff08;&#xff09;。 A.卫生监督所 B.疾病控制预防中心 C.卫生…...

【C++】—— vector 的模拟实现

【C】—— vector 的模拟实现 0 前言1 vector 的成员变量1.1 stl 库中的 vector 成员变量1.2 模拟实现 vector 成员变量 2 迭代器3 size、capacity、empty4 opreator[ ]5 reserve5.1 初版 reserve5.2 _finish 的处理5.3 深拷贝5.4 终版 6 push_back 与 pop_back7 打印函数7.1 初…...

MySQL 查询过慢的优化方法

1. 优化查询语句 问题&#xff1a;使用 SELECT * 会导致查询获取不必要的数据。 SELECT * FROM users WHERE age > 30;优化建议&#xff1a; 指定需要的列&#xff0c;这样可以减少数据传输的负担&#xff0c;提升查询速度。 SELECT name, email FROM users WHERE age &g…...

YoloV8修改分类(Classify)的前处理(记录)

修改原因 yolo自带的分类前处理对于长方形的数据不够友好&#xff0c;存在特征丢失等问题修改后虽然解决了这个问题但是局部特征也会丢失因为会下采样程度多于自带的&#xff0c;总之具体哪种好不同数据应该表现不同我的数据中大量长宽比很大的数据所以尝试修改自带的前处理&a…...

半监督学习能否帮助训练更好的模型?

数据科学家面临的最常见挑战之一是缺乏足够的标记数据来训练一个可靠且准确的模型。标记数据对于监督学习任务&#xff0c;如分类或回归至关重要。然而&#xff0c;在许多领域&#xff0c;获取标记数据既昂贵又耗时&#xff0c;有时甚至是不切实际的。另一方面&#xff0c;未标…...

VBA 获取字段标题代码轻松搞定

hi&#xff0c;大家好&#xff01; 最近又有一段时间没和大家唠嗑了&#xff0c;最近也没有时间给大家开直播&#xff0c;天天忙&#xff0c;但不知道在忙啥&#xff01;那今天我们来讲点啥好玩的呢&#xff1f; 今天是老师节&#xff0c;那就先祝各位老师节日快乐&#xff0…...

C++代码片段

for(int i1; i<shuliang; i) { int f100; cout<<a[i].name<<":"<<\n; cout<<"该舰艇现在距离基地"<<km<<"km&#xff0c;需要"<<km…...

Ollama REST API 深度解析:如何用 HTTP 接口调用模型

系列导读 你现在看到的是《Ollama 本地大模型管理实战:从部署到调优的完整指南》的第 4/10 篇,当前这篇会重点解决:让读者掌握通过 HTTP 接口编程调用 Ollama 模型的核心技能。 上一篇回顾:第 3 篇《模型加载与运行参数调优:从默认到高性能的实战配置》主要聚焦 教会读者…...

开源项目治理:ECC 社区贡献指南与协作模式

作者注&#xff1a;本文基于 ECC 项目的开源治理实践&#xff0c;帮助中国开发者理解如何参与大型开源项目并建立有效的协作流程。项目开源地址&#xff1a;github.com/affaan-m/ECC摘要 ECC&#xff08;Everything Claude Code&#xff09;是一个拥有 170 贡献者、28K Forks 的…...

Java应用CPU飙升到900%?这套排查套路让你10分钟定位根因

在这篇文章中&#xff0c;我将结合最近一次真实的生产事故&#xff0c;分享一套经过实战检验的CPU排查方法论。这不是教科书上那些”用jstack查看线程栈”的泛泛之谈&#xff0c;而是我们在72小时连续作战中总结出来的血泪经验。 一、告警响应该做什么&#xff1f;别急着重启&…...

OpenClaw API限速机制解析与工程化应对方案

1. 这不是服务器崩了&#xff0c;是OpenClaw在“礼貌地拒客”你刚把OpenClaw集成进自己的数据采集流程&#xff0c;跑通第一个API调用&#xff0c;返回200&#xff0c;心里一热&#xff1b;第二轮批量请求发出去&#xff0c;不到三秒&#xff0c;控制台炸出一行红字&#xff1a…...

XCOM 2模组管理器终极指南:为什么AML是你的最佳选择?

XCOM 2模组管理器终极指南&#xff1a;为什么AML是你的最佳选择&#xff1f; 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh…...

如何完整破解Cursor Pro限制:终极免费激活方案全解析

如何完整破解Cursor Pro限制&#xff1a;终极免费激活方案全解析 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your tria…...

【ElevenLabs广西话语音落地实战】:20年语音AI专家亲授3步绕过方言合成陷阱,97.3%自然度实测达标

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs广西话语音落地实战总览 ElevenLabs 官方尚未提供原生广西话&#xff08;粤语邕浔片/平话混合语境&#xff09;语音模型&#xff0c;但通过其 API 的自定义语音微调&#xff08;Fine-tuning&…...

如何免费使用ColabFold进行蛋白质结构预测:面向新手的终极指南

如何免费使用ColabFold进行蛋白质结构预测&#xff1a;面向新手的终极指南 【免费下载链接】ColabFold Making Protein folding accessible to all! 项目地址: https://gitcode.com/gh_mirrors/co/ColabFold ColabFold蛋白质结构预测是生物信息学领域的一项革命性技术&a…...

QQ音乐格式转换终极指南:如何3步将.qmc文件转为MP3/FLAC

QQ音乐格式转换终极指南&#xff1a;如何3步将.qmc文件转为MP3/FLAC 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 你是否曾在QQ音乐下载了心爱的歌曲&#xff0c;却发现它…...

Fusion360新手必看:这10个隐藏快捷键和技巧,让你建模效率翻倍

Fusion360效率革命&#xff1a;10个被低估的实战技巧与深度应用 第一次打开Fusion360时&#xff0c;我被它复杂的界面吓到了——工具栏密密麻麻的图标&#xff0c;嵌套多层的右键菜单&#xff0c;还有那些隐藏在角落里的功能选项。直到一位资深用户向我演示了如何用长按左键快…...