DeepSeek-R1 融合Dify工作流,搭建专属AI Agent应用

举报
TechExplorer 发表于 2025/02/07 19:03:56 2025/02/07
2.1w+ 9 8
【摘要】 Dify是一款开源的 LLM 应用开发平台,提供从 Agent 构建到 AI workflow 编排、RAG 检索、模型管理等能力,轻松构建和运营生成式 AI 原生应用。本文将带你快速搭建基于DeepSeek-R1-Distill-Qwen-32B的Dify工作流最佳实践,实现从知识库或者搜索引擎进行检索。

概述

Dify是一款开源的 LLM 应用开发平台,提供从 Agent 构建到 AI workflow 编排、RAG 检索、模型管理等能力,轻松构建和运营生成式 AI 原生应用。本文将带你快速搭建基于DeepSeek-R1-Distill-Qwen-32B的Dify工作流最佳实践,实现从知识库或者搜索引擎进行检索。

在做本文档实践操作部分之前,您需要提前完成如下操作:

  • 在华为云Flexus X实例一键部署Dify,请参考部署文档
  • 在华为云ModelArts Studio中领取DeepSeek-R1-Distill-Qwen-32B模型免费token额度并将模型接入Dify中,请参考部署文档;
  • 准备需要上传到知识库的文档(支持TXT、 MARKDOWN、 PDF、 HTML、 XLSX、 XLS、 DOCX、 CSV、 MD、 HTM等格式,本示例提供的测试文档见附件)。

使用指导

步骤一:访问dify平台工作室

通过浏览器访问dify平台,点击”工作室“,进入工作室页面。

步骤二:导入工作流

 在工作室页面,点击“导入DSL文件”,在弹出的页面中选择“URL”,复制下面的地址,粘贴到DSL URL路径里,如下图所示:

https://documentation-samples.obs.cn-north-4.myhuaweicloud.com/solution-as-code-publicbucket/solution-as-code-moudle/building-a-dify-llm-application-development-platform/workflow/DeepSeek_%E8%81%94%E7%BD%91%E6%90%9C%E7%B4%A2_%E7%9F%A5%E8%AF%86%E5%BA%93.yml

点击“创建”,即可导入工作流。

创建后如下图所示:

步骤三:创建知识库

3.1 经济型知识库创建:

3.1.1 在dify平台页面,点击“知识库”,点击“创建知识库”;

3.1.2选择“导入已有文本”,点击“选择文件”,选择对应知识库文件后(本示例提供的测试文档见附件),点击下一步

3.1.3文本分段与清洗本示例保持默认配置不变(你也可以按照实际需求进行配置),点击“保存并处理”

  • 分段设置:通用
  • 索引方式:经济
  • 检索设置:Top 3

3.1.4点击“前往文档”,可以看到导入的知识库文档为可用状态

3.2 高质量知识库创建:

3.2.1需要提前创建Embedding和Reranker模型,利用向量检索的召回和重拍能力提升检索精度,以下链接是如何在华为云上创建Embedding和Reranker模型并关联到您的Dify平台:

进入华为云官网https://www.huaweicloud.com/,点击解决方案 -> 解决方案实践 -> 查看解决方案实践,进入解决方案实践专栏,搜索 Embedding 关键词,选择快速部署Embedding及Reranker模型, 然后点击查看部署指南如下图所示

阅读并实操快速部署(实现Embedding和Reranker模型的部署)和开始使用(实现Embedding和Reranker模型对接Dify平台)

完成上述操作后,您的Dify模型供应商中应成功设置以下两个模型 bge-m3(embedding)和bge-reranker-v2-m3 (reranker)。

3.2.2设置高质量检索条件:

3.2.2.1 在dify平台页面,点击“知识库”,点击“创建知识库”;

3.2.2.2  选择“导入已有文本”,点击“选择文件”,选择对应知识库文件后(本示例提供的测试文档见附件),点击下一步

3.2.2.3  进入知识库选择,选择高质量模块,在Embedding模型栏目选择刚创建的bge-m3模型,在检索设置栏目,选择混合检索(可同时使用向量检索和关键词检索,并控制两者权重),在模型下拉窗口选择刚创建的bge-reranker-v2-m3, 然后在下方开启Score阈值开关,并滑动下方的滑动按钮来选择阈值,推荐0.5,下方还有TOP K的选项,可以控制最终被使用的文档分片的最大数量。

解释:在检索时,知识库系统会对文档分片和查询问题(query)的匹配度进行打分,得分越高说明匹配度越高,这里设置阈值可以控制最终被大模型使用的文档分片和问题匹配度的最小值,举例说明,比如设置阈值为0.5,检索时总共有10段文档分片和用户的问题相关,但是只有3段文档分片和用户的问题的匹配度超过0.5,则最终只有这三段文档分片会被大模型利用到并进行回答的生成。

