如何快速用Dify搭建一个问答系统?

摘要:简单记录下Dify系统的部署,以及可能遇到的各种问题,然后演示一下如何快速的搭建一个问答系统。 为什么用Dify 首先回答为什么用大模型的方案。在没有大模型之前,我们只能把问题和答案存储在数据库中,然后通过模糊检索的方式去检索问题。由于是模
简单记录下Dify系统的部署,以及可能遇到的各种问题,然后演示一下如何快速的搭建一个问答系统。 为什么用Dify 首先回答为什么用大模型的方案。在没有大模型之前,我们只能把问题和答案存储在数据库中,然后通过模糊检索的方式去检索问题。由于是模糊检索,所以检索的准确度可能不高,但是运用大模型的语义理解,就可以进一步的去理解问题,从而匹配到知识库里的内容。 然后为什么Dify,首先,这个是国产的,其次,这个可以私有化部署,而且是Apache2.0的协议,可以商用。这样做公司内部的应用就变得可行。 这个月Coze也开源了,但尚无稳定版本,而且刚开始的版本Bug还会有一些,所以也建议看一下Coze,对比下两个环境的差异。 Dify最近更新的也很频繁,到目前为止已经更新到了1.7这个版本,这个随笔也是围绕这个版本。 为了演示效果,我这里用的还是吃鸡游戏的场景,具体业务中可以替换成自己的实际场景。 此篇我用的是Macos系统,在Windows下部署也不会有太大的差异,主要是把WSL部署好,其它步骤不会差太多。 安装Docker 在MacOS下安装Docker Desktop相对简单些,直接官网下载安装包就可以。 需要注意的是Docker Desktop安装不会有任何问题,但后续的拉取可能会出现各种阻碍。 解决的方法是在docker desktop的Docker Engine的配置里,加入镜像配置。 以下是我自己用的配置。 { "builder": { "gc": { "defaultKeepStorage": "20GB", "enabled": true } }, "experimental": false, "registry-mirrors": [ "https://registry.docker-cn.com", "https://hub-mirror.c.163.com", "https://docker.m.daocloud.io", "https://docker.1panel.live", "https://docker.mirrors.tuna.tsinghua.edu.cn" ] } GIT拉取Dify仓库 在本地找到一个目录,用Terminal定位到这个目录,然后拉取仓库文件。 比如在我本地,我会先创建如下目录。 /User/Yourname/APP/Dify 然后在Terminal里cd到这个目录,运行以下脚本拉取仓库。 git clone https://github.com/langgenius/dify.git 通常来说到这里你会遭遇障碍,针对Github的访问,推荐用Steam++或者网易UU加速器。我自己用的是Steam++,这个是给Steam加速用的,也附带Github的加速。 启动服务 Git拉取完成后,先定位到仓库目录。 cd dify 然后运行以下命令复制配置文件。 cp .env.example .env 最后运行以下命令启动Dify服务。 docker-compose up -d 第一次运行这个命令,本地缺失的镜像会自动从github去拉取,所以这个时间可能会比较长。 在后续如果再运行这个命令的话,如果上一次的镜像没有拉取成功会继续拉取,如果都拉取成功了就直接启动各个镜像。 直到看到以下输出说明拉取和服务都启动成功了。 服务启动成功后,打开浏览器,直接输入localhost或者127.0.0.1就可以打开系统。系统默认用的是80端口。 首次打开系统需要注册一个账号,这个账号需要记住,后续登录可能需要提供。 配置大模型 在主页右上角点击头像,然后点击设置。 在配置大模型之前,你可以可以点击语言选项,把语言切换成中文。 然后在模型供应商里,首先安装模型供应商。 这里可以选择常用的Ollama,这样就可以访问部署在本地的大模型,这里我选择的是通义千问的。 安装完模型供应商后,需要提供在通义千问的API KEY,如何去申请这里不做介绍. 配置成功后会看到如下差不多的界面,在通义千问里,如果看到API-KEY上的绿色小点,就说明配置成功了。 通义千问对新用户提供了一些免费的额度,所以对于学习来说是够用的。 创建知识库 首先创建测试的数据,这里我用Excel文件创建了一个问答模式的知识库,数据如下: 如果你查看其它资料,都是直接把一篇文章直接喂给Dify的知识库。但我发现有些资料如果这么喂的话,系统的识别会有问题,所以改成了这种问答的形式,并且进行了测试,这样看上去识别的准确度高了很多。
阅读全文