Ragflow-plus本地部署和智能问答及报告编写应用测试
结合之前的Ragflow部署文章,最近对Ragflow-plus开源项目进行了研究测试,由于Ragflow-plus需要运行的资源比较多,因此开展了cpu和gpu两种模式部署,总体感觉Ragflow-plus比Ragflow在安全控制方面更加完整,拆分的粒度较细,比如用户、团队(用户组)、文件、知识库、个人和团队权限等等,只是设置起来比较繁琐,同时在应用构建方面,去掉了agent,加入了文档报告编写模版,在知识库文档拆分方面,由于加入了MinerU,较好的支持了图文问答,但是原来的10种模式只能通过后端API调用,这方面可能不同灵活。应该说Ragflow-plus是一个初步版本的agent,智能问答,科研报告的智能辅助编写助手。如下是部署和应用测试记录,供大家参考。
一、下载解压
地址:https://github.com/zstar1003/ragflow-plus
解压:tar -zxvf ragflow-plus-0.4.3.tar.gz
对应ragflow0.4.3版本。
后面完善
二、修改docker配置文件
记得增加docker的daemon.json文件,一般在/etc/docker目录下。其他配置参考之前文章
.env文件,采取默认即可,主要修改Minio的配置信息、管理员密码等,也可以不修改采用默认。具体如下
# 显示minio文件时的ip地址,如需局域网/公网访问,可修改为局域网/公网ip地址
MINIO_VISIT_HOST=x.x.x.x
MINIO_USER=rag_flow
MINIO_PASSWORD=147258
# 管理系统用户名和密码
MANAGEMENT_ADMIN_USERNAME=admin
MANAGEMENT_ADMIN_PASSWORD=123456
docker-compose.yml文件修改如下,前面是宿主机端口,后面是docker内部端口
services:ragflow:depends_on:mysql:condition: service_healthyimage: ${RAGFLOW_IMAGE}container_name: ragflowplus-serverports:- ${SVR_HTTP_PORT}:9380- 8060:8060 # 对应宿主机是8080,容器内部是8080端口。- 443:443 # 后台信息管理系统前端management-frontend:container_name: ragflowplus-management-frontendimage: ${RAGFLOWPLUS_MANAGEMENT_WEB_IMAGE}volumes:- ./nginx/management_nginx.conf:/etc/nginx/conf.d/default.confports:- "8888:8060" # 注意这里后面的8060要签名ragflow的端口一致。depends_on:- management-backend
默认端口是80,如果将端口修改为8060,记得修改nginx子目录下的两个文件(ragflow.conf和management_nginx.conf)对应的listen端口为前面的8060端口。
docker-compose.yml文件的volumes设置如下,前面是宿主机目录,后面是docker内部目录。
# 根目录都是/data/ragflow-plus/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 项目名称,确保容器和网络资源相互独立。目前下述两种方式都做了成功部署,gpu模式需要机器有显卡支持。
docker-compose -f docker-compose.yml -p ragflow up -d
#删除容器,没错修改前面两个配置文件后,要使其生效,必须执行删除,再进行拉取容器安装。
docker-compose -f docker-compose.yml -p ragflow down
#gpu模式,需要机器有显卡,安装命令如下。GPU模式下配置文件设置详见之前Raglfow文章的GPU配置,方法类似。
# 根目录都是/data/ragflow-plus/docker
docker-compose -f docker-compose_gpu.yml -p ragflow up -d
docker-compose -f docker-compose_gpu.yml -p ragflow down
四、查看确认服务器状态
docker logs -f ragflowplus-server
或者打开ragflow-logs目录下的日志文件进行查看。
五、系统管理相关功能
Ragflow-plus新加入了用户管理、团队管理、文件管理、知识库管理和会话管理等功能。相当于对知识库管理的权限进行的细化,比如张三和李四都属于一个团队,对于隶属团队的知识库可以共享使用,但对于各自所属的知识库只能自己使用,同时访问知识库的API-key也进行的单独分配,加强了安全控制,具体如下。
1.用户管理:实现用户的增删改查和密码修改等。如下图。
2.团队管理:默认每个用户构建自动创建一个自己独立团队,团队管理主要实现团队成员的管理,实现团队成员的增删工作。方便后续为团队授权用,相当于角色或用户组。
3.文件管理:实现文件的增删改查和下载功能等。主要为后续知识库提供原料。
4.知识库管理:实现知识库的增删改查、embedding模型配置,前面文件管理中已有文档添加到知识库,以及知识库的权限配置,比如创建人、知识库描述,知识库语言、知识库类型包括个人知识库和团队知识库等等。同时包括知识库中文档拆分功能,只有拆分解析过后的知识库才能用于问答应用或者报告编写应用等,知识库文档拆分功能详见下图。
5.会话管理:实现不同用户的历史聊天会话管理,快速查看用户对话的问答反馈等。详见下图。
六、聊天助手和报告编写
示例1.智能聊天助手
示例2.智能学术报告辅助阅读与编写