使用RAGFlow搭建知识库

RAGFlow简介

RAGFlow‌是一种基于Retrieval-Augmented Generation(RAG)技术的开源引擎,旨在通过融合数据检索和生成式模型,提升大型语言模型(LLM)的回答准确性和效率。RAGFlow的核心思想是将大规模检索系统与先进的生成式模型相结合,从而在回答查询时既能利用海量数据的知识库,又能生成符合上下文语义的自然语言回复‌。

RAGFlow下载

RAGFlow github开源网址:https://github.com/infiniflow/ragflow

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

也可通过github下载压缩包

在这里插入图片描述
我们看下docker目录中的文件,主要关注圈中的3块

  • .env 主要是docker部署的时候一些变量
  • service_conf.yaml.template是服务启动使用的配置文件,需要和.env文件里的配置对应,特别是端口•
  • 需要注意的是,在mac操作系统下,会引入2

Docker拉取镜像

Docker window环境安装使用参考文档

在 D:\devSoftwareInstall\ragflow\ragflow-main目录下执行命令

docker compose -f docker/docker-compose.yml up -d

如果80端口可以正常使用的话,执行上面的命令也可以启动RAGFlow服务,也可用下面的命令进行启动。
在这里插入图片描述

启动RAGFlow

上一步拉取镜像之后,在相同目录下执行

docker logs -f ragflow-server

运行RAGFlow并进行配置

运行成功后的页面如下:
在这里插入图片描述

模型配置

在这里插入图片描述

查看配置拉取的模型

在这里插入图片描述
将本地模型配置到RAGFlow中

添加chat模型

在这里插入图片描述

添加embedding模型

在这里插入图片描述

系统模型设置

在这里插入图片描述

创建知识库

在这里插入图片描述
定义好知识库名称后会进入如下页面:
在这里插入图片描述
修改好语言,进行保存,便配置好知识库

数据集可以先不关联,后期在文件管理中进行管理
在这里插入图片描述

文件管理

在这里插入图片描述

文件夹管理中的新增文件,同数据集里面新增文件类似,但在文件管理中添加层次更加明确。

在这里插入图片描述

至此我们的知识库便搭建成功了,还有很多功能需要我们进一步的研究。

添加模型报错

在这里插入图片描述
出现这个问题是因为网络端口不通的原因,我们将RAGFlow部署到docker中,docker是运行在window下的容器中,导致端口无法进行访问。需要在系统环境中进行配置。
在这里插入图片描述
添加上11434这个端口,重新启动系统,再进行添加便可成功。

### RAGFlow知识库的实现与应用 RAGFlow是一种结合检索增强生成(Retrieval-Augmented Generation, RAG)技术的工作流框架,在处理复杂查询和提供精准信息方面具有显著优势。通过集成高质量的知识源,可以有效提升自然语言理解和生成任务的效果。 #### 构建RAGFlow知识库的关键要素 为了构建高效的RAGFlow知识库,需考虑以下几个核心组件: - **数据收集**:从多个渠道获取结构化或非结构化的文本资料作为初始语料库[^1]。 - **索引建立**:利用倒排索引或其他高效的数据结构来加速文档检索过程,确保能够快速定位相关内容片段。 - **向量表示学习**:采用预训练的语言模型如BERT等对输入问题及候选答案进行编码转换成稠密向量形式,便于后续相似度计算操作。 - **融合策略设计**:定义如何综合来自不同来源的信息片段以形成最终回复的方法论;这可能涉及到权重分配、置信度评估等多个维度考量。 #### 实现流程概述 以下是创建并运用RAGFlow知识库的一般步骤说明: 当接收到用户提出的特定领域内的询问时, - 首先调用搜索引擎API接口或者本地数据库查询服务,依据关键词匹配原则初步筛选一批潜在有用的资源链接列表; - 接着借助于预先搭建好的嵌入式表征空间完成上述候选项同实际提问间的距离测量工作,并挑选出最贴近目标意图的部分组成临时上下文环境; - 最终由对话管理模块负责统筹规划整个交流环节中的逻辑流转顺序以及输出格式调整事宜,从而给出既贴合事实又易于理解的回答内容给到终端使用者面前。 ```python import torch from transformers import BertTokenizer, BertModel def encode_text(text_list): tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') model = BertModel.from_pretrained('bert-base-uncased') inputs = tokenizer(text_list, return_tensors="pt", padding=True, truncation=True) outputs = model(**inputs) embeddings = outputs.last_hidden_state.mean(dim=1).detach().numpy() return embeddings ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值