本文较长,建议点赞收藏,以免遗失。更多AI大模型开发学习视频籽料,
都在这>>Github<<
搭建知识库问答助手
-
在模型和知识库都准备完成后,就可以搭建一个智能助手了;
-
在
Dify
里,可以使用工作流
的形式来搭建智能助手; -
打开
工作室
->创建空白应用
,选择Chatflow
来创建一个应用
-
最简单的知识库助手是使用
聊天助手
来创建应用,但它太单一,无法进行复杂一点的操作,所以这里选择Chatflow
来创建助手; -
创建完成后会来到编排界面
-
整个流程由多个
节点
组成,Dify
支持多种类型的节点,他们功能不同,本例中使用以下几种类型LLM
:配置大语言模型知识检索
:配置知识库直接回复
:显示输出结果
-
为了更精准的匹配到知识库里的内容,首先添加一个
LLM
节点,命名为拆词
,目的是借用大模型的语言处理功能来对用户的问题进行拆解,这里模型选择qwen2.5:14b
,因为经过多轮测试后qwen2.5:14b
速度和表现达到预期,配置如下:
-
SYSTEM
提示词参考diff- 你的任务是生成用于检索增强生成(RAG)的关键词; - 首先你需要直接记住用户的问题作为一个关键词; - 其次,用户为公司员工,他的问题和公司制度有关,你需要根据用户的问题推测他的真实需求,进行深度思考后给出RAG关键词,关键词总数量控制在10个以内; - 最后你只需将两组关键词合并后返回,每个关键词以","分隔,不需要其他说明和解释; - 你需要使用用户的语言来回复;
-
-
然后添加一个
知识检索
节点,将他和拆词
节点进行连接,查询变量设置为拆词
节点的输出,知识库添加已配置好的知识库
-
其次再添加一个
LLM
节点,将知识检索
节点作为入口和它进行连接,模型选择qwq
,上下文设置为知识检索
节点的输出结果,点击添加消息
,将USER
类型改为ASSISTANT
用来指定模型的提示词
,配置如下:
-
SYSTEM
提示词参考arduino仅基于上下文和以下内容作为授权知识库来回答用户问题,严格隔离外部知识源 {{#context#}}
-
ASSISTANT
提示词参考diff- 如果用户提的问题超出授权知识库范围,你可以委婉回答:已超出知识范围,让用户提供更多的信息; - 有明确定义的名词,不能用相近的词代替; - 公式等内容在输出时不能有格式错误; - 回复信息时能够表明意思且没遗漏信息的情况下尽可能简短; - 如果授权知识库中有公式和数字等,不要对它进行四舍五入操作,保持原来的内容; - 如果用户提的问题和上次提的问题没有很强的关联性,不需要考虑之前的问题;
-
-
最后将这个节点和
直接回复
节点进行连接,回复内容修改为上一节点的输出结果,最终节点连接图如下:
-
这样一个智能助手就配置完成了,可以点击
预览
进行测试,输入一个问题后按回车,如果配置正确,整个工作流将逐步进行,效果如下:
-
测试完成没有问题后就可以发布了,
Dify
可以支持将应用嵌入到其他HTML
页面。
结语
通过三篇内容将最近学的内容梳理了一遍,从基本概念理解,到动手搭建,再到参数调整,最终达到一个基本可用的状态,所有数据都在内网流转;效果没有想像中的那么完美,但是用于知识库是可行的。