大模型平台Dify工作流高效调用Ragflow知识库,解决其原生知识库解析和检索能力不足的问题
Dify调用Ragflow知识库的详细步骤,安装详细部署在我之前文章
多图超详细:Docker安装知识库AI客服RAGFlow的详细步骤、使用教程及注意事项:。超详细:Dify大语言模型工作流开发平台的安装与使用,deepseek知识库客服等。
Ragflow的地址http://localhost:81
和Dify地址http://localhost
一、准备工作
- 确认端口配置
- 确保Ragflow的API服务已正确运行在
http://localhost:81
,且Dify与Ragflow部署在同一台主机(如Docker容器或本地环境)。 - 若两者均通过Docker部署,需检查端口映射是否冲突(如默认80/443端口),需修改Ragflow的Web端口或API端口。
- docker compose·冲突
Ragflow的API都是docker目录,会导致docker compose在管理时有冲突
解决方案:docker compose -p ${name}
docker compose -p dify up -d
- 确保Ragflow的API服务已正确运行在
- 获取Ragflow的API Key和知识库ID
- API Key:登录Ragflow后台,点击右上角头像 → API → API Key → 创建新密钥并复制。
- 知识库ID:进入Ragflow知识库详情页,浏览器地址栏末尾的
id=xxxx
即为知识库ID(如http://localhost:81/knowledge/dataset?id=abc123
)。
- API Key:登录Ragflow后台,点击右上角头像 → API → API Key → 创建新密钥并复制。
二、Dify配置步骤
- 添加外部知识库API
- 登录Dify后台,进入 知识库 → 外部知识库API → 添加。
- 外部知识库名称:自定义名称。
- 外部知识库API:选择刚添加的API(如“Ragflow-本地知识库”)。
- 外部知识库ID:粘贴Ragflow知识库ID。
- 召回参数:设置
Top K
(默认2,可调大)和Score阈值
(默认0.5)。 - 填写以下信息:
- Name:自定义名称(如“Ragflow-本地知识库”)。
- API Endpoint:填写http://host.docker.internal:9380/api/v1/dify(需包含
/api/v1/dify
路径)。 - API Key:粘贴Ragflow生成的API Key。
三、测试与验证
- 创建应用并关联知识库
在Dify中创建空白应用,进入 知识库上下文,选择已连接的Ragflow知识库。
- 问答测试
- 输入问题,观察Dify是否返回Ragflow知识库的精准结果。
- 若返回结果为空,检查API Key、知识库ID或端口配置是否正确。
四、常见问题解决
- 403权限错误
- 确认API Key是否正确,或检查Ragflow的API服务是否允许本地访问。
- 知识库ID获取失败
- 通过浏览器开发者工具(F12)抓取Ragflow的
list
接口响应,提取知识库ID。
- 通过浏览器开发者工具(F12)抓取Ragflow的
- 端口冲突
- 若Ragflow与Dify端口冲突,修改Ragflow的Docker配置(如将Web端口改为90,API端口保持81)。
五、扩展优化
- 调整检索策略:在Ragflow中配置嵌入模型(如text-embedding-ada-002)和重排序模型(如gpt-3.5-turbo),提升召回质量。
- 批量解析文档:通过Ragflow上传PDF/Excel等文件,选择“通用切片方法”优化解析。
通过以上步骤,Dify可高效调用Ragflow知识库,解决其原生知识库解析和检索能力不足的问题。若需进一步调试,可结合Postman测试Ragflow的/retrieval
接口。