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

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


http://www.kler.cn/a/298804.html

相关文章:

  • 瑞吉外卖项目学习笔记(九)套餐列表分页查询、新增套餐、图片上传和下载
  • (echarts)数据地图散点类型根据条件设置不同的标记图片
  • 系统架构师考试 常错题记录 01
  • 京东科技基于 Apache SeaTunnel 复杂场景适配 #数据集成
  • Vue.js前端框架教程11:Vue监听器watch和watchEffect
  • 【Linux】ChatGLM-4-9B模型之All Tools
  • 三.海量数据实时分析-FlinkCDC实现Mysql数据同步到Doris
  • 数学建模笔记——熵权法(客观赋权法)
  • 【开源免费】基于SpringBoot+Vue.JS图书个性化推荐系统(JAVA毕业设计)
  • STM32的CRC校验(基于HAL库)
  • k8s 存储(PV、PVC、SC、本地存储、NFS)
  • 观趋势 谋发展 2024 SSHT上海智能家居展有哪些创新呈现?
  • 元学习之模型诊断元学习(model-agnosticmeta-learning,MAML)
  • SLT—List详解
  • 【iOS】暑期学习总结
  • python求两条曲线的边界线
  • 什么是过压保护?常见的过压保护元器件有哪些?
  • 零基础国产GD32单片机编程入门(十三)单片机IAP(在应用编程)详解及实战源码
  • 基于MicroPython的ESP8266控制舵机的设计方案
  • 继承QWidget样式表无效的
  • Learn ComputeShader 10 HUD Overlay
  • Android13 Hotseat客制化--去掉hotseat(热座)
  • tushare库获取金融股票数据
  • 如何使用Filter(过滤器一)
  • discuz论坛3.4 截图粘贴图片发帖后显示不正常问题
  • Java 利用ASM读取变量值(Field value)问题研究