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

Ragflow本地部署和基于知识库的智能问答测试

        最近在基于dify做agent过程中,基于dify的知识库构建、图文拆分方式相对较少,但Ragflow的拆分方式有很多种(如General、Book、Table、Q&A等十余种),相对支持的应用场景更多一些,因此就对Ragflow进行的部署研究和测试。总的来说,Ragflow类似于dify,但没有dify强大,性能也弱一下,但在知识库构建方面比较全面,支撑很多种拆分方式,支持多种API接口,可以作为内部知识库后端的构建工具,但对应图文预览方面还需要自己做大量开发;同时也可以构建聊天、Agent和workflow等应用,但总体友好性和跟踪调试方面差一些,推荐只用来做后端的知识库构建、存储和管理,然后通过dify引入外部知识库,但性能要差一些。下面是具体部署和测试过程记录,供大家参考。

一、下载安装

下载ragflow,地址:https://github.com/infiniflow/ragflow
下载nvidia-container-runtime,地址:https://github.com/NVIDIA/nvidia-container-runtime
解压:tar -zxvf ragflow-0.19.0.tar.gz
nvidia-container-runtime利用rpm安装即可。

二、修改配置文件

.env文件,要打开国内访问地址,示例如下。

# 关闭默认的RAGFLOW_IMAGE,打开如下这一行(在113行)
# - For the `nightly` edition, uncomment either of the following:
RAGFLOW_IMAGE=swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow:v0.19.0

docker-compose.yml文件,前面是宿主机端口,后面是docker内部端口

ports:- ${SVR_HTTP_PORT}:9380- 8000:8000

默认端口是80,如果将端口修改为8000,记得修改volumes下的nginx中端口,主要是ragflow.conf,记得将80改为8000即可,重启该容器,或者在安装前更改,再往下执行。根目录都是/data/ragflow-0.19.0/docker,前面是宿主机目录,后面是docker内部目录。

# docker-compose.yml文件的volumes内容,前面是宿主机目录,后面是docker内部目录。
volumes:- ./ragflow-logs:/ragflow/logs- ./nginx/ragflow.conf:/etc/nginx/conf.d/ragflow.conf- ./nginx/proxy.conf:/etc/nginx/proxy.conf- ./nginx/nginx.conf:/etc/nginx/nginx.conf
三、拉取容器进行安装

使用 -p 参数为每个项目指定独特的 Docker Compose 项目名称,确保容器和网络资源相互独立。
docker-compose -f docker-compose.yml -p ragflow up -d
#删除容器,没错修改前面两个配置文件后,要使其生效,必须执行删除,在进行拉取安装。
docker-compose -f docker-compose.yml -p ragflow down
#GPU模式,需要机器有显卡。 
docker-compose -f docker-compose_gpu.yml -p ragflow up -d
#删除容器,没错修改前面两个配置文件后,要使其生效,必须执行删除,在进行拉取安装。
docker-compose -f docker-compose_gpu.yml -p ragflow down
注意:GPU模式下的daemon.json配置如下(一般在/etc/docker目录下),非GPU模式记得去掉daemon.json中的runtimes配置。

# daemon.json文件内容
{ "runtimes": {"nvidia": {"path": "/usr/bin/nvidia-container-runtime","runtimeArgs": []}},  "registry-mirrors":["https://docker.m.daocloud.io","https://docker.imgdb.de","https://docker-0.unsee.tech/","https://hub-mirror.c.163.com/","https://hub.rat.dev/","https://mirror.azure.cn/","https://docker.hlmirror.com","https://docker.1ms.run","https://func.ink","https://lispy.org","https://docker.xiaogenban1993.com","https://mirror.ccs.tencentyun.com","https://registry.docker-cn.com"],"iptables": false
}

这里的path设置需要事先安装nvidia-container-runtime,具体见第一部分的下载安装,一般默认安装即可。

四、查看确认服务状态

docker logs -f ragflow-server
或者打开ragflow-logs目录下的日志文件进行查看。

五、其他系统访问Ragflow知识库地址

这里的api-key是在ragflow的api功能中生成,见下图。这里的id就是ragflow中创建的知识库id,打开每个知识库,在地址栏中显示的id=b81ee15e4a8911f08ad10242ac130006,等号后面的就是知识库id。详见下图。

api-key:ragflow-ExxxxxxxxxxxxxxxMm
url:http://x.x.x.x/api/v1/dify
知识库 id:b81ee15e4a8911f08ad10242ac130006

六、dify中如何引入Ragflow中构建的知识库

1.添加外部知识库API连接,名称随便定义,endpoint填写上一步的url,api-key也对应上一步api-key。如下图。

2.连接外部知识库,在创建知识库左下角点击连接外部知识库,填写示例详见下图,这里的外部知识库id就是第五步中的查询到的知识库id。这里是一对一的,dify中的一个外部知识库引用只能对应ragflow中的一个知识库。如下图。

七、基于Ragflow的智能问答测试

Ragflow部署完毕后,通过知识库功能构建一个数字孪生知识库并添加文件后,直接在Ragflow的聊天应用中对该知识库进行智能问答测试,具体问答图如下。

相关文章:

  • 机器学习在智能电网中的应用:负荷预测与能源管理
  • 【鸿蒙中级】
  • 面试复盘6.0
  • 「Java案例」输出24个希腊字母
  • 深入理解 Dubbo 负载均衡:原理、源码与实践
  • Redis Cluster Gossip 协议
  • 指针篇(6)- sizeof和strlen,数组和指针笔试题
  • 免费SSL证书一键申请与自动续期
  • MySQL-复合查询
  • 暴力风扇方案介绍
  • AlpineLinux安装部署MariaDB
  • 微信小程序接入腾讯云短信验证码流程
  • 用户行为序列建模(篇十)-【加州大学圣地亚哥分校】SASRec
  • 在Linux系统中部署Java项目
  • Unity Catalog 三大升级:Data+AI 时代的统一治理再进化
  • Re:从0开始的 空闲磁盘块管理(考研向)
  • HybridCLR热更新实例项目及改造流程
  • 人工智能之数学基础:如何判断正定矩阵和负定矩阵?
  • JVM基础--JVM的组成
  • Transformer超详细全解!含代码实战