dify v0.15.3外挂ragflow知识库,保姆级教程来了!

 Datawhale干货 

作者:张龙斐,Datawhale鲸英助教

上一次我们学习了如何部署ragflow,本次我们学习如何使用ragflow+dify搭建本地问答系统。

为什么要和dify结合呢,是因为dify的智能体功能非常强大,ragflow中虽然有类似的功能,但是并没有dify那么强大;但是ragflow可以解决dify解析和检索短板。

对应的,ragflow的资源消耗比较大,大家可以注意一下!

最后,如果大家有疑问和建议非常欢迎批评指正!

面向人群:计算机小白

阅读时间:10分钟

安装dify

  • 确保电脑上安装了docker,git,vscode三个软件
    • Windows Docker 安装 | 菜鸟教程

      :https://www.runoob.com/docker/windows-docker-install.html

    • git:https://cloud.tencent.com/developer/article/2099150
    • vscode:https://zhuanlan.zhihu.com/p/264785441
  • 开始安装dify

    首先在文件夹中点击鼠标右键,open git bash here,之后执行命令:git clone https://github.com/langgenius/dify.git --branch 0.15.3。完成后关闭git bash窗口,可以看到有一个dify的文件夹,打开这个文件夹并进入到docker文件夹下,右键菜单栏点击在终端中打开。

    Image

    Image

    之后在终端中逐行执行以下命令:

    copy .env.example .env
    # 复制环境文件
    copy middleware.env.example middleware.env
    # 复制环境文件
    docker compose -p dify up -d
    # 启动为dify名称,避免compose冲突

    Image

    看到9个容器都在运行中即是部署成功了。此时打开docker容器可以看到dify后端运行情况:

    Image

  • 解决端口冲突

    找到上次存放ragflow的文件夹,进入docker中,用vscode打开docker-compose.yml文件,修改其中的端口。

    Image

    Image

之后在此文件夹(路径一定要正确,相当于在特定的房间里启动这台机器)下右键打开命令行,输入: docker compose up -d

可以看到ragflow服务也成功启动了,避免了端口冲突。当然这里也可以命名为ragflow服务docker compose -p ragflow up -d

Image

搭建本地问答系统

创建ragflow知识库+ragflow api

这里我们可以继续选择使用deepseek的api来搭建,也可以设置为本地或者其他服务的接口。

输入网址:localhost:8080 打开ragflow界面,填入注册的账号和密码登录。

Image

Image

Image

Image

💢

文档解析会非常慢,请大家耐心等候,目前没有找到批处理的方案,手动一个一个点击解析吧(据我测试一次解析3个比较稳妥)

Image

这一步我们创建ragflow的API,以便之后接入dify中。

ragflow进行本地问答

  • 进行检索测试,测试检索命中准确度如何

Image

  • 直接使用搜索功能查询名词,或者给出解释。

Image

  • 聊天这里创建简易的智能体

Image

Image

Image

  • 这里我们可以邀请团队成员一起使用这个知识库

Image

Dify与ragflow联通

同样的我们在浏览器地址栏输入:localhost:80 即可打开Dify

Image

Image

图中第4步骤需要填本地ip地址,http://本地IP:8080/api/v1/dify

apikey为上一步创建的ragflow api,复制填入即可。

本地ip 查看方法:打开powershell,输入 ipconfig,找到下图对应的IPv4地址:

Image

之后我们点击下图所示的

Image

Image

Image

Image

可以看到我们的知识库是调用成功了。

Dify的使用

Image

Image

Image

我们可以看到这里有非常多的模型配置选择,在ragflow中有embedding模型和rerank模型,不过它们都没有发布为api,无法调用。这里我们可以去硅基流动平台或者阿里百炼平台或者火山引擎,它们都提供了多种模型的api服务,申请api后填入key即可。

Image

在探索页面有非常多的应用开发模板提供,按照自己的应用场景选择合适的即可,比如我想要一个社会学领域知识深度搜索的应用,就选择DeepResearch模板。

Image

最后我们开发好工作流应用就可以啦,把配置好的应用发布为服务或者API都可以。

应用启动与更新

  1. 1. 应用启动:打开docker界面,把对应的容器服务全部开启。

Image

浏览器分别输入:localhost:80 与 localhost:8080 打开dify 和 ragflow。

  1. 2. 应用更新: 在对应的文件夹位置打开命令行,更新哪个就在哪个文件夹(docker文件夹)下打开,并键入以下命令:

docker compose down
git pull origin main
docker compose pull
docker compose up -d

