Dify:从构思到生产的一站式解决方案
Dify 一词源自 Define + Modify,意指定义并且持续的改进你的 AI 应用,它是为你而做的(Do it for you)。
Dify 是一款开源的大语言模型(LLM) 应用开发平台,它融合了后端即服务(Backend as a Service, BaaS)和大语言模型运维(LLMOps)的理念,旨在使开发者能够快速搭建生产级的生成式AI应用。Dify 通过提供一系列工具和服务,简化了从概念到部署的整个过程,让即使是非技术人员也能参与到AI应用的定义和数据运营过程中。
Dify 的核心特点
-
全面的技术栈支持:Dify 内置了构建 LLM 应用所需的关键技术栈,包括对数百个模型的支持、直观的Prompt编排界面、高质量的检索增强生成(RAG)引擎、稳健的Agent框架、灵活的工作流编排等。这为开发者节省了许多重复造轮子的时间,使其可以专注于创新和业务需求。
-
可视化编排与管理:Dify 提供了一个可视化的编排环境——Dify Orchestration Studio,用户可以在其中设计和测试生成式AI应用的工作流。此外,还有Prompt IDE,一个专门为提示词工程师设计的友好易用的开发工具,支持无缝切换多种大型语言模型。
-
强大的 RAG 管道:Dify 的RAG功能允许安全地构建私有数据与大型语言模型之间的数据通道,支持直接上传PDF、TXT等各种文本格式,从而实现更精准的内容生成。
-
企业级 LLMOps:对于需要监控和优化模型推理的企业来说,Dify 提供了可观测性功能,如记录日志、标注数据、训练并微调模型等,确保了模型性能随时间的变化可以被跟踪和改进。
-
后端即服务解决方案:基于BaaS理念设计的API,使得将AI集成到任何产品中变得简单得多。通过这些API,可以轻松地将生成式AI能力添加到现有的应用程序中,而无需担心复杂的后端实现细节。
-
智能体(Agent)DSL:Dify 支持使用低代码方式构建面向特定业务领域的半自主智能体,这些智能体可以执行复杂任务,比如根据上下文动态调用不同的API或服务。
-
插件工具箱:不仅支持自行封装API为插件,还可以集成第三方插件,为LLM提供额外的功能扩展。例如,可以通过集成Google搜索、DALL·E、Stable Diffusion 和 WolframAlpha等工具来增强应用的能力。
-
灵活的部署选项:无论是选择云服务还是自托管版本,Dify 都提供了相应的部署方案。云服务提供了零设置体验,包含沙盒计划内的免费GPT-4调用;而对于希望完全掌控基础设施的企业,则可以选择社区版本进行本地化部署。
-
企业解决方案:针对企业用户,Dify 还提供了诸如单点登录(SSO)、访问控制等功能,并且在AWS Marketplace上提供Premium选项,允许定制品牌和徽标。
为什么选择 Dify?
Dify是为了解决实际问题而设计的一个完整的工程化平台。相比于LangChain这样的开发库,后者更像是一个带有各种工具的工具箱,而Dify则更像是一套经过精心设计和测试的脚手架系统,帮助开发者更快更好地构建AI应用。更重要的是,作为一个开源项目,Dify由专业的全职团队和活跃的社区共同维护和发展,保证了其持续的进步和技术领先性。
总之,Dify 是一个致力于降低AI应用开发门槛的平台,它不仅适用于专业开发人员,也适合那些想要探索AI技术但缺乏相关经验的人士。无论你是想创建对话机器人、自动化工作流,还是其他类型的智能应用,Dify 都能为你提供必要的支持和服务。
Dify 具有模型中立性,相较 LangChain 等硬编码开发库 ,Dify 是一个完整的、工程化的技术栈,而相较于 OpenAI 的 Assistants API 你可以完全将服务部署在本地。
Dify部署
Dify 社区版即开源版本,你可以通过以下两种方式之一部署 Dify 社区版:
在 GitHub 上查看 Dify 社区版。
我们本次选择 Docker Compose 的方式进行部署
安装 Dify 之前, 请确保你的机器已满足最低安装要求:
CPU >= 2 Core
RAM >= 4 GiB
Linux platforms
Docker 19.03 or later
Docker Compose 1.28 or later
克隆 Dify 代码仓库
git clone https://github.com/langgenius/dify.git
启动 Dify
进入 Dify 源代码的 Docker 目录
cd dify/docker
复制环境配置文件
cp .env.example .env
启动 Docker 容器
根据你系统上的 Docker Compose 版本,选择合适的命令来启动容器。你可以通过 $ docker compose version
命令检查版本,详细说明请参考 Docker 官方文档:
-
如果版本是 Docker Compose V2,使用以下命令:
docker compose up -d
-
如果版本是 Docker Compose V1,使用以下命令:
docker-compose up -d
运行命令后,你应该会看到类似以下的输出,显示所有容器的状态和端口映射:
[+] Running 11/11
✔ Network docker_ssrf_proxy_network Created 0.1s
✔ Network docker_default Created 0.0s
✔ Container docker-redis-1 Started 2.4s
✔ Container docker-ssrf_proxy-1 Started 2.8s
✔ Container docker-sandbox-1 Started 2.7s
✔ Container docker-web-1 Started 2.7s
✔ Container docker-weaviate-1 Started 2.4s
✔ Container docker-db-1 Started 2.7s
✔ Container docker-api-1 Started 6.5s
✔ Container docker-worker-1 Started 6.4s
✔ Container docker-nginx-1 Started 7.1s
最后检查是否所有容器都正常运行:
docker compose ps
在这个输出中,你应该可以看到包括 3 个业务服务 api / worker / web
,以及 6 个基础组件 weaviate / db / redis / nginx / ssrf_proxy / sandbox
。
通过这些步骤,你应该可以成功在本地安装 Dify。
更新 Dify
进入 dify 源代码的 docker 目录,按顺序执行以下命令:
cd dify/docker
docker compose down
git pull origin main
docker compose pull
docker compose up -d
访问 http://ip:80
🔥🔥🔥 下篇我们将通过Dify和Ollama来搭建基于RAG的企业智能问答系统,欢迎跳转阅读《Ollama、Dify和RAG:企业智能问答系统的黄金配方》。
🔥🔥🔥 下面是笔者到目前为止学习和整理的大模型相关的一些文章,欢迎感兴趣的小伙伴阅读+点赞+收藏。👍🏻👍🏻👍🏻🔥🔥🔥
大模型学习之路
大模型知识篇
【大模型知识篇】论文解读:Transformer - Attention Is All You Need
【大模型知识篇】Transformer代码解读-从零开始实现
大模型体验篇
【大模型体验篇】文生图stable-diffusion-webui安装入门教程
【大模型体验篇】本地问答系统-部署Ollama、Open WebUI
【大模型体验篇】Vanna-ai基于检索增强(RAG)的sql生成框架
【大模型体验篇】AI半身数字人开箱体验 - 开源项目EchoMimicV2
大模型实战篇
【大模型实战篇】NVIDIA TensorRT-LLM 大模型推理框架实践
【大模型实战篇】LLaMA-Factory大模型微调实践 - 从零开始