很多小伙伴要求老宁安排一期大语言模型(LLM)相关的文章,今天它终于来了。

Dify 是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。

上面是 Dify 官方对自己的介绍,用大家听得懂的话来说就是:

对于普通用户来说,可以毫不费力地使用 Dify 来打造专属于自己的AI机器人。利用 Dify 的内建工具,可以赋予机器人更多的能力,并且它们可以通过 web 界面轻松地与家人共享。

对于企业用户,Dify 不仅可以接入第三方的语言模型,还支持接入自建的本地或云端开源模型。借助Dify的知识库功能,企业能够方便地构建一套完全保障隐私、不会发生信息泄露的客户服务机器人。

老宁会详细介绍在群晖上的部署步骤、Dify 的主要功能以及使用演示。

项目地址

https://github.com/langgenius/dify

安装部署

下面介绍两种部署的方法,通过Docker Compose和群晖部署,本文会着重介绍通过群晖来部署。

Docker Compose

克隆 Dify 源码到本地机器

git clone https://github.com/langgenius/dify.git

进入Dify源代码中的docker目录,执行如下命令启动Dify:

cd dify/docker docker compose up -d

群晖部署

Dify 涉及到镜像众多,环境变量也非常复杂,所以我们要借助群晖 Container Manager 套件的项目来运行 docker 容器。

打开 docker-compose 文件https://github.com/langgenius/dify/blob/main/docker/docker-compose.yaml并下载到本地。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

打开群晖,新建用以存放 Dify 配置的文件夹dify,并把前面下载的docker-compose.yaml文件上传到该文件夹中。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

打开 docker-compose 文件,把最后面的 nginx 相关的配置注释。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

同时修改 api 下的几个环境变量为将要反代的 URL 地址。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

放开 api 下 ports 的5001端口注释。如果端口被其他服务占用,可以修改左边的5001为其他任意端口(5001一般都会被群晖占用,演示修改为5301)。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

web 下的 URL 地址也要同时修改,并放开 ports 的注释。如果端口被其他服务占用,可以修改左边的3000为其他任意端口。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

根据docker-compose配置的内容,分别在 dify文件夹中 按照以下路径新建对应的文件夹。

  • /volumes/app/storage
  • /volumes/db/data
  • /volumes/redis/data
  • /volumes/weaviate

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

比如/volumes/app/storage代表在 volumes 文件夹中创建app文件夹,再在 app 文件夹中创建 storage 文件夹。

至于为什么要创建上面的文件夹,是因为后面通过 Container Manager 启动项目时,不是以 root 用户进行操作,只有以 root 用户操作才能自动创建文件夹。

我们怎么知道该创建哪些文件夹呢?

这些文件夹是根据每个服务(api服务、worker服务、db服务等)的挂载路径来配置的(:号前面的宿主机路径就是要创建的文件夹)。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

创建完文件夹后,需要把 dify 文件夹增加 Everyone 可读写权限,并勾选应用到这个文件夹、子文件夹及文件选项。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

打开 Container Manager 套件,点击项目,点击新增后,选择前面的 dify 文件夹, docker-compose 文件会被自动导入。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

输入项目名称后,点击下一步创建项目并启动。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

等待项目构建完毕后,可以点击 dify 查看容器下的几个容器是否全部启动成功,全部成功才代表整个项目部署成功。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

反向代理

为了保证服务能在外部访问,需要配置反向代理,下面以 Nginx Proxy Manager 进行演示。

打开 Nginx Proxy Manager 后台,增加新的一个域名,转发的IP为群晖内网IP,端口为前面docker-compose文件中web服务的端口。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

Custom locations 中,新增 /console/api/api/v1/files路径,都转发群晖的IP上,转发的端口和前面 docker-compose 文件中API服务的端口号保持一致(截图只截了一个,一定要把四个路径都添加上去)。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

选择好 SSL证书后,点击保存。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

Dify 功能

用浏览器打开【https://反代域名/install】进行管理员账户设置。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

配置完管理员账户后,就能登录到 Dify 主界面了。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

探索

探索提供了非常多的模版应用。

在探索界面可以把模版应用添加到自己的工作区。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

工作室

工作室可以创建并管理应用。

可以创建空白应用或根据模版创建。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

知识库

可以在知识库中新建知识库,创建好的知识库可以被工作室中的应用调用。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

工具

