当前位置: 首页 > 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 模型,构建了一个支持中文问答的系统。这种设置适用于企业内部知识管理、自动化客服、智能问答等场景。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • yolov5 +gui界面+单目测距 实现对图片视频摄像头的测距
  • 屏幕空间UV 警戒线
  • 氚云,低代码领风者如何破解行业的“中式焦虑”?
  • 首个大模型供应链安全领域的国际标准,WDTA《大模型供应链安全要求》标准解读
  • 【复盘】近期博客内容升级
  • [Linux]:文件(下)
  • 网络编程9.10
  • 爆改YOLOv8|利用yolov9的ADown改进卷积Conv-轻量化
  • 速盾:高防 cdn 分布式防御攻击?
  • JVM合集
  • 【AI学习】AI科普:专有名词介绍
  • C程序设计(7.0安徽专升本函数)
  • uniapp 小程序样式兼容
  • 小型公司机房运维如何管理
  • 测试人员必备的linux命令(已分组)
  • Apache Pulsar 2.1 重磅发布
  • avalon2.2的VM生成过程
  • git 常用命令
  • gulp 教程
  • js ES6 求数组的交集,并集,还有差集
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • mongodb--安装和初步使用教程
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • nodejs调试方法
  • NSTimer学习笔记
  • React系列之 Redux 架构模式
  • SOFAMosn配置模型
  • Vue2.0 实现互斥
  • WebSocket使用
  • 多线程事务回滚
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 容器镜像
  • #如何使用 Qt 5.6 在 Android 上启用 NFC
  • #图像处理
  • (1)bark-ml
  • (C11) 泛型表达式
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (void) (_x == _y)的作用
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .net framework 4.0中如何 输出 form 的name属性。
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .NET开源项目介绍及资源推荐:数据持久层
  • .NET框架类在ASP.NET中的使用(2) ——QA