大模型实战一、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 版本来确认安装成功:

powershell 复制代码
docker --version

2. 安装 RagFlow 和 Ollama

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

2.1 拉取 Ollama 镜像

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

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

    bash 复制代码
    docker pull ollama/ollama
  2. 运行 Ollama 容器:

    bash 复制代码
    docker run --rm -it --name ollama-cli ollama/ollama:latest
2.2 安装 RagFlow

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

  1. 拉取 RagFlow 镜像:

    bash 复制代码
    docker pull ragflow/ragflow:latest
  2. 运行 RagFlow 容器:

    bash 复制代码
    docker run --rm -it --name ragflow-cli ragflow/ragflow:latest

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

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

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

    bash 复制代码
    ollama pull tongyi/qwen-7b-chat

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

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

    bash 复制代码
    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 及相关库:

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

    bash 复制代码
    pip install transformers sentence-transformers
4.2 下载和加载 Embedding 模型

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

python 复制代码
from sentence_transformers import SentenceTransformer

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

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

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

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

5.1 初始化 RagFlow 项目

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

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

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

yaml 复制代码
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/ 目录中:

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

使用 RagFlow 启动查询服务:

bash 复制代码
docker exec -it ragflow-cli ragflow serve

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

6. 测试部署

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

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

7. 完成部署和调优

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

总结

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

相关推荐
loongloongz31 分钟前
联合条件概率 以及在语言模型中的应用
人工智能·语言模型·自然语言处理·概率论
sp_fyf_202436 分钟前
计算机人工智能前沿进展-大语言模型方向-2024-09-18
人工智能·语言模型·自然语言处理
sp_fyf_202437 分钟前
计算机人工智能前沿进展-大语言模型方向-2024-09-14
人工智能·语言模型·自然语言处理
ybdesire42 分钟前
nanoGPT用红楼梦数据从头训练babyGPT-12.32M实现任意问答
人工智能·深度学习·语言模型
Android Blog4 小时前
大语言模型超参数调优:开启 AI 潜能的钥匙
人工智能·语言模型·自然语言处理
逐梦苍穹8 小时前
速通LLaMA2:《Llama 2: Open Foundation and Fine-Tuned Chat Models》全文解读
论文阅读·人工智能·语言模型·llama·论文笔记·llama2
风之飘渺1 天前
Qwen2-VL的微调及量化
人工智能·语言模型
智能涌现1 天前
利基网站收入报告(更新至十月)
人工智能·语言模型·自然语言处理·chatgpt
AI in Bio1 天前
预训练蛋白质语言模型ESM-2保姆级使用教程
人工智能·语言模型
sp_fyf_20241 天前
计算机人工智能前沿进展-大语言模型方向-2024-09-17
人工智能·语言模型·自然语言处理