【业余玩儿AI】【文档问答】实操记录0825 - 本地Dify知识库Demo

本文主要是介绍【业余玩儿AI】【文档问答】实操记录0825 - 本地Dify知识库Demo,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

电梯

  • 前文回顾
  • 准备: 模型
  • 启动Dify
  • 配置模型
  • 准备知识库
  • 搭建Dify知识库问答
  • 小体会

前文回顾

这里书接上文,上文说到:经过一番折腾本地部署的Dify链接上了Ollama,准备开始在Dify上实现文档问答.
继续记录本地Dify文档问答的过程.很多小坑和试错不经意间就过去了,文章里面只能记录最必要的信息,所谓理论联系实际,实践出真知,有需要的需要自己动手搓一遍.

准备: 模型

全流程涉及到三种模型,LLM(chat),Rerank和Embeding模型, Dify和它的应用配置会需要这些模型的APIKEY.下
关于这三种模型面是我最近的一点认识(毕竟是从0开始学习,这点认识难免是粗浅的)

  1. Remark模型,用来从分段好的知识库种进行检索出和问题最相关的分段
  2. Embedding,把问题和索引出来的结果嵌入到知识库
  3. LLM Chat类的模型,就是用来从知识库里面拉去信息进行对话
    如果只是测试,Remark和Embedding两种模型在Jina传送门都是可以白剽到APIKey的,亲测是可用的;LLM除了本地的Ollama,还有很多LLM是每天都有免费token额度的,用来学习一点儿问题都没有,我就用了google的gemini的apikey.

启动Dify

之前通过docker部署好了Dify,启动它,从localhost/install进行访问,以后会自动跳转.
在这里插入图片描述

配置模型

进入之后,点击右上角用户名称,下拉菜单里面点击设置
在这里插入图片描述
设置页面左上角点击模型供应商,页面里面要在右侧自己配.
在这里插入图片描述

准备知识库

在DIfy主页上面点击知识库,然后左边点创建知识库.右边这个是我已经建好的.
在这里插入图片描述
创建知识库页面点击下面创建一个新的知识库
在这里插入图片描述
输入完知识库名称进入新知识库的准备界面,我输入的是Demo
在这里插入图片描述
点击下面的添加文件或者右边的加号都可以添加文件,文件支持拖拽,文件添加完点击下面下一步
在这里插入图片描述
配置分段和清洗, 我这里选了的右侧经济的索引方式.
在这里插入图片描述
下面检索设置的向量检索这里,下面有一行蓝色的知识库设置,可以现在设置也可以上传文件之后再设置,我是在上传之后设置的.
点击保存并处理,点击之后要稍等一会儿在知识库页面才会出现文件.
通过主页进入知识库,选中刚才新建的知识库,进入
在这里插入图片描述
点击左边的设置, 这里因为用的是白剽的rerank和embeding模型,所以可以厚着脸皮选择左侧的高质量,选中之后配置下面的embedding模型,下面检索设置这里选择混合检索,点击rerank模型,这里选择好rerank模型.
在这里插入图片描述
点击保存. 这样知识库就就绪了.
不放心可以回到知识库,点击左侧的召回测试,从你的文档里面复制粘贴一段内容,发送之后会在右侧预览召回的片段.

搭建Dify知识库问答

会到主页,选择工作室页面,点击从应用模板创建
在这里插入图片描述
这里会看到很多已经存在的工作流Demo,我选择了Knowledge Retreival+Chat这个,和我的目标非常相近.
在这里插入图片描述
开始配置,可以看到右上角有个黄色的标注1,这个是配置检查,有错误会在这里查看具体是什么问题.先不管.
在这里插入图片描述
Start这个不需要修改.点击第二个节点Knowledge Retrieval,这里按照下图123顺序添加好知识库.
在这里插入图片描述
然后会自动跳出来召回设置,配置rerank模型就好了.配置完上面那个黄色的标志1就没了.之前就是因为这个召回的配置里面rerank模型是空的所以检查有错误.
在这里插入图片描述
接下来配置第三节点,LLM,按照下图顺序进行配置,LLM模型那按照各自的情况选择:在这里插入图片描述
选好LLM模型之后会自动跳出来模型的参数配置. 参数的边上悬浮可以看到参数的意义.
在这里插入图片描述
配置完了之后,可以看到右侧system这里,实际是permote里面system部分的消息.我配置的这个流程主要是为了快速了解AESQ100的相关内容, 然后输出的内容我需要是mark down格式,后面可以复制了直接粘贴到文件,然后再找个AI工具做成PPT,所以作为了微调,如下:

