Dify 指南:用于开发大型语言模型(LLM)应用的开源平台

difyzhinan

Dify 是一个用于开发大型语言模型(LLM)应用的开源平台,集成了后端即服务(BaaS)和 LLMOps 的概念,使开发者能够快速构建生产级别的生成式人工智能应用。它提供了包括支持数百种模型、直观的提示编排界面、高质量的 RAG 引擎以及灵活的代理框架等关键技术堆栈,帮助开发者节省时间,专注于创新和业务需求。Dify 还解决了如何根据自有数据训练模型、防止AI传递错误信息等问题,使开发者能够快速构建基于大型语言模型的AI应用程序,确保它们是可视化的、可操作的和改进的。此外,Dify 提供了网页登录和社区版部署两种使用方式,支持通过 Docker Compose 进行快速部署。

2024年06月04日

智能体

Dify 指南:用于开发大型语言模型(LLM)应用的开源平台

Dify 简介

Dify 是一个用于开发大型语言模型(LLM)应用的开源平台。它集成了后端即服务(BaaS)和 LLMOps 的概念,使开发者能够快速构建生产级别的生成式人工智能应用。即使是非技术性个体也可以参与定义人工智能应用和 managing 数据操作。

借助 Dify 用于构建 LLM 应用的内置关键技术堆栈,包括支持数百种模型、直观的提示(Prompt)编排界面、高质量的 RAG 引擎以及灵活的代理(Agent)框架,加之易用的界面和 API,开发者可以节省大量重复任务的时间,让他们专注于创新和业务需求。

为何选择 Dify?

如果你对LLM技术的快速发展,比如GPT-4,感到惊讶和兴奋,迫不及待地想要充分利用它,但又发现自己被一些问题所困扰,比如:

  • 我如何根据我们自己的数据或内容“训练”一个模型?
  • AI怎么知道最近发生的事件?
  • 我如何防止AI向用户传递错误信息?
  • 微调和嵌入是什么意思?

那么,Dify正是你需要的。

Dify的目标是让开发者(甚至非开发者)能够快速构建基于大型语言模型的AI应用程序,确保它们是可视化的、可操作的和改进的。通过它,我们可以部署与Assistants API和任何模型 based GPT类似的 capabilities,在灵活和安全的环境中完全控制我们的私有数据。另外,Dify还将使我们的基于实时数据的大型模型应用程序得以建立,帮助我们克服LLM的偏见和幻觉,并增强我们私有LLM的领域特定专业知识。

如何使用?

  1. 网页登录

直接从网站登录,创建账户以构建您自己的 AI 应用程序。但这不是免费的,用户可以查看定价以了解哪种计划最适合您的应用程序。当然,也有一定数量的免费配额可供使用。链接是:https://cloud.dify.ai/apps

  1. 社区版部署

Dify 社区版可以被认为是 Dify 的免费版本,主要特点如下:

Dify 社区版完全开源,可以部署用于本地使用。源代码可在 github 链接下找到。

Dify 社区版提供了创建和管理 LLM 应用程序的基本功能,尽管免费版本可能缺少付费版本中的一些高级功能。

Dify 社区版免费使用,适合个人开发者和小型团队。

部署和维护Dify社区版需要一定水平的 technical proficiency,与Dify云服务相比,它更适合具有某些技术背景的用户。

Dify社区版的功能和性能可能会随着Dify项目的持续更新而持续改进和演变。

总的来说,Dify社区版可以被视为Dify的免费版本,为创建和管理LLM应用程序提供基本功能,适合具有某些技术知识的个人开发者和小型团队。

部署社区版有两种方法:

a) Docker Compose 部署 b) 本地源代码启动

通常,第一种方法更适用于初学者,因此我们在此推荐它,接下来我们将突出具体的部署方法。

Dify的Docker Compose部署

首先,根据您的操作系统安装Docker Desktop。

以下是不同操作系统下 Docker Desktop 的安装链接:

Windows:Windows 上的 Docker Desktop Mac:Mac 上的 Docker Desktop Linux:Docker Compose 安装指南

点击对应的安装包下载链接以安装 Docker,安装完成后,打开软件并按照默认设置一步步完成设置。避免尝试点击任何高级设置或自定义设置。

接下来,我们将进行 Dify 社区版的安装。

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

复制上面的命令并在终端(在 Mac 上称为 Terminal,在 Windows 上称为 CMD 或 PowerShell)中粘贴。

然后,导航到 Dify 主目录下的 docker 目录,并运行一键启动命令:

cd dify/docker
docker compose up -d

启动结果:

[+] 正在运行 7/7
 ✔ 容器 docker-web-1       已启动                                                                                                                                                                                       1.0秒 
 ✔ 容器 docker-redis-1      已启动                                                                                                                                                                                       1.1秒 
 ✔ 容器 docker-weaviate-1   已启动                                                                                                                                                                                       0.9秒 
 ✔ 容器 docker-db-1         已启动                                                                                                                                                                                       0.0秒 
 ✔ 容器 docker-worker-1      已启动                                                                                                                                                                                       0.7秒 
 ✔ 容器 docker-api-1         已启动                                                                                                                                                                                       0.8秒 
 ✔ 容器 docker-nginx-1       已启动

上述命令将启动Dify的所有容器服务,包括API、Worker和Web。

然后检查是否运行顺利。如果顺利,那么一切就绪。

docker compose ps

这包括3个业务服务:api / worker / web,以及4个底层组件:weaviate / db / redis / nginx。

名称 镜像 命令 服务 创建时间 状态 端口 docker-api-1 langgenius/dify-api:0.3.2 "/entrypoint.sh" api 4秒前 运行2秒 80/tcp, 5001/tcp docker-db-1 postgres:15-alpine "docker-entrypoint.s..." db 4秒前 运行2秒 0.0.0.0:5432->5432/tcp docker-nginx-1 nginx:latest "/docker-entrypoint...." nginx 4秒前 运行2秒 0.0.0.0:80->80/tcp docker-redis-1 redis:6-alpine "docker-entrypoint.s..." redis 4秒前 运行3秒 6379/tcp docker-weaviate-1 semitechnologies/weaviate:1.18.4 "/bin/weaviate --hos..." weaviate 4秒前 运行3秒
docker-web-1 langgenius/dify-web:0.3.2 "/entrypoint.sh" web 4秒前 运行3秒 80/tcp, 3000/tcp docker-worker-1 langgenius/dify-api:0.3.2 "/entrypoint.sh" worker 4秒前 运行2秒 80/tcp, 5001/tcp

如果你的系统使用的是 Docker Compose V2 而不是 V1,你需要使用 docker compose 而不是 docker-compose。你可以使用命令 docker compose version 来检查版本。

启动成功后,你可以在浏览器中通过 http://localhost/ 访问 Dify 应用列表页面。

要停止 Dify,你可以执行命令 docker compose down

简而言之,每次启动 Dify 的社区版时,我们只需要导航到 docker 目录并执行命令 docker compose up -d。这个命令将自动启动所有与 Dify 相关的容器服务。

从现在开始,我们已经成功在本地计算机上部署了 Dify,并可以在 Dify 环境中开始构建我们的 AI 应用程序。