🤖DIfy介绍与部署
2025-3-4
| 2025-6-24
字数 5821阅读时长 15 分钟
type
status
date
slug
summary
tags
category
icon
password
🤖
AI总结 这篇文章详细介绍了 Dify.AI,一个开源的大语言模型(LLM)应用开发平台。文章首先介绍了 Dify 的核心概念,包括其作为后端即服务(BaaS)和 LLMOps 平台的特性,强调了它如何通过工具集成、知识库集成和工作流集成来增强 LLM 的能力。接着,文章详细阐述了 Docker 部署 Dify 的两种方式:完整服务版本和必要服务版本。完整服务版本提供了 Dify 的所有功能,而必要服务版本则针对已有 Postgres 和 Redis 部署的情况,提供了一个精简的部署方案,其中特别指出了对原版配置文件的修改,包括仅保留必要服务、添加容器名称、删除不必要功能和环境变量,以及固定 Docker 服务网络 IP。其还提供的 docker-compose.yml.env 配置文件示例,方便用户根据自身需求进行部署。
English Version
This article provides a detailed introduction to Dify.AI, an open-source Large Language Model (LLM) application development platform. The article begins by introducing the core concepts of Dify, including its features as a Backend-as-a-Service (BaaS) and LLMOps platform, emphasizing how it enhances LLM capabilities through tool integration, knowledge base integration, and workflow integration. Subsequently, the article elaborates on two methods of deploying Dify via Docker: the full-service version and the essential-service version. The full-service version provides all the functionalities of Dify, while the essential-service version offers a streamlined deployment option for scenarios with existing Postgres and Redis deployments. It specifically highlights modifications to the original configuration file, including retaining only essential services, adding container names, removing unnecessary features and environment variables, and fixing Docker service network IPs. It also provide docker-compose.yml and .env configuration file examples to facilitate users in deploying according to their own needs.

一,DIfy基本介绍

1,简介

Dify.AI 是一个开源的大语言模型(LLM)应用开发平台,旨在帮助开发者快速构建生产级生成式 AI 应用,同时降低技术门槛。它集成了后端即服务(Backend-as-a-Service)和 LLMOps 的理念,支持 GPT 系列模型以及其他大型语言模型,通过工具和接口增强 LLM 的服务能力,并将其无缝集成到现有业务中的。
  • Dify 提供两种工具类型:第一方工具(平台内置)和 自定义工具(用户导入的 API 工具)。
    • 这些工具可以赋予 LLM 执行联网搜索、科学计算、绘制图片等功能,从而增强其与外部世界的交互能力。
  • 通过上传长文本、结构化数据等内容,使用向量化处理后形成知识库,使 LLM 能基于最新或私有数据进行上下文对话。
    • 使用检索增强生成(RAG)技术,将知识库中的相关内容与模型生成能力结合。
    • 支持多种数据格式,如文本、CSV、PDF 等,并能自动解析其中的结构化信息。
  • 将一个个微小的工具和节点组装成一个工作流,从而提高了 LLM 应用面向复杂任务的性能,其主要包括两部分
    • Chatflow:面向对话类情景,包括客户服务、语义搜索、以及其他需要在构建响应时进行多步逻辑的对话式应用程序。
    • Workflow:面向自动化和批处理情景,适合高质量翻译、数据分析、内容生成、电子邮件自动化等应用程序。

2,BaaS

Dify 的“后端即服务”(Backend as a Service, BaaS)理念,旨在通过封装复杂的后端功能,为开发者提供简化且高效的 AI 应用开发体验。
(1)API 驱动的后端服务:Dify 为所有功能提供标准化的 API,开发者可以直接调用这些接口,将大型语言模型(LLM)的能力集成到前端应用或现有业务中,而无需自行开发复杂的后端架构. (2)屏蔽复杂性:开发者无需关注后端部署、模型管理或供应商切换等细节。Dify 已对 LLM 的基础能力进行封装,并集中管理密钥和模型配置。
(3)实时生效与可视化管理:用户可以通过 Dify 的可视化界面设计和运营应用,例如调整 Prompt、分析日志或标注数据。这些更改能够实时在应用中生效,无需额外部署。

3,LLMOps

