Dify 知识库救星:FastGPT 知识库无缝接入 Dify 实战指南
为什么 Dify 需要接入 FastGPT 知识库? Dify 知识库的痛点分析
相信很多朋友都体验过 Dify 这款强大的开源 LLM 应用平台,但自带的知识库功能却让人一言难尽。即使 Dify 升级到了 1.0 版本,其知识库的问答效果仍然不尽如人意。具体来说,Dify 知识库存在以下几个问题:
- 分段效果不理想:即使采用了最新的父子分段技术,问答效果仍然难以达到预期。
- 配置繁琐:在知识库创建流程中已经设定了重排模型,但在应用关联知识库时还需要再次设定。
- 问答拆分速度慢且容易出错:Dify 知识库虽然支持 FastGPT 的问答拆分模式,但拆分速度非常慢,而且容易出现错误。
- 问答拆分后的回复质量差:使用问答拆分后的回复内容往往让人失望。
总而言之,Dify 除了知识库以外,其他大部分功能体验都比 FastGPT 要好。正所谓“爱之深,责之切”,正是因为对 Dify 寄予厚望,才更希望它能有所改进。
为什么选择 FastGPT 知识库? FastGPT 知识库的优势
与 Dify 相比,FastGPT 的知识库效果是公认的优秀。那么,FastGPT 知识库有哪些优势呢?
虽然原文没有详细介绍,但我们可以推测 FastGPT 知识库可能具有以下优点:
- 更高效的分段技术:能够更准确地将知识库内容进行分段,从而提高问答的准确性。
- 更智能的检索算法:能够更快速地找到与用户问题相关的知识点,从而提高问答的效率。
- 更灵活的配置选项:提供更多的配置选项,让用户可以根据自己的需求进行定制,从而提高问答的个性化程度。
如何将 FastGPT 知识库接入 Dify? FDA (fastgpt-dify-adapter) 适配器方案
既然 Dify 的知识库效果不佳,而 FastGPT 的知识库效果又很好,那么将两者结合起来岂不是两全其美?Dify 提供了外部知识库 API,这为我们提供了实现的可能。
为了解决 Dify 和 FastGPT 接口不兼容的问题,作者开发了一个名为 FDA (fastgpt-dify-adapter) 的适配器,作为 Dify 和 FastGPT 知识库之间的桥梁,可以快速、方便地将 FastGPT 的知识库外接到 Dify 使用。
1. FDA 适配器是什么?
FDA 适配器可以看作是一个接口转换器,它将 Dify 的外部知识库 API 请求转换为 FastGPT 知识库 API 可以理解的格式,并将 FastGPT 知识库的响应转换为 Dify 可以理解的格式。
2. FDA 适配器的优势
- 简单易用:只需简单的配置,即可将 FastGPT 知识库接入 Dify。
- 高效稳定:采用高效的编程语言和框架,保证适配器的稳定性和性能。
- 可定制性强:可以根据实际需求进行定制,满足不同的应用场景。
FDA 适配器部署教程
1. 准备工作
- Docker 环境:确保您的服务器或电脑已经安装了 Docker 和 Docker Compose。
- FastGPT 服务:确保您已经部署了 FastGPT 服务,并且可以正常访问。
- Dify 服务:确保您已经部署了 Dify 服务,并且可以正常访问。
2. 创建 docker-compose.yml 文件
在任意目录下创建一个名为 docker-compose.yml
的文件,并将以下内容复制到文件中:
yaml
version:’3′
services:
fastgpt-dify-adapter:
image: registry.cn-guangzhou.aliyuncs.com/kangarooking/fastgpt-dify-adapter:1.0.1
ports:
-“5000:5000”
environment:
– FASTGPT_BASE_URL=http://host.docker.internal:3000
# 问题优化配置
– DATASET_SEARCH_USING_EXTENSION=false
– DATASET_SEARCH_EXTENSION_MODEL=deepseek-chat
– DATASET_SEARCH_EXTENSION_BG=
# 重排序配置
– DATASET_SEARCH_USING_RERANK=false
restart: unless-stopped
注意:
FASTGPT_BASE_URL
:配置 FastGPT 地址。如果 FastGPT 和 FDA 部署在同一个 Docker 环境中,建议使用http://host.docker.internal:3000
。DATASET_SEARCH_USING_EXTENSION
:是否使用问题优化。DATASET_SEARCH_EXTENSION_MODEL
:问题优化模型。DATASET_SEARCH_EXTENSION_BG
:问题优化背景。DATASET_SEARCH_USING_RERANK
:是否使用重排序。
3. 部署 FDA 适配器
在 docker-compose.yml
文件所在的目录下,打开命令行终端,执行以下命令:
bash
docker-compose up -d
该命令会自动下载 FDA 适配器的镜像并启动容器。
4. 查看 FDA 适配器日志
部署成功后,可以打开 Docker Desktop,找到 Containers -> fda -> view details 查看 FDA 适配器的日志,确认 FDA 适配器是否正常运行。
配置 FastGPT 和 Dify
1. 获取 FastGPT 相关参数
- 创建 OpenAPI Key:在 FastGPT 中创建一个 OpenAPI Key,并复制 Key 值备用。
- 复制知识库 ID:找到您想要接入 Dify 的知识库,点击进入,在最右边找到知识库 ID,复制 ID 值备用。
2. 配置 Dify 外部知识库
- 添加外部知识库 API:访问 Dify,进入知识库 -> 外部知识库 API -> 添加外部知识库 API。
API Endpoint
:填写 FDA 适配器的地址 + 端口。如果 Dify 和 FDA 部署在同一个 Docker 环境中,可以直接使用http://host.docker.internal:5000
。API Key
:填写刚刚复制的 FastGPT OpenAPI Key。
- 创建外部知识库:填写刚刚复制的 FastGPT 知识库 ID。
Top K
:对应 FastGPT 的引用上限。Top K 为 4 对应 FastGPT 的 2000(如果是 5 就对应 2500,以此类推)。Score
:对应 FastGPT 的最低相关度。建议 Top K 拉到 6 以上,可以提供更多的长下文。
3. 在 Dify 应用中添加知识库
进入 Dify 应用,点击添加知识库,选择刚刚创建的外部知识库,添加后会弹出设置(这里的设置经测试不起作用,不用管),直接保存。
体验 Dify + FastGPT 知识库的强大
完成以上步骤后,您就可以在 Dify 中愉快地使用 FastGPT 知识库来进行问答回复啦!效果提升不止一点点!点击引用,还可以看到所有的引用内容。
如果后续想调整外部知识库的参数,可以到外部知识库 -> 设置里面调整。
总结
通过 FDA 适配器,我们可以轻松地将 FastGPT 知识库接入 Dify,从而大幅提升 Dify 的知识库问答效果。Dify 结合 FastGPT 知识库,才是世界上最好用的开源 LLM 应用平台!
希望本文能帮助到大家,如果您觉得不错,请随手点个赞、在看、转发三连吧!
感悟
我认为:Dify 虽有瑕疵,但开源精神可嘉,愿能集百家之长,终成大器。而 FastGPT 知识库之精妙,恰如画龙点睛之笔,使 Dify 如虎添翼。然技术之路漫漫,仍需上下求索,精益求精,方能臻于至善。