Windows安装docker并部署RAGFlow


前言

在之前的博客中,笔者尝试利用ollama和anythingLLM建立了本地知识库,并在局域网内,提供接口给其他人使用。在本文中,笔者尝试利用另外一个工具RAGFlow,来搭建本地知识库。


一、微调技术和RAG技术是什么?

微调技术是一种针对特定任务对已有模型进行精细调整的技术,可以提升模型的性能.
检索增强生成技术(Retrieval Augmented Generation, RAG),可以通过从数据源中检索信息来辅助大语言模型(Large Language Model, LLM)生成答案。

1.RAG技术的原理

检索(Retrieval)
目标:从大量的文档集合中检索出与输入问题或上下文最相关的文档片段。这些文档可以是网页、书籍、知识库等中的文本内容。
方法:通常使用倒排索引、向量检索等技术。例如,将文档转换为向量表示,通过计算输入问题向量与文档向量之间的相似度(如余弦相似度),来找到最相关的文档片段。倒排索引则可以快速定位包含特定关键词的文档。
作用:为后续的生成步骤提供丰富的背景信息,避免生成模型仅依赖有限的上下文信息进行生成,从而提高生成内容的准确性和丰富性。
增强(Augmentation)
目标:将检索到的文档片段与原始输入问题或上下文进行融合,形成增强后的输入。这个过程可以是简单的拼接,也可以是更复杂的融合策略。
方法:一种常见的方法是将检索到的文档片段作为额外的上下文信息,与原始输入拼接在一起,形成一个更长的输入序列。也可以通过注意力机制等技术,让模型更关注检索到的重要信息。
作用:使生成模型能够利用外部知识,增强对问题的理解和回答的能力,避免生成模型“闭门造车”,仅依赖自身训练数据中的知识。
生成(Generation)
目标:基于增强后的输入,生成高质量的输出,如回答问题、生成文本等。
方法:通常使用预训练的生成模型,如Transformer架构的模型(如GPT系列、BART等)。这些模型在经过适当的微调后,能够根据增强后的输入生成自然、准确的输出。
作用:生成最终的文本结果,满足用户的任务需求,如回答问题、生成文章等。
在这里插入图片描述
Naive RAG如上图所示。来源:https://blog.youkuaiyun.com/wshzd/article/details/135254264

2.什么是Embedding?

在大型语言模型(LLM)中,Embedding是指将离散的文本数据(如单词、短语或句子)转换为连续的数值向量的过程。​这些向量捕捉了文本的语义和语法特征。具体而言,Embedding将高维度的离散数据映射到低维度的连续向量空间中。​在这个空间中,语义相似的文本片段会被映射到彼此接近的位置。​例如,表示“猫”和“狗”的向量在空间中可能更接近,因为它们在语义上相关联。

二、Windows本地部署RAGFlow

1.下载ollama,通过ollama本地运行DeepSeek模型

具体安装步骤可见于:文章

2.下载RAGFlow源代码和Docker,通过Docker来本地部署RAGFlow

Docker具体安装步骤可见于:文章链接
RAGFlow具体安装步骤可见于:视频链接

3.在RAGFlow中构建个人知识库并实现基于个人知识库的对话问答

RAGFlow中构建个人知识库,也可见于:视频链接

4.使用

首先在本地运行docker。在RAGFlow的官方文档[https://github.com/infiniflow/ragflow/blob/main/README_zh.md]中可以找到RAGFlow的打开方式:
在这里插入图片描述
在浏览器中输入localhost:80进入下面的界面。
在这里插入图片描述
登录后即可新建知识库和新建对话(详细步骤可见上面的视频链接 中的24分46秒):
在这里插入图片描述
在这里插入图片描述


总结

本文记录了Docker安装和RAGFlow安装教程资源,并尝试在RAGFlow中构建个人知识库。下一篇博客中,笔者将利用RAGFlow实现sql查询功能。

### 如何在 Windows 上使用 Docker 部署 RAGFlow 项目 #### 准备工作 为了成功部署 RAGFlow,在 Windows 系统上的准备工作至关重要。确保安装的是 Windows 10 或更高版本的操作系统,已正确配置好 Docker Desktop for Windows 和 PowerShell。 #### 安装与配置 Git 及克隆仓库 通过 Git 工具获取最新的 Ragflow 源码是必要的前置操作之一: ```bash git clone https://github.com/infiniflow/ragflow.git cd ragflow ``` 此过程会下载整个 Ragflow 开发库到本地文件夹内[^2]。 #### 启动 Docker Compose 运行容器 进入 `ragflow` 文件夹下的 `docker` 子目录,执行如下命令来启动后台运行所有的服务组件: ```bash cd ragflow/docker docker compose -f docker-compose.yml up -d ``` 这一步骤将会依据定义好的 `docker-compose.yml` 文件自动拉取镜像、创建网络以及启动各个微服务实例[^1]。 #### 调整 Linux 参数以满足 Elasticsearch 的需求 由于 Elasticsearch 对内存映射区域大小有特定的要求,因此需要调整 WSL 中的 Linux 发行版的相关参数。具体做法是在 CMD 终端里依次键入下列指令完成设置: ```batch wsl --list wsl -d docker-desktop sysctl -w vm.max_map_count=262144 ``` 上述命令首先列出了可用的 WSL 版本列表,接着切换至目标环境 (`docker-desktop`) ,最后修改了虚拟机的最大映射计数(`vm.max_map_count`) 来确保 ES 正常运作[^4]。 #### 使用 Python 加载 JSON 数据作为示例应用逻辑的一部分 对于某些功能模块而言,可能涉及到读取外部资源文件的情况。下面给出了一段简单的 Python 代码片段用于加载位于当前路径下指定位置的一个 JSON 文件的内容: ```python import os import json current_file_path = os.path.dirname(os.path.abspath(__file__)) json_file_path = os.path.join(current_file_path, "res/good_sch.json") with open(json_file_path, "r", encoding="utf-8") as file: GOOD_SCH = json.load(file) ``` 这段脚本展示了如何定位应用程序根目录将相对路径转换成绝对路径以便于跨平台兼容性处理;同时也体现了安全打开和解析 JSON 文档的方法[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值