玩 AI 必看!NAS 轻松部署 Dify ,一键构建专属本地知识库!

291 阅读5分钟

 

Dify:

一个开源的 LLM 应用程序开发平台。提供从 Agent 构建到 AI workflow 编排、RAG** 检索、模型管理等能力,轻松构建和运营生成式 AI 原生应用。

主要特点:

    1. 工作流程: 在可视化画布上构建和测试强大的 AI 工作流,利用以下所有功能及其他功能。
    1. 全面的模型支持: 与来自数十个推理提供商和自托管解决方案的数百个专有/开源 LLM 无缝集成,涵盖 GPT、Mistral、Llama3 和任何与 OpenAI API 兼容的模型。
    1. 提示 IDE: 直观的界面,用于制作提示、比较模型性能以及向基于聊天的应用程序添加其他功能,例如文本转语音。
    1. RAG 管道: 广泛的 RAG 功能,涵盖从文档摄取到检索的所有内容,并为从 PDF、PPT 和其他常见文档格式中提取文本提供开箱即用的支持。
    1. 代理能力: 您可以根据 LLM Function Calling 或 ReAct 定义代理,并为代理添加预构建或自定义工具。Dify 为 AI 代理提供了 50+ 内置工具,例如 Google 搜索、DALL·E、稳定扩散和 WolframAlpha**。
    1. LLMOps: 监控和分析一段时间内的应用程序日志和性能。您可以根据生产数据和注释不断改进提示、数据集和模型。
    1. 后端即服务: Dify 的所有产品都带有相应的 API,因此您可以毫不费力地将 Dify 集成到您自己的业务逻辑中。

最低设备配置:

  • • CPU >= 2 Core
  • • RAM >= 4 GiB

安装

由于这个 Dify 涉及比较多容器和参数,这里我就不做化简了,完全按照官网模板进行部署了

各个容器工作的流程图:

来到 Github 仓库,下载项目到本地

github.com/langgenius/…

解压文件后,进入 docker 目录找到 .env.example 配置文件

编辑器打开,搜索“SSL_PORT”

TIP:

按实际情况修改端口,避免已经被占用

将着 80 和 443 端口改一下

这里也需要对应进行修改

将文件重命名为 .env

在 NAS 的 docker 路径下创建一个 dify 文件夹,将上面的 docker 文件夹复制到这里(只要这个文件夹就行了,其他不用)

点击“新增项目”

填写名称,路径选择 dify 的路径就行(会提示已经有模板文件,选用就行)

勾选“创建项目后立即启动”,点击“确定”

等待构建完成,要等比较久

注意里面每个容器都要正常运行,不然就是有问题(去看对应容器的日志)

使用

浏览器中输入 http://NAS的IP:1880 就能看到界面

这里需要等待初始化完成

启动完成,设置管理员账号

登录管理员账号

成功进入面板

对接模型

点击头像,进入设置

关联教程:

One API 接口管理和分发系统

Ollama 本地大模型框架

选择需要的模型供应商安装就行(有问题刷新网页,多安装几次)

点击可以直接看模型数量(连接 Ollama 好像有点问题,填写信息正确就行了)

创建知识库

添加完模型以后,创建知识库

TIP:

如果“下一步”按钮一直灰色,等一下就好了

按需求选择,这里我导入一个 txt 文本,点击下一步

修改以后,可以点击预览

这里可以选择模型,没有问题就点击“保存并处理”

这样知识库就创建完成了,点击前往

这里还可以不断添加文件

召回测试,这里可以测试文本的命中率

根据需要可以进行调节(这里我就不班门弄斧了)

创建应用

点击创建一个空白应用

可以选择应用模式很多,说实话我也不太会

填写应用名称,点击创建

这里添加之前创建的知识库(不然就和普通调用 API 问答没区别了)

输入问题进行测试

回复效果还是不错的

没有问题就可以点击发布了

更多功能

Dify 的功能非常强大,应该也是目前最多人用的。很多高级功能我是没有用的,这里就简单截图有需要的建议自行部署。

应用模板

模型

工具

Agent 策略

扩展

总结

一开始部署我是觉得挺头大的,感觉这个联动很多应用,这也是我为什么一直没做教程的原因之一。不过成功运行项目,我才发现也没有想象中困难,整个部署过程非常简单。

Dify 之所以这么多人用,用过以后确实觉得实至名归。界面美观大气,操作逻辑清晰,可扩展能力强,生态插件丰富,其他类似的项目和什么和它比。这里推荐一下,如果你也想弄一个知识库,可以考虑部署 Dify 试试,或许你一直找的就是这款应用。

综合推荐:⭐⭐⭐⭐⭐(玩 AI 都应该部署)

使用体验:⭐⭐⭐⭐(界面 UI 和交互逻辑都很不错)

部署难易:⭐⭐⭐(可以说很难,也可以说很简单)︎

初次启动,资源占用情况

运行一段时间后,资源占用情况

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 ︎