菜单

应用管理

相关源文件

本文档介绍了 Dify 中的应用全生命周期管理系统,包括 AI 应用的创建、配置、发布、导入/导出和删除。该系统支持所有应用模式:聊天、续写、工作流、高级聊天和智能体聊天。

有关内部工作流执行系统的信息,请参阅 工作流引擎。有关模型配置和提供者集成的详细信息,请参阅 模型提供者集成

核心应用管理架构

应用管理系统围绕分层架构构建,API 控制器、业务服务和数据模型之间有清晰的分离。

来源:api/controllers/console/app/app.py1-363 api/services/app_service.py1-398 api/services/app_dsl_service.py1-780 web/app/(commonLayout)/apps/AppCard.tsx1-478 web/service/apps.ts1-173

应用 CRUD 操作

应用创建与配置

应用通过 AppService.create_app() 方法创建,该方法根据指定应用模式处理初始化。

允许的创建模式在 ALLOW_CREATE_APP_MODES 中定义,包括:["chat", "agent-chat", "advanced-chat", "workflow", "completion"]

来源:api/controllers/console/app/app.py28-115 api/services/app_service.py74-164

应用更新与管理

系统为不同应用属性提供精细化的更新操作

操作API 端点控制器方法目的
通用更新PUT /apps/{id}AppApi.put()更新名称、描述、图标
名称更新POST /apps/{id}/nameAppNameApi.post()快速更改名称
图标更新POST /apps/{id}/iconAppIconApi.post()更新应用图标和背景
站点状态POST /apps/{id}/site-enableAppSiteStatus.post()启用/禁用 Web 应用
API 状态POST /apps/{id}/api-enableAppApiStatus.post()启用/禁用 API 访问

来源:api/controllers/console/app/app.py117-321 api/services/app_service.py225-307

DSL 导入/导出系统

DSL(领域特定语言)系统支持使用 YAML 格式完成应用导入和导出,支持版本兼容性和依赖管理。

版本兼容性系统

DSL 系统使用语义化版本控制,当前版本为 CURRENT_DSL_VERSION = "0.3.0"。版本兼容性由 _check_version_compatibility() 处理。

  • 已完成:导入版本等于或旧于当前微版本
  • 已完成(有警告):导入版本旧于当前次要版本
  • 待定:导入版本新于当前版本或旧于当前主版本

来源:api/services/app_dsl_service.py42-94 api/services/app_dsl_service.py116-317

依赖管理

DSL 系统提取和管理工作流图和模型配置中的依赖项

来源:api/services/app_dsl_service.py612-743 api/services/app_dsl_service.py379-401

应用复制与转换

应用复制

应用复制通过 DSL 导出/导入机制实现,确保应用完整复制

来源:api/controllers/console/app/app.py177-217 web/app/(commonLayout)/apps/AppCard.tsx115-140

应用模式转换

系统支持通过 ConvertToWorkflowApi 将基础聊天/续写应用转换为工作流模式。

来源:api/controllers/console/app/workflow.py541-577

前端应用界面

AppCard 组件

AppCard 组件提供了应用管理操作的主要界面。

标签管理集成

通过集成的标签管理系统,应用支持基于标签的组织。

来源:web/app/(commonLayout)/apps/AppCard.tsx40-477 web/app/components/base/tag-management/selector.tsx1-279

发布与站点管理

应用发布配置

应用可以作为 Web 应用和 API 发布,具有精细的控制

属性控制器描述
enable_siteAppSiteStatus启用/禁用 Web 应用界面
enable_apiAppApiStatus启用/禁用 API 访问
站点配置AppSite配置 Web 应用的外观和行为
访问令牌AppSiteAccessTokenReset重置 Web 应用访问令牌

站点配置属性

Site 模型管理 Web 应用的呈现设置,包括主题、语言、域名和安全策略,通过 AppSite.post() 进行配置。

来源:api/controllers/console/app/site.py1-112 api/fields/app_fields.py129-154

应用程序状态管理

应用通过几个相互关联的模型来维护状态

来源:api/fields/app_fields.py6-221 models/model.py(在导入中引用)