同时,请更新环境变量配置:

  • 如果 .env.example 文件有更新,请同步更新您本地的 .env 文件。
  • 检查 .env 文件中的所有配置项,确保它们与您的实际运行环境相匹配。您可能需要将 .env.example 文件中的新变量和更新后的值添加到 .env 文件中。

Rag最全梳理:最全梳理:一文搞懂RAG技术的5种范式!》

DeepSeek+Ragflow:《DeepSeek接入个人知识库,保姆级教程来了!》

图片一起“赞”三连

<think>嗯,用户问的是Dify如何对接RAGFlow知识库。首先,我需要确认这两个工具的具体功能和接口。Dify是一个AI应用开发平台,支持快速构建基于大语言模型的应用,而RAGFlow则是专注于RAG(检索增强生成)的知识库管理系统。对接的关键在于数据流的整合和API的调用。 首先,我应该检查两者的文档,看看是否有现成的集成方案。比如,Dify是否支持直接连接RAGFlow作为知识库来源,或者是否需要通过API进行数据同步。可能需要用户将RAGFlow中的知识库导出为特定格式,再导入到Dify中,或者实时调用RAGFlow的API进行检索。 然后,权限和认证方面,可能需要配置API密钥或OAuth,确保Dify有权访问RAGFlow的数据。另外,数据格式的兼容性也很重要,比如文本的分块方式、元数据字段是否匹配,避免在检索时出现错误。 还有,处理流程方面,当用户在Dify中发起查询时,Dify可能需要将查询发送到RAGFlow进行检索,获取相关文档片段,再结合这些片段生成回答。这需要确保两个系统之间的通信延迟较低,以提供良好的用户体验。 可能遇到的挑战包括API的稳定性、数据更新的同步机制,以及如何处理大型知识库的性能问题。需要建议用户分步测试,先小规模验证流程,再逐步扩大数据量。同时,关注两者的更新日志,以便及时调整集成方式。 最后,总结对接步骤:1)配置RAGFlow的API访问权限;2)在Dify中设置外部知识库连接,填入RAGFlow的API端点及认证信息;3)测试数据检索和生成流程,调整参数优化结果;4)部署并监控集成后的系统,确保稳定运行。</think>DifyRAGFlow 对接实现 RAG 知识库的整合可分为以下步骤: ### 一、系统定位 1. **Dify**:低代码 LLM 应用开发平台 - 支持可视化编排 AI 工作流 - 提供 RAG 能力集成接口 - 典型场景:智能客服、文档问答 2. **RAGFlow**:开源 RAG 引擎 - 支持多格式文档解析 - 提供语义分块与向量检索 - 特色功能:多路召回策略 ### 二、对接流程 #### 步骤 1:数据准备层 $$ \text{RAGFlow} \xrightarrow{\text{文档解析}} \text{向量库} \xrightarrow{\text{API封装}} \text{服务端点} $$ - 在 RAGFlow 完成: 1. 上传 PDF/Word/Markdown 等文档 2. 配置 chunk_size=512, overlap=64 等参数 3. 生成带元数据的向量索引 #### 步骤 2:接口对接 ```python # Dify 调用示例 response = requests.post( url="https://ragflow-api/retrieve", headers={"Authorization": "Bearer <API_KEY>"}, json={ "query": "用户问题", "top_k": 5 } ) ``` 需配置: - RAGFlow API 端点 - 认证密钥 - 超时参数(建议 timeout=10s) #### 步骤 3Dify 工作流配置 1. 创建「知识库检索」节点 2. 绑定 RAGFlow 接口地址 3. 设置结果映射规则: ```json { "context": "{{response.results}}", "score_threshold": 0.75 } ``` ### 三、优化要点 1. **混合检索策略**: - 向量检索 + 关键词检索 - 权重分配公式: $$ score = \alpha \cdot sim_{cos} + (1-\alpha) \cdot tfidf $$ 2. **缓存机制**: - 对高频查询做结果缓存 - 设置 TTL=3600s 3. **监控指标**: | 指标 | 预警阈值 | |---|---| | 响应延迟 | >2000ms | | 召回率 | <60% | | 错误率 | >5% | ### 四、典型问题处理 1. **编码问题**: - 统一使用 UTF-8 编码 - 特殊字符转义处理 2. **版本兼容**: - 确认 API 版本对应关系 - 建议 RAGFlow >= 0.3.2 3. **性能调优**: - 批量请求时启用流式响应 - 调整分块策略提升召回率 当前对接方案已在金融文档问答场景验证,实现 QPS 50+ 的稳定服务能力。建议初次对接时通过 Postman 先进行接口调试,再接入完整工作流。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值