当前位置: 首页 > 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的聊天应用中对该知识库进行智能问答测试,具体问答图如下。

http://www.lqws.cn/news/573049.html

相关文章:

  • LVS+Keepalived高可用集群搭建
  • Re:从0开始的 空闲磁盘块管理(考研向)
  • TCP/IP模型、OSI模型与C# Socket编程详解
  • SpringSecurity6-oauth2-三方gitee授权-授权码模式
  • JavaScript中的回调函数详解
  • 【鸿蒙中级】
  • 微信小程序接入腾讯云短信验证码流程
  • window11 本地安装 MySQL8.0
  • 【QT】第一个QT程序 || 对象树 || 编码时的注意事项
  • 运维基础-MYSQL数据库-笔记
  • stm32 USART串口协议与外设(程序)——江协教程踩坑经验分享
  • Java面试宝典:基础六
  • MCU、LIN收发器与LIN总线是如何进行交互的?
  • stm32之测量周期
  • WPF学习笔记(13)列表框控件ListBox与数据模板
  • 开发中bs,cs都是什么意思
  • 视频跳帧播放器设计与实现
  • [Linux] PXE
  • HttpServletRequest
  • OpenCV 4.10.0 移植
  • Spring Cloud:服务监控与追踪的高级实践
  • C++ 第四阶段 STL 容器 - 第一讲:详解 std::vector
  • 5 c++核心——文件操作
  • restful规范
  • Oauth2 自定义设置token过期时间
  • HarmonyOS 公共事件机制介绍以及多进程之间的通信实现(9000字详解)
  • 【网络】:DNS协议、ICMP协议、NAT技术
  • MongoDB06 - MongoDB 地理空间
  • vllm部署私有智谱大模型
  • 疏通经脉: Bridge 联通逻辑层和渲染层