跳转至

RAGflow构建大模型知识库

1 摘要

利用RAGflow构建个人知识库,为大模型提供上下文基础/专业知识,减轻Prompt的提词负担,提升大模型回答的准确性。

Tip

RAG(Retrieval-Augmented Generation,检索增强生成)是一种结合检索技术与生成模型的技术,旨在通过外部知识库为生成模型提供实时、准确的背景信息,从而提升大模型的输出质量和准确性。

2 安装Docker

参考这篇文章或者官方下载指南

3 安装RAGflow

可参考RAGflow的官网安装指南,简单总结如下。

3.1 拉取镜像仓库

Bash
git clone https://github.com/infiniflow/ragflow.git

3.2 修改.env文件

打开 ragflow/docker/.env 文件,注释掉第84行的代码,并将第87行的代码取消注释,如下所示。

Python
# The RAGFlow Docker image to download.
# Defaults to the v0.17.1-slim edition, which is the RAGFlow Docker image without embedding models.
# RAGFLOW_IMAGE=infiniflow/ragflow:v0.17.1-slim
#
# To download the RAGFlow Docker image with embedding models, uncomment the following line instead:
RAGFLOW_IMAGE=infiniflow/ragflow:v0.17.1

说明

84行中的slim是精简版的rag,这里注释掉精简版选择下载87行完整版的ragflow。完整版包含了embedding模型,可以将知识库的内容转化为大模型可以理解的编码模式。

3.3 下载docker镜像

注意

如果是Windows Docker Desktop,需要先启动Docker Desktop再执行下面的指令。

Bash
cd ragflow/docker
docker compose -f docker-compose.yml up -d

Tip

如果你遇到 Docker 镜像拉不下来的问题,可以在 docker/.env 文件内根据变量 RAGFLOW_IMAGE 的注释提示选择华为云或者阿里云的相应镜像。

  • 华为云镜像名:swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow
  • 阿里云镜像名:registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow

3.4 检查是否安装成功

输入以下指令:

Bash
docker logs -f ragflow-server

如果出现下面界面提示说明启动成功:

     ____   ___    ______ ______ __
    / __ \ /   |  / ____// ____// /____  _      __
   / /_/ // /| | / / __ / /_   / // __ \| | /| / /
  / _, _// ___ |/ /_/ // __/  / // /_/ /| |/ |/ /
 /_/ |_|/_/  |_|\____//_/    /_/ \____/ |__/|__/

 * Running on all addresses (0.0.0.0)

4 在RAGflow中配置知识库

打开链接。在浏览器输入127.0.0.1或者localhost也可进入RAGflow网站。

模型提供商中选择需要使用的Chat模型,可以是API,也可以是本地部署的模型。如果对隐私保护有需求,需要本地部署模型,请参考这篇文章

知识库中上传自己的知识文件,选择对应的Embedding模型,在聊天中新建对话模型,选择对应的知识库,即可实现基于知识库的对话。

因为RAGflow是基于Docker Compose运行的,一直启动会占用很多内存,相关的启动、关闭指令请参考Docker笔记

参考资料 1 2 3