Dify知识库搭建秘籍:为你的智能应用注入灵魂
掌握Dify搭建知识库,能让你的智能应用更懂用户。上一期的扩展挑战里提到一个很实用的方向:用“上下文”添加爆款文案材料,让输出质量和稳定性都上一个台阶。为了把这个案例打得更透,也激发更多灵感,这期我们专门聊聊怎么为应用注入“上下文语料”——说白了,就是怎么把你的个人经验和行业洞察,变成智能应用的灵魂。
思路其实不复杂:先创建并配置一个Dify知识库,然后在应用里把上下文指向它。来一步步拆解。
一)添加上下文
在应用中点击“添加上下文”,会弹出“选择引用知识库”的窗口。
所以,第一步必须先把知识库建好。
二)创建知识库
1. 创建一个空知识库
进入知识库页面,在左下角点击“创建一个空知识库”,比如取名“网络发疯文学”——专门存放网络发疯类文案。
2. 添加文件
选择本地文件上传,把本地的知识文档导进来。
选中文件后,点击“下一步”。
3. 文本分段与清洗
为了提升LLM的检索效率和回答精准度,Dify提供了两种分段模式:通用和父子。选择哪种,取决于文档类型和应用场景。
通用分段模式
- :默认是
分段标识符
,即按段落分块。 - :分段内字符数上限,超出强制分段。默认500 Tokens,最大4000 Tokens(中文里1个Token约1~1.8个汉字)。
分段最大长度
- :段与段之间的重叠部分,建议设为分段长度Tokens的10%~25%。
分段重叠长度
父子分段模式
- :默认
分段标识符
,按段落切分。 - :默认500 Tokens,最大4000 Tokens。
分段最大长度
- :不分段,把整个文档当做一个父分段,适合文本量小但段落间互有关联的场景。
全文
此外,父子模式还支持文本预处理规则,用来过滤无意义内容,比如替换连续空格、换行符、制表符,删除URL和邮箱地址等。
由于这次导入的文档比较小,选的是「父子分段+全文」方式。设置好之后点击“预览块”,结果遇到了报错:Default model not found for ModelType.TEXT_EMBEDDING。
三)Embedding模型配置
Embedding模型负责把文字转换成计算机能理解的数字向量,让机器能理解词义和语境——比如搜索时找出意思最接近的结果。报错意味着Dify找不到需要的模型定义文件。解决方法很直接:安装一个Embedding模型。
3.1 安装模型(用Ollama)
ollama pull nomic-embed-text:latest
3.2 在Dify中配置模型
进入“设置 → 模型供应商 → Text Embedding”,输入模型名(nomic-embed-text)和Ollama URL,点击保存。
在模型列表里可以确认是否添加成功。
现在回到知识库数据处理页面,点击“预览”,分段结果就出来了。
检索设置可以先保持默认的向量检索。至此,文档上传完成,等待向量化处理结束即可。
再回到最开始的应用页面,点击“添加上下文”,就能看到刚生成的知识库,点击“添加”就行。
设置查询变量,比如选择“场景”作为查询条件,让模型根据场景生成回复。
四)效果验证
1. 知识库是否关联应用
2. 模型是否利用知识库学习后输出
查看模型调试日志,对比引入知识库前后的输出:
引入前:
哇塞!这世界真是乱啊!???"风中和凌乱"}""凌乱到混乱",反正乱!混乱的风中和混乱,混乱的混乱里和混乱!混乱还是混乱,混乱在哪儿都混乱!✨✨✨这乱得离谱的好事不看后悔! unserialize系列第三弹来啦!#凌乱到混乱 #混乱的风
引入后:
在风中飞舞的不仅仅是蝴蝶,还是我的心跳声~风中狂野,心随风飘,仿佛置身于一个充满魔力的世界!"疯了才能听见内心的声音" ?每一片落叶都是故事的开始,每一次转身都是命运的转折点!#疯点到我 #疯狂的风中生活 #风中的狂想曲
有意思吧?大模型的创造力就像一座待你开挖的金矿。写到这里,不妨思考一下:如果能把每次高质量输出的内容反向输入给应用,会不会形成正向循环?这或许是下一期可以研究的方向。
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名