You are a helpful assistant and an expert in AEC_Q100, answer questions from user about AEC_Q100 testing.
Use the following context as your learned knowledge, inside <context></context> XML tags.
<context>
{{#context#}}
</context>
When answer to user:
- If you don't know, just say that you don't know.
- If you don't know when you are not sure, ask for clarification.
Avoid mentioning that you obtained the information from the context.
And answer according to the language of the user's question in markdown format.

最后第四节点,answer这里是不需要调整的. 最后点击右上角发布,按照顺序点.这里要注意左侧那个标志,里面会对配置进行检查,如果有问题会用黄色标志进行提示.
在这里插入图片描述
点击运行会直接进入chat界面. 这个页面的链接可以保存, dify运行的前提下是可以直接进入的.
在这里插入图片描述

小体会

  1. 本来目标是做文档问答的,是希望把每个文档都进行提炼,然后做个PPT. 但是这个应用作为知识库问答的工具, 会根据问题在整个知识库里面搜索和回答. 为了缩小它的搜索范围,我每次只在知识库里面启用1个文档,然后只问关于这个文档的问题.
  2. 关于模型的参数, 自己的理解:TopK是 检索结果按照匹配程度排序并筛出最匹配的数量, Score是个认为相似的阈值, 温度是模型思维发散程度,越小回答越接近原始信息, TOPP类似,越小越确定.
  3. 模型,整个应用涉及的模型至少有三个,最后的结果和每个模型的性能都是有关系的.想要达到合适的效果,还是要画些精力来了解模型的.
  4. 应用流程, 当然整个应用的流程也是必须要了解清楚的, 从而可以更清楚应用对模型的需要.
  5. 读了Dify的帮助文档, 对我这种目标远大的小卡拉米来说算是很有价值的学习资料.

.
.
.
D:\mybin>python “D:\mybin\PythonScripts\getdays.py”


Since I started self-learning AI, it has been 13 days already. Keep going!

这篇关于【业余玩儿AI】【文档问答】实操记录0825 - 本地Dify知识库Demo的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1105826

相关文章

使用Python快速实现链接转word文档

《使用Python快速实现链接转word文档》这篇文章主要为大家详细介绍了如何使用Python快速实现链接转word文档功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 演示代码展示from newspaper import Articlefrom docx import

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

关于Spring @Bean 相同加载顺序不同结果不同的问题记录

《关于Spring@Bean相同加载顺序不同结果不同的问题记录》本文主要探讨了在Spring5.1.3.RELEASE版本下,当有两个全注解类定义相同类型的Bean时,由于加载顺序不同,最终生成的... 目录问题说明测试输出1测试输出2@Bean注解的BeanDefiChina编程nition加入时机总结问题说明

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

一文教你使用Python实现本地分页

《一文教你使用Python实现本地分页》这篇文章主要为大家详细介绍了Python如何实现本地分页的算法,主要针对二级数据结构,文中的示例代码简洁易懂,有需要的小伙伴可以了解下... 在项目开发的过程中,遇到分页的第一页就展示大量的数据,导致前端列表加载展示的速度慢,所以需要在本地加入分页处理,把所有数据先放

本地搭建DeepSeek-R1、WebUI的完整过程及访问

《本地搭建DeepSeek-R1、WebUI的完整过程及访问》:本文主要介绍本地搭建DeepSeek-R1、WebUI的完整过程及访问的相关资料,DeepSeek-R1是一个开源的人工智能平台,主... 目录背景       搭建准备基础概念搭建过程访问对话测试总结背景       最近几年,人工智能技术

SpringBoot整合DeepSeek实现AI对话功能

《SpringBoot整合DeepSeek实现AI对话功能》本文介绍了如何在SpringBoot项目中整合DeepSeekAPI和本地私有化部署DeepSeekR1模型,通过SpringAI框架简化了... 目录Spring AI版本依赖整合DeepSeek API key整合本地化部署的DeepSeek

如何在本地部署 DeepSeek Janus Pro 文生图大模型

《如何在本地部署DeepSeekJanusPro文生图大模型》DeepSeekJanusPro模型在本地成功部署,支持图片理解和文生图功能,通过Gradio界面进行交互,展示了其强大的多模态处... 目录什么是 Janus Pro1. 安装 conda2. 创建 python 虚拟环境3. 克隆 janus