华为云Flexus+DeepSeek征文|基于华为云一键部署快速搭建Dify-LLM应用开发鸿蒙学习助手(三)
一、前言总结:
接下来,就为你详细拆解从 0 到 1 使用 Dify 搭建鸿蒙学习助手的全流程,这一套融合Dify平台和DeepSeek-R1大模型的问答系统,在多个领域展现出了强大的应用价值。在企业内部,它可以作为开发人员鸿蒙学习的技术手册,还是IT系统操作说明,都能通过自然语言快速获取答案,极大提升了工作效率。

1.1 使用建议:
为了确保问答系统的长期有效运行和持续优化,用户应定期维护和更新知识库内容。随着业务变化或个人学习进展,文档资料应及时补充,以保持知识的新鲜度和时效性。同时,在工作流构建过程中,可以设置关键词排除规则或优先处理机制,以提高模型解析用户意图的精准度,从而提升检索与回答的准确度。
## 1.2 部署体验分享:
华为云Flexus X实例结合Dify官方模板,为用户提供了高度自动化的部署体验。无需繁琐的安装依赖、配置服务器等步骤,所有资源均由平台自动创建并初始化。部署完成后,系统会生成访问链接,用户通过浏览器即可进入Dify平台设置管理员账号并开始使用,整个过程便捷高效。
Dify平台的可视化操作逻辑直观、设计合理,用户可以通过拖拽或点击方式构建问答工作流,无需编写代码。知识库支持多种格式文档导入,上传后系统能快速处理并构建索引。
接入DeepSeek-R1模型后,问答响应智能且准确,能够结合知识库内容做出上下文贴合的回复。平台还支持多用户管理和API调用,便于集成进现有业务系统。总体来看,该系统从部署便捷性、使用易用性到性能稳定性,均具备高度实用价值。
二、基于Dify构建知识库问答Chatflow工作流:
工作流通过将复杂的任务分解成较小的步骤(节点)降低系统复杂度,减少了对提示词技术和模型推理能力的依赖,提高了 LLM 应用面向复杂任务的性能,提升了系统的可解释性、稳定性和容错性,该问答系统由以下四个关键节点构成:
- ①. 新建一个Agent或者ChatFlow,插入LLM节点,编写提示词,也可以让ai自动生成。
- ②. 使用知识检索节点。
- ③. 在LLM中引入上下文变量。
- ④. LLM会根据文档作出回答。
1.1 Dify 工作流分为两种类型:
- ①. Chatflow:面向对话类情景,包括客户服务、语义搜索、以及其他需要在构建响应时进行多步逻辑的对话式应用程序。
- ②. Workflow:面向自动化和批处理情景,适合高质量翻译、数据分析、内容生成、电子邮件自动化等应用程序。
为解决自然语言输入中用户意图识别的复杂性,Chatflow 提供了问题理解类节点。相对于 Workflow 增加了 Chatbot 特性的支持,如:对话历史(Memory)、标注回复、Answer 节点等。

Chatflow支持记忆的复杂多轮对话工作流,Dify提供可视化的工作流编辑器,支持构建自定义的问答系统流程。
1.2 工作流配置节点:
选择一个LLM可以进行配置,点击“LLM节点”,即可弹出节点配置的卡片菜单,单击卡片最上面,可以修改节点的名称,这样可以标记节点相关的功能,在LLM节点的SYSTEM属性可以增加一些提示词来帮助AI完成相关指令操作。

第一个节点表示系统首先接收用户提出的自然语言问题,这是整个流程的起点,拿到传入的参数后,才可以将值做为后面模块的依赖对象使用,以确传参能够被准确传入后续模块处理。在这个节点“提取关键词内容”,系统调用DeepSeek-V3大模型,对用户提问进行语义解析,自动提取关键词,为接下来的知识检索做好语义化准备。
提示词类型:
- ①. 系统(System): 指定世界整体框架和设置,包括AI行为规范和任务指令,系统部分可以设定模型的操作规则或者给出初步的指引,指导用户如何与助手进行交互。
- ②. 用户(User): 指的是与助手进行互动的个人或实体,用户提出问题、请求或任务,目的是获得信息、解决问题或完成某项工作。
- ③. 助手(Assistant): 是指大语言模型本身,它根据用户的输入提供响应、信息或服务,助手的任务是理解用户的需求,并尽可能准确、及时地提供相关的帮助。

