RAGFlow安装,dify对接RAGFlow

一、概述

RAGFlow是一种融合了数据检索与生成式模型的新型系统架构,其核心思想在于将大规模检索系统与先进的生成式模型(如Transformer、GPT系列)相结合,从而在回答查询时既能利用海量数据的知识库,又能生成符合上下文语义的自然语言回复。该系统主要包含两个关键模块:数据检索模块和生成模块。数据检索模块负责在海量数据中快速定位相关信息,而生成模块则基于检索结果生成高质量的回答或文本内容。

在实际应用中,RAGFlow能够在客户服务、问答系统、智能搜索、内容推荐等领域发挥重要作用,通过检索与生成的双重保障,显著提升系统的响应速度和准确性。

二、docker方式安装

注意事项

注意:默认情况下,dify不能和ragflow放到同一台服务器,因为redis环境变量会出现冲突!
RAGFlow解析文件时,会出现报错:AssertionError("Can't access Redis, Please check the Redis' status.")

 

如果资源有限,只有一台服务器,也可以解决,需要docker-compose增加-p参数。

-p 参数的作用

  1. 命名隔离:
    • 使用不同的项目名称可以避免不同项目之间的容器、网络和卷的命名冲突。
    • 例如,如果你有两个项目分别使用 docker-compose,它们的容器名称可能会冲突。通过指定不同的项目名称,可以确保它们的资源(如容器、网络、卷)是独立的。
  2. 管理方便:
    • 通过指定项目名称,可以更方便地管理和操作特定的项目,而不会影响其他项目。

 

 停止dify,进入dify的docker,使用命令:

docker-compose down

增加-p参数指定dify

docker-compose -p dify up -d

 

正式安装RAGFlow

官方文档:https://ragflow.io/docs/dev/

cd /opt/
git clone https://github.com/infiniflow/ragflow.git
cd ragflow/docker
git checkout -f v0.17.2

由于服务器80端口冲突,需要修改docker-compose.yml

ports:
      - ${SVR_HTTP_PORT}:9380
      - 8081:80
      - 8443:443

指定-p参数,启动

docker compose -p ragflow -f docker-compose.yml up -d

访问页面http://192.168.32.14:8081/

 点击注册

 输入账号信息

 注意:这里注册的就是管理员账户。

 

 登录成功之后,效果如下:

 

点击右上角头像,设置模型提供商。这里设置的通义千问

 点击系统模型设置

 选择默认的模型

三、创建知识库

回到首页,点击创建知识库,输入名字:半期考试成绩

 点击新增文件,选择excel文件

 点击右边的设置按钮-->切片方法

 切换方法通用,勾选表格转html

点击解析按钮

等待一会,就会提示解析成功

 点击excel文件名,就可以看到数据了

 检索测试,输入测试文本:张三的语文成绩是多少?

回答结果不是很满意,这里返回了所有人的语文成绩。

因为问题包含了语文,他是做了相似度处理,所以返回了所有人的语文成绩。

接下来,我们会结合dify,回答最准确的答案。

四、dify对接RAGFlow

 进入RAGFlow,点击右上角头像-->API-->API KEY

显示新密钥为:ragflow-hm***

 

登录dify,点击知识库-->外部知识库API

添加外部知识库api

编辑外部知识库API

 

Name: RAGFlow-test

API Endpoint:http://192.168.32.14:8081/api/v1/dify

API Key:ragflow-hm***

参数说明:

Name名称可以随便写,没有要求

API Endpoint的格式为:RAGFlow访问地址+/api/v1/dify

API Key:RAGFlow的api key

 

打开RAGFlow的知识库

会跳转链接到:http://192.168.32.14:8081/knowledge/dataset?id=c12e71e2057911f0b1d00242c0a8f006

url后面的id,就是知识库的id

 

登录到dify,创建知识库-->连接外部知识库

外部知识库名称,这个可以随便写

外部知识库api,选择RAGFlow-test

外部知识库id,就是RAGFlow对应的知识库id

Top k设置为10,可以调大一些

 添加成功后,进入知识库-->召回测试

 

张三的语文成绩是多少?

右边能显示结果,说明api对接成功

在dify工作流中,就可以选择外部知识库了

 

创建一个聊天应用,test-chat-rag

提示词:

###角色
你是聊天助手,根据用户输入,优先检索知识库的详细内容。

###输入
知识库内容从上下文中获取。

###检索要求
如获取到的知识库内容与问题相关时,请汇总知识库详细内容再回答,如含有表格,输出表格的内容,不要带有html代码。

 

上下文选择外部知识库rag-test,效果如下:

 选择模型-->发布-->运行

测试询问成绩

张三的语文成绩是多少?

最后得到了准确的答案!

 

posted @ 2025-03-31 18:13  肖祥  阅读(6353)  评论(3)    收藏  举报