3.2.2.4 继续选择权重设置,调整滑动按钮,推荐选择语义(向量检索)0.5,关键词(关键词检索)0.5,然后点击保存,至此,高质量知识库创建完成。

3.2.2.5  待显示嵌入已完成,文档对应状态变成绿色对钩,则继续点击“前往文档”,可以看到导入的知识库文档为可用状态

步骤四:调整工作流

4.1  点击步骤二中导入的工作流,进入工作流页面。

4.2  添加知识库:点击“知识检索”节点,点击“+”按钮添加知识库,选择步骤三中创建的知识库点击“添加”

4.3  选择DeepSeek模型:

① 此工作流配置的两个大模型服务节点,都需要调整为您在ModelArts Studio中部署的DeepSeek模型(此处本工作流默认为DeepSeek-R1-Distill-Qwen-32B),选中节点后,在右侧配置页面进行模型选择

步骤五:测试工作流

在工作流页面,点击“预览”按钮,在弹出的聊天框输入问题进行测试:

5.1  测试从知识库中进行内容检索:输入知识库相关内容,查看是否通过知识库检索。

5.2 测试从联网搜索中进行内容检索:输入知识库外的相关内容,查看是否通过联网搜索进行检索。

步骤六:应用发布

在工作流页面的右上角点击“发布”按钮,再点击“发布”,即可完成工作流发布。

发布完成后就可以使用此anget应用了,有以下三种使用方式:

1. 访问API:调用API接口如下图所示:

2. 直接访问:可以通过公开URL地址直接访问:

3. 嵌入网站:可以通过复制代码将此agent嵌入到网站中:

FAQ常见问题:

1. 联网搜索相关问题:

1)Q:为什么我在Dify中使用了上述DSL模板,但是联网搜索显示无效?

      A:本文档中提供的DSL模板自带一个免费的联网搜索插件,这个是SAC一键部署Dify时内置的插件,如果您是自部署Dify则不包含本插件。

2)Q:此免费联网搜索插件是否保障商用稳定性?

      A:不保障,如果对Agent联网搜索能力要求较高,请使用Dify工具中提供的Google或者Bing等服务商的付费商用搜索引擎插件。

2.  知识库相关问题:

1)Q:为什么工作流点击发布/更新时报以下错误:

      A:因为未添加reranker模型,Dify会提示未添加reranker模型(因为通常只使用经济模式的检索方式,检索效果欠佳)

           临时解决方式:点击知识检索模块,然后点击对应知识库的编辑图标,在弹窗中点击保存即可

      永久解决方式:使用本文步骤三中3.2 高质量知识库创建 提供的解决方案,添加embedding和reranker模型,并使用高质量知识库检索,可永久解决该问题,并提供更强大的知识库检索能力。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(9

抱歉,系统识别当前为高风险访问,暂不支持该操作
  • 作者头像

    yd_542075522025/02/11 01:38:271楼举报回复

    工具和算法都是开源的,以后这类企业知识库项目除了算力成本,没啥收费项了吧?
  • 作者头像

    yd_2465601832025/02/24 09:29:422楼举报回复

    本地部署dify,接入MAS提供的DeepSeek-R1-Distill-Qwen-32B模型,一直报错An error occurred during credentials validation: HTTPSConnectionPool(host='infer-modelarts-cn-southwest-2.modelarts-infer.com', port=443): Max retries exceeded with url: /v1/infers/952e4f88-ef93-4398-ae8d-af37f63f0d8e/v1/chat/completions (Caused by SSLError(SSLError(1, '[SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1010)')))

    有没有什么解决办法
  • 作者头像

    Schumi_Jay2025/02/25 02:52:243楼举报回复

    学习了
  • 作者头像

    yd_2246056202025/02/25 07:25:524楼举报回复

    联网搜索builtin provider baidu_search not found,找不到baidu_search哦
  • 作者头像

    yd_2644416502025/02/26 01:18:165楼举报回复

    简单补充一下:
    1.关于联网搜索无法使用的问题
    在联网搜索节点把节点变更为工具,可以使用bing搜索、google搜索等工具,另外需要在Dify的官网配置API连接,配置以后可以正常使用
    2.用经济型模式处理文本,在知识检索的召回设置里需要自己部署rerank模型,否则无法正常发布
    3.如果使用高质量模式处理文本,将自动接入已经训练过的大模型阅读文本,因此无法区分联网和基于知识库的大模型使用

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。