我们也可以通过提示词生成器使用配置的模型来优化提示,以获得更高、更好的质量和结构,这里可以写出一些相关的指令,如“将问题进行总结,得到搜索的关键词”,这里统一输出是一个文本string返回值,在确认后可以将提示词更新到SYSTEM字段中。

```xml
<instruction>
<instructions>
1. 仔细阅读并理解用户输入的问题或文本内容,确保准确把握其核心意图和关键信息。
2. 从问题或文本中提取出最能代表其主题或需求的词汇或短语,这些词汇或短语应简洁且具有搜索价值。
3. 将提取的关键词进行整理,确保它们能够覆盖问题的核心内容,同时避免冗余或不相关的词汇。
4. 输出时,将关键词以逗号分隔的形式呈现,确保清晰易读,且不包含任何XML标签或其他无关符号。
5. 如果问题涉及多个方面或子问题,可以分层次提取关键词,优先保留最核心的部分。
6. 确保输出的关键词能够直接用于搜索引擎或数据库查询,以提高检索效率。
</instructions>
<examples>
<example>
输入:如何快速学习Python编程语言?
输出:Python, 编程语言, 快速学习
</example>
<example>
输入:2023年全球气候变化的主要影响因素有哪些?
输出:2023年, 全球气候变化, 影响因素
</example>
<example>
输入:推荐几本适合初学者的心理学书籍。
输出:心理学书籍, 初学者, 推荐
</example>
</examples>
<notes>
1. 关键词应尽量简洁,避免使用过长或复杂的短语。
2. 如果问题中包含具体的时间、地点或人物,应优先将其作为关键词。
3. 关键词的顺序可以按照重要性或逻辑关系排列,但无需严格遵循原文顺序。
4. 避免使用停用词(如“的”、“如何”等)或无关词汇。
5. 若问题过于模糊或宽泛,可以适当添加限定词以提高搜索精度。
</notes>
</instruction>
点击之前配置的模型后,会弹出一个弹框,表示定制化大模型的一些相关参数:
- ①. Temperature(温度):控制输出的词概率分布来控制低概率的词被选中,0-1,越接近0越精确。
- ②. Top P:阈值 P,0-1,越大代表出现的词的累积概率越大,0.9代表低概率的词被丢弃。
- ③. Frequency Penalty(频率惩罚): 对出现的频率增加惩罚,频次越多,惩罚越大,1代表惩罚加大。
- ④. Presence Penalty(存在惩罚): 对出现过的词语进行惩罚,1代表惩罚越大。
- ⑤. Max Tokens:即输出的最大token值,不要太大,不然输入可能不够。
1.3 使用知识检索节点:
点击第一个节点右边的“+”号,可以弹出一个“知识检索”的节点,可以在上一个LLM工点将关键词进行提取,知识检索的处理逻辑是:
- ①. 从知识库检索,如果能匹配到就直接返回知识库检索的内容。
- ②. 没有检索到相关内容,则会进行联网查询,最后再网上查询到相关问题的答案。
最后,再通过结果进行总结,给出markdown格式的回答。

这里我们添加了所有知识库的资料,包括2本书籍,当然也可以只匹配一本,系统利用上一个节点提取的关键词或语句,在已构建的知识库中查找相关文档片段或信息段,获取与用户问题语义相关的上下文材料。


1.4 回答问题:
回答用户问题,再次调用DeepSeek-R1模型,将用户原始问题与检索到的知识片段作为输入,生成一段逻辑清晰、内容准确、语言自然的回答。

最后,系统将生成的回答内容返回给用户,完成一次完整的知识库问答过程,实现高效的信息获取与智能响应。

二、测试运行:
配置完成后,我们可以使用平台提供的“预览”功能,对整个鸿蒙基础助手知识库问答流程进行测试。在预览界面中,找到最下面的“和机器人聊天”的input框,可以提出自己的相关问题,系统将会根据提问的关键词,在知识检索库中搜索当前知识库内容返回回答结果。

测试过程中,可以查看所有工作流的状态,以及入参与出参相关的数值,这个节点的使用了多少tokens值,花费了多少秒的时间,都会显示在上面,可以查看模型响应效果、知识片段命中情况以及工作流运行日志,可以给开发人员有一个调试的环节。

三、发布:
知识库创建完成后,用户可以点击“发布”按钮来进行初步发布。Dify平台在知识库问答系统上线前,会自动进行一系列严谨的测试。这包括功能测试,确保所有功能正常运行;性能测试,验证系统的响应速度和承载能力;以及兼容性测试,保证系统在不同设备和浏览器上都能稳定工作。这些测试旨在全面排查潜在问题,提升系统的准确性和可靠性。

3.1 直接运行方式:
可以类似AI智能体可以直接进行访问,在测试阶段,用户被鼓励积极提交反馈。Dify平台会根据用户的宝贵意见进行调整和优化,确保系统更加贴合用户的实际需求。这种用户参与的方式,有助于打造一个更加人性化、高效的知识库问答系统。

3.2 嵌入网站方式:
这里可以让鸿蒙基础学习助手时,我们可以进行搜索,让AI智能体直接帮我们进行生成“帮我生成一个鸿蒙学习相关的h5静态页面样式,需要美观一点”,这里可以看到可以给我生成一个h5相关的代码,不过是以markdown给我返回过来的。

可以看到如果以聊天应用潜入到网站中的话,这里可以看到是以iframe来嵌套进来的,所以,也不用考虑跨域这种问题。避免了恶意代码通过iframe注入,影响主网站的安全。iframe可能会增加页面加载时间,尤其是在网络较慢的情况下。因此,需要对嵌入内容进行性能优化,确保用户体验不受影响。

下面就是直接将AI生成好的代码中以iframe嵌套的方式来,我们尝试了一下,也是可以进行搜索的,没有任何的问题。这样的方式,可以把制作好的AI智能体直接嵌套到我们现在有业务系统中,不需要任何多余的开发的成本,非常适合集成到现在ERP、OCM、仓库这些系统,来提高我们的工作效率。

3.3 工作流编排对话型应用 API:
对话应用支持会话持久化,可将之前的聊天记录作为上下文进行回答,可适用于聊天/客服 AI 等,这样可以把这个AI智能体当成一个服务的工具,给其它的AI智能体继续提供API服务。

以下是对应请求的API接口,通过使用POST方式的请求,允许传入 App 定义的各变量值。 inputs 参数包含了多组键值对(Key/Value pairs),每组的键对应一个特定变量,每组的值则是该变量的具体值。 如果变量是文件类型,请指定一个包含以下 files 中所述键的对象。

这里有鉴权相关的功能,需要进行申请API密钥进行,Service API 使用 API-Key 进行鉴权。 强烈建议开发者把 API-Key 放在后端存储,而非分享或者放在客户端存储,以免 API-Key 泄露,所有 API 请求都应在 Authorization HTTP Header 中包含您的 API-Key,在“API密钥”管理中,可以进行密钥的申请。

以上,经过测试验证后,用户可以通过Dify平台提供的便捷操作,将知识库问答系统轻松发布上线。无论是开发阶段的调试,还是正式环境的运行,平台都提供了直观易用的界面和工具,大大降低了上线的复杂度和时间成本。
3.4 小结:
在知识库问答系统测试圆满通过并确认一切无误后,通过再次点击“发布”中的“运行”选项,需再次点击“发布”按钮下的“运行”选项,这一简单动作即可将系统推向正式上线阶段。系统将自动生成一个公网可访问的应用URL地址,无论是用户还是外部访问者,只需通过这个链接,便能瞬间进入知识库问答界面,与大模型展开即时、高效的互动,开始与大模型进行实时交互,不仅具备良好的可用性,还拥有出色的响应速度,完美适配各种实际应用场景,无论是部署还是运营,都能游刃有余。

四、总结:
在人工智能时代,拥有一个专属的 AI 问答助手能大幅提升工作和生活效率。Dify 作为强大的开源 AI 应用开发框架,能帮助我们轻松搭建个性化 AI 问答助手,借助Dify与华为云Flexus的云服务支持,整个上线流程无需额外配置服务器与网络,使得知识库问答系统真正实现快速部署与高效上线。
正式发布后,知识库将持续提供服务,用户还可定期更新内容或调整工作流逻辑,确保系统运行的持续性与智能性, 在成功部署高可用版 Dify 平台之后,我们可以开始实际构建一个基于 DeepSeek 模型的智能问答应用。整个过程涵盖平台登录、模型接入、知识库构建以及聊天应用的创建,能够完整演示如何快速搭建一个可用的生成式 AI 聊天机器人。
828 B2B企业节已经开幕,汇聚千余款华为云旗下热门数智产品,更带来满额赠、专属礼包、储值返券等重磅权益玩法,是中小企业和开发者上云的好时机,建议密切关注官方渠道,及时获取最新活动信息,采购最实惠的云产品和最新的大模型服务!
更多推荐



所有评论(0)