Dify 指南:用于开发大型语言模型(LLM)应用的开源平台
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的领域特定专业知识。
如何使用?
- 网页登录
直接从网站登录,创建账户以构建您自己的 AI 应用程序。但这不是免费的,用户可以查看定价以了解哪种计划最适合您的应用程序。当然,也有一定数量的免费配额可供使用。链接是:https://cloud.dify.ai/apps
- 社区版部署
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 应用程序。