Dify 提供了许多内置的工具。用户也可以创建自定义工具。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

聊天机器人

接下来演示如何创建一个AI机器人聊天应用。

首先要配置模型供应商。点击右上角的用户名,再点击设置。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

选择模型供应商选项后,可以看到 Dify 默认集成了市面主流的模型供应商,包括我们熟悉的GPT、Gemini、文心一言、通义千问。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

Dify 还支持基于 OpenLLM部署的自建的开源模型以及兼容 Open AI 的模型供应商。如果你想要使用本地模型,那么就可以自己根据 https://github.com/bentoml/OpenLLM的文档自己部署并接入。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

这里使用兼容 OpenAI API 的模型供应商来演示。点击 OpenAI-API-compatible 选项卡后,输入模型名称、API Key以及API的URL地址,点击保存。如果配置没有问题会弹出成功的提示框。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

配置完成后,我们在工作室内创建一个空白应用,类型选择聊天助手。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

进入到应用,可以看到当前应用可以使用的模型,如果配置了多个模型,可以点击切换。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

在输入框中输入文字来测试对话功能是否正常。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

调试没有问题后,就可以把应用发布给其他人使用了。点击发布后,可以看到 Dify 提供了三种访问方式:运行、嵌入网站和访问API。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

运行,就是打开一个类似 GPT 的独立聊天页面,对于普通用户来说非常方便。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

嵌入网站,站长可以把写好的机器人嵌入到自己的网站中。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

访问API,开发者可以自己根据API接口实现与机器人的对话。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

知识库

上面的演示可能让你感觉到好像和https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web类似,并没有什么过人之处。

接下来我们看看 Dify 提供的知识库功能,有了知识库才能让你的机器人更为专业,更懂你。

知识库数据源的导入方式有两种,已有文本和同步Notion内容。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

创建一段txt并导入。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

进行文本分段和清洗。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

分段和清洗完成。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

回到工作室修改老宁的小助手,添加上下文为刚刚创建的知识库,现在他就会根据知识库的内容进行回答了(GPT本身不知道老宁是谁,也不知道老宁的课程表)。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

如果它的回答不知道或者回答不准确,那么需要调整你的知识库,重新清洗或者分段。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

Dify 提供了统计面板,用户可以看到消息数、活跃用户、token消耗等情况。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

工作流

最后我们来演示工作流。有了工作流,可以让我们的AI机器人更为强大。

老宁做了一个工作流应用来演示。当用户向工作流应用提问时,会从知识库中查询符合条件的内容,查询到符合的内容,就交给 LLM 进行处理,再调用 HTTP 请求把结果发送给企业微信机器人。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

如果没有在知识库中查询到相关内容,就会调用必应搜索的API接口进行查询,再把查询到的结果发送到企业微信机器人。

首先需要在开始节点中添加一个查询字段,变量名为:query,用以接受用户的输入。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

增加知识检索节点,选择查询变量为前面新建的query,并添加需要检索的知识库。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

为空代表没有查询到结果,进入必应搜索,不为空就进入LLM节点。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

处理检索的信息。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

必应查询的内容同样为query变量对应的内容。必应搜索需要调用API,免费用户可以每月调用1000次,付费计划可以参考官方https://www.microsoft.com/en-us/bing/apis/pricing。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

配置发送 HTTP 请求节点。Dify 提供了发送到企业微信机器人工具,没研究怎么配置请求参数,所以直接采用 HTTP 节点调 机器人的 Webhook URL(注意BODY请求体中必须包含msgtype字段)。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

运行测试工作流是否正常。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

企业微信收到从知识库中获取的信息。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

询问与知识库无关的内容,会执行必应搜索。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

企业微信收到调用必应搜索查询到的消息。

群晖Docker,走起! 篇二十六:使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

后记

经过老宁对 Dify 的讲解,想必大家对它有了一个初步的认识,这篇文章只能说是抛砖引玉,大家可以发挥自己的想象力,结合自身的需要打造出一个适合自己,适合企业的专属机器人。

你说没有的免费GPT API,还不会使用 OpenLLM部署的开源模型?请持续关注老宁,这些内容都会慢慢安排。

我是老宁

一个热爱技术的程序员和极客,群晖NAS深度玩家!

专注NAS相关技术分享,原创!干货!

觉得老宁的文章对你有帮助,记得点赞、收藏、加关注

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

,

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。