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

2024-05-13 10:35:22 58点赞 495收藏 48评论

很多小伙伴要求老宁安排一期大语言模型(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并下载到本地。

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

  • /volumes/app/storage

  • /volumes/db/data

  • /volumes/redis/data

  • /volumes/weaviate

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

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

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

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

反向代理

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

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

Dify 功能

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

探索

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

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

工作室

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

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

知识库

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

聊天机器人

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

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

知识库

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

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

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

🔻 创建一段txt并导入。

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

🔻 进行文本分段和清洗。

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

🔻 分段和清洗完成。

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

工作流

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

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

🔻 处理检索的信息。

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

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

使用群晖部署自己的高级AI助理,个人、企业降本提效的必备工具

后记

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

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

我是老宁

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

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

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

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

展开 收起

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

2299.95元起

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

2179元起

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

Synology 群晖 DS920+ 4盘位 NAS存储(J4125、4GB)

2190.84元起

Synology 群晖 DS923+ 4盘位 万兆扩展 NAS网络存储服务器 私有云 企业团队云盘 标配(不含硬盘)

Synology 群晖 DS923+ 4盘位 万兆扩展 NAS网络存储服务器 私有云 企业团队云盘 标配(不含硬盘)

3996.65元起

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核 、无内置硬盘)

Synology 群晖 DS423+ 4盘位 NAS网络存储 (Intel四核 、无内置硬盘)

3055.03元起

Synology 群晖 DS1821+ 8盘位NAS (V1500B、4GB)

Synology 群晖 DS1821+ 8盘位NAS (V1500B、4GB)

8899元起

Synology 群晖 DS1821+ 8盘位 NAS(V1500B、4GB)

Synology 群晖 DS1821+ 8盘位 NAS(V1500B、4GB)

7196元起

Synology 群晖 DS223j NAS网络存储服务器 私 双盘位

Synology 群晖 DS223j NAS网络存储服务器 私 双盘位

1317元起

Synology 群晖 DS1522+ 5盘位NAS(锐龙R1600、8GB)

Synology 群晖 DS1522+ 5盘位NAS(锐龙R1600、8GB)

5439元起

Synology 群晖 DS420+ 4盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS420+ 4盘位NAS (赛扬J4025、2GB)

3090元起

群晖(Synology)DS124单盘位NAS网络存储服务器私有云智能相册文件自动同步

群晖(Synology)DS124单盘位NAS网络存储服务器私有云智能相册文件自动同步

1399元起

Synology 群晖 DS720+ 双盘位NAS(J4125、2GB)

Synology 群晖 DS720+ 双盘位NAS(J4125、2GB)

4099元起

synology群晖nas云存储ds920+中小型企业办公网络存储群辉家庭个人私有云盘四盘位NAS备份硬盘服务器ds918+(DS920+希捷企业级16T*4)

synology群晖nas云存储ds920+中小型企业办公网络存储群辉家庭个人私有云盘四盘位NAS备份硬盘服务器ds918+(DS920+希捷企业级16T*4)

14203元起

Synology 群晖 DS416 企业级 NAS网络存储

Synology 群晖 DS416 企业级 NAS网络存储

暂无报价

Synology 群晖 DS223 2盘位NAS(Realtek RTD1619B、2GB)

Synology 群晖 DS223 2盘位NAS(Realtek RTD1619B、2GB)

2299元起

Synology 群晖 DS1621+ 六盘位NAS (V1500B、4GB)

Synology 群晖 DS1621+ 六盘位NAS (V1500B、4GB)

6799元起

文中相关商品

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)
Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)
48评论

  • 精彩
  • 最新
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
天猫超级红包
距结束::
每天领现金,最高24888元
红包按钮
最新文章 热门文章
495
扫一下,分享更方便,购买更轻松