LLMOps(Large Language Model Operations)是一个涵盖了大型语言模型(如GPT系列)开发、部署、维护和优化的一整套实践和流程,其目标是确保高效、可扩展和安全地使用这些强大的 AI 模型来构建和运行实际应用程序。它涉及到模型训练、部署、监控、更新、安全性和合规性等方面。
  1. 数据准备:平台提供数据收集和预处理工具,简化了数据清洗和标注的工作,最小化甚至消除了编码工作。
  1. Prompt Engineering:所见即所得的 Prompt 编辑和调试,可根据用户输入的数据进行实时优化和调整。
  1. 嵌入和上下文管理:自动处理长上下文的嵌入、存储和管理,提高效率和扩展性,无需编写大量代码。
  1. 应用监控与维护:实时监控性能数据,快速发现和处理问题,确保应用程序的稳定运行,提供完整的日志记录。
  1. 微调数据准备:提供人工标注知识库的批量导出,在应用运营过程中收集线上反馈数据持续改善模型效果。
  1. 系统和运营:易用的界面,非技术人员也可参与,支持多人协同,降低开发和维护成本。与传统开发方式相比,Dify 提供了更加透明和易于监控的应用管理,让团队成员更好地了解应用的运行情况。

二,Docker部署

1,完整服务版本部署

(1)下载docker-compose.yml文件

docker-compose.yaml
langgenius

(2)下载 .env.example文件并修改为.env

.env.example
langgenius

(3)启动Docker容器

根据你系统上的 Docker Compose 版本,选择合适的命令来启动容器。
  • 如果版本是 Docker Compose V2,使用命令:docker compose up -d
  • 如果版本是 Docker Compose V1,使用命令:docker-compose up -d

2,必要服务版本部署

(1)使用该 docker-compose.yml 前提:

  • Postgres部署完毕
    • 提前创建了difydify_plugin数据库
    • 相关参数如下,需要自行修改
  • Reddis部署完毕
    • 相关参数如下,需要自行修改
  • docker设置了dify-net网络
    • 类型为bridge
    • 子网络为172.20.0.0/16
    • 网关为172.20.0.1

(2)此配置相较于原版本的改动

  • 仅保留部分必要的服务,包括api、worker、web、plugin_daemon,且将weaviate作为向量数据库
  • 每个服务都加上了container_name
  • 删除了部分不必要的功能和环境变量,仅适用于自己部署使用
  • 固定各个docker服务的网络ip,方便web端与api端通信

(3)必要服务版本配置文件

docker-compose.yml
.env

三,DIfy的API格式

1,OpenAI官方API格式

(1)请求格式:

(2)响应格式:

2,Dify官方API格式

(1)请求格式:

(2)响应格式:

3,将Dify API转成OpenAI API格式调用

(1)Github项目地址

dify2api
JayLiu7319Updated Apr 4, 2025

(2)Cloudflare Worker代码

基于上述Github代码修改的,通过Cloudlfare Workers进行部署。
DIfy APP创建应用并获取以app-XXX 开头的密钥,模型直接在 https://cloud.dify.ai/app/<app-id>/configuration 中进行设置
V1版本:仅支持对话,单模型,直接以OpenAI格式传入Dify API进行转换。
V2版本:仅支持对话,多模型,通过创建多个应用并设置,以请求不同模型传递DIfy后端不同API方式实现。

四,Dify和FastGPT的对比和特点

1,二者的相同点和不同点

相同点:

  1. 开源性质:两者都是开源项目,允许开发者自由使用和贡献代码
  1. AI应用开发:两个平台都旨在简化AI应用的开发和部署过程
  1. 大语言模型支持:两者都支持使用大型语言模型(LLM)来构建应用
  1. API支持:Dify和FastGPT都提供API接口,方便与其他系统集成

不同点:

  1. 功能重点:
      • Dify更注重提供全面的LLMOps功能,包括数据管理、模型微调等
      • FastGPT专注于快速响应和高效的信息检索
  1. 用户界面:
      • Dify提供更直观的可视化Prompt编排界面
      • FastGPT的界面可能相对简单,但更注重速度和效率
  1. 数据处理:
      • Dify提供更强大的数据收集和预处理工具
      • FastGPT在数据处理方面可能不如Dify全面,但在RAG检索上表现更好

2,Dify的优点

  1. 全面的LLMOps功能:提供从数据准备到模型部署的完整工具链。
  1. 用户友好:直观的界面使非技术用户也能参与AI应用开发。
  1. 强大的数据管理:提供robust的数据收集和预处理工具。
  1. 企业级支持:提供更多适合企业使用的功能,如访问控制和监控。
  1. 灵活性:支持多种模型和自定义插件。

3,FastGPT的优点

  1. 速度优势:提供极快的响应时间,适合需要实时交互的应用。
  1. 高效的RAG检索:在信息检索方面表现出色。
  1. 资源优化:设计注重性能和低计算复杂度。
  1. 适应性强:易于适应各种领域和任务。
  • 工具
  • AI
  • HTML多引擎搜索工具多Linux管理服务工具
    Loading...