dify-plugin api接口文档
·
dify-plugin api接口
Dify Plugin Daemon API 文档
1. 项目介绍
Dify Plugin Daemon 是一个插件管理服务,负责插件的安装、卸载、更新和调用等功能。本文档详细描述了其提供的HTTP API接口。
2. 接口概览
| 模块 | 路径前缀 | 主要功能 |
|---|---|---|
| 健康检查 | /health | 服务健康状态检查 |
| 插件管理 | /plugin/:tenant_id/management | 插件的安装、卸载、更新等管理操作 |
| 端点管理 | /plugin/:tenant_id/endpoint | 插件端点的设置、列表、启用/禁用等操作 |
| 插件调用 | /plugin/:tenant_id/dispatch | 插件功能的调用 |
| 远程调试 | /plugin/:tenant_id/debugging | 远程调试相关功能 |
| 服务器事务 | /backwards-invocation | 服务器端事务处理 |
| 插件资产 | /plugin/:tenant_id/asset | 插件资产的获取 |
| 插件资产提取 | /plugin/:tenant_id/extract-asset | 插件资产的提取 |
| 管理员接口 | /admin | 管理员操作接口 |
| 性能分析 | /debug/pprof | 性能分析工具接口 |
3. 详细接口文档
3.1 健康检查接口
| API路径 | 方法 | 功能描述 | 请求参数 | 成功响应 |
|---|---|---|---|---|
| /health/check | GET | 检查服务健康状态 | 无 | {"status": "ok"} |
3.2 插件管理接口
3.2.1 插件安装
| API路径 | 方法 | 功能描述 | 请求参数 | 成功响应 |
|---|---|---|---|---|
| /plugin/:tenant_id/management/install/upload/package | POST | 上传插件包 | dify_pkg: 文件 verify_signature: 布尔值 | 插件安装任务信息 |
| /plugin/:tenant_id/management/install/upload/bundle | POST | 上传插件 bundle | dify_bundle: 文件 verify_signature: 布尔值 | 插件安装任务信息 |
| /plugin/:tenant_id/management/install/identifiers | POST | 从标识符安装插件 | plugin_unique_identifiers: 插件唯一标识符数组 source: 来源 metas: 元数据数组 | 插件安装任务信息 |
| /plugin/:tenant_id/management/install/upgrade | POST | 升级插件 | original_plugin_unique_identifier: 原始插件唯一标识符 new_plugin_unique_identifier: 新插件唯一标识符 source: 来源 meta: 元数据 | 插件升级任务信息 |
3.2.2 插件安装任务管理
| API路径 | 方法 | 功能描述 | 请求参数 | 成功响应 |
|---|---|---|---|---|
| /plugin/:tenant_id/management/install/tasks | GET | 获取插件安装任务列表 | page: 页码 page_size: 每页大小 | 任务列表 |
| /plugin/:tenant_id/management/install/tasks/:id | GET | 获取插件 安装任务详情 | id: 任务ID | 任务详情 |
| /plugin/:tenant_id/management/install/tasks/delete_all | POST | 删除所有插件安装任务 | 无 | 删除结果 |
| /plugin/:tenant_id/management/install/tasks/:id/delete | POST | 删除插件安装任务 | id: 任务ID | 删除结果 |
| /plugin/:tenant_id/management/install/tasks/:id/delete/*identifier | POST | 从任务中删除插件安装项 | id: 任务ID identifier: 插件标识符 | 删除结果 |
3.2.3 插件信息获取
| API路径 | 方法 | 功能描述 | 请求参数 | 成功响应 |
|---|---|---|---|---|
| /plugin/:tenant_id/management/decode/from_identifier | GET | 解码插件标识符 | plugin_unique_identifier: 插件唯一标识符 | 解码结果 |
| /plugin/:tenant_id/management/fetch/manifest | GET | 获取插件清单 | plugin_unique_identifier: 插件唯一标识符 | 插件清单 |
| /plugin/:tenant_id/management/fetch/identifier | GET | 从标识符获取插件 | plugin_unique_identifier: 插件唯一标识符 | 插件信息 |
| /plugin/:tenant_id/management/fetch/readme | GET | 获取插件 README | plugin_unique_identifier: 插件唯一标识符 language: 语言 | README 内容 |
| /plugin/:tenant_id/management/list | GET | 获取插件列表 | page: 页码 page_size: 每页大小 | 插件列表 |
| /plugin/:tenant_id/management/installation/fetch/batch | POST | 批量获取插件安装信息 | plugin_ids: 插件ID数组 | 安装信息列表 |
| /plugin/:tenant_id/management/installation/missing | POST | 获取缺失的插件安装 | plugin_unique_identifiers: 插件唯一标识符数组 | 缺失的插件安装 |
3.2.4 插件卸载
| API路径 | 方法 | 功能描述 | 请求参数 | 成功响应 |
|---|---|---|---|---|
| /plugin/:tenant_id/management/uninstall | POST | 卸载插件 | plugin_installation_id: 插件安装ID | 卸载结果 |
3.2.5 插件组件列表
| API路径 | 方法 | 功能描述 | 请求参数 | 成功响应 |
|---|---|---|---|---|
| /plugin/:tenant_id/management/models | GET | 获取模型列表 | 无 | 模型列表 |
| /plugin/:tenant_id/management/tools | GET | 获取工具列表 | 无 | 工具列表 |
| /plugin/:tenant_id/management/tool | GET | 获取工具详情 | 无 | 工具详情 |
| /plugin/:tenant_id/management/triggers | GET | 获取触发器列表 | 无 | 触发器列表 |
| /plugin/:tenant_id/management/trigger | GET | 获取触发器详情 | 无 | 触发器详情 |
| /plugin/:tenant_id/management/tools/check_existence | POST | 检查工具是否存在 | 无 | 检查结果 |
| /plugin/:tenant_id/management/agent_strategies | GET | 获取代理策略列表 | 无 | 代理策略列表 |
| /plugin/:tenant_id/management/agent_strategy | GET | 获取代理策略详情 | 无 | 代理策略详情 |
| /plugin/:tenant_id/management/datasources | GET | 获取数据源列表 | 无 | 数据源列表 |
| /plugin/:tenant_id/management/datasource | GET | 获取数据源详情 | 无 | 数据源详情 |
3.3 端点管理接口
| API路径 | 方法 | 功能描述 | 请求参数 | 成功响应 |
|---|---|---|---|---|
| /plugin/:tenant_id/endpoint/setup | POST | 设置端点 | plugin_unique_identifier: 插件唯一标识符 user_id: 用户ID settings: 设置 name: 名称 | 端点信息 |
| /plugin/:tenant_id/endpoint/remove | POST | 移除端点 | endpoint_id: 端点ID | 移除结果 |
| /plugin/:tenant_id/endpoint/update | POST | 更新端点 | endpoint_id: 端点ID user_id: 用户ID settings: 设置 name: 名称 | 更新结果 |
| /plugin/:tenant_id/endpoint/list | GET | 获取端点列表 | page: 页码 page_size: 每页大小 | 端点列表 |
| /plugin/:tenant_id/endpoint/list/plugin | GET | 获取插件端点列表 | plugin_id: 插件ID page: 页码 page_size: 每页大小 | 端点列表 |
| /plugin/:tenant_id/endpoint/enable | POST | 启用端点 | endpoint_id: 端点ID | 启用结果 |
| /plugin/:tenant_id/endpoint/disable | POST | 禁用端点 | endpoint_id: 端点ID | 禁用结果 |
3.4 插件调用接口
| API路径 | 方法 | 功能描述 | 请求参数 | 成功响应 |
|---|---|---|---|---|
| /plugin/:tenant_id/dispatch/agent_strategy/invoke | POST | 调用代理策略 | 具体参数根据策略而定 | 调用结果 |
3.5 远程调试接口
| API路径 | 方法 | 功能描述 | 请求参数 | 成功响应 |
|---|---|---|---|---|
| /plugin/:tenant_id/debugging/key | POST | 获取远程调试密钥 | 无 | 调试密钥 |
3.6 服务器事务接口
| API路径 | 方法 | 功能描述 | 请求参数 | 成功响应 |
|---|---|---|---|---|
| /backwards-invocation/transaction | POST | 处理服务器端插件事务 | 事务数据 | 事务处理结果 |
3.7 插件资产接口
| API路径 | 方法 | 功能描述 | 请求参数 | 成功响应 |
|---|---|---|---|---|
| /plugin/:tenant_id/asset/:id | GET | 获取插件资产 | id: 资产ID | 资产数据 |
| /plugin/:tenant_id/extract-asset/ | GET | 提取插件资产 | plugin_unique_identifier: 插件唯一标识符 file_path: 文件路径 | 资产数据 |
3.8 管理员接口
| API路径 | 方法 | 功能描述 | 请求参数 | 成功响应 |
|---|---|---|---|---|
| /admin/plugin/serverless/reinstall | POST | 重新安装服务器端插件 | plugin_unique_identifier: 插件唯一标识符 | 安装结果 |
| /admin/plugin/serverless/switch-endpoint | POST | 切换服务器端端点 | plugin_unique_identifier: 插件唯一标识符 function_name: 函数名称 function_url: 函数URL | 切换结果 |
3.9 性能分析接口
| API路径 | 方法 | 功能描述 | 请求参数 | 成功响应 |
|---|---|---|---|---|
| /debug/pprof/ | GET | 性能分析首页 | 无 | 性能分析页面 |
| /debug/pprof/cmdline | GET | 命令行信息 | 无 | 命令行信息 |
| /debug/pprof/profile | GET | CPU 性能分析 | 无 | 分析数据 |
| /debug/pprof/symbol | GET | 符号信息 | 无 | 符号信息 |
| /debug/pprof/trace | GET | 跟踪信息 | 无 | 跟踪信息 |
| /debug/pprof/goroutine | GET | Goroutine 分析 | 无 | 分析数据 |
| /debug/pprof/heap | GET | 堆内存分析 | 无 | 分析数据 |
| /debug/pprof/allocs | GET | 内存分配分析 | 无 | 分析数据 |
| /debug/pprof/block | GET | 阻塞分析 | 无 | 分析数据 |
| /debug/pprof/mutex | GET | 互斥锁分析 | 无 | 分析数据 |
| /debug/pprof/threadcreate | GET | 线程创建分析 | 无 | 分析数据 |
4. 请求和响应示例
4.1 从标识符安装插件
请求示例:
POST /plugin/tenant123/management/install/identifiers
Content-Type: application/json
{
"plugin_unique_identifiers": [
"plugin1:v1.0.0"
],
"source": "marketplace",
"metas": [
{}
]
}
响应示例:
{
"code": 0,
"message": "success",
"data": {
"task_id": "task_123",
"status": "pending",
"progress": 0
}
}
4.2 获取插件列表
请求示例:
GET /plugin/tenant123/management/list?page=1&page_size=10
响应示例:
{
"code": 0,
"message": "success",
"data": {
"plugins": [
{
"id": "plugin1",
"name": "Test Plugin",
"version": "1.0.0",
"description": "A test plugin"
}
],
"total": 1,
"page": 1,
"page_size": 10
}
}
5. 错误处理
所有API接口返回的错误格式如下:
{
"code": 400,
"message": "error message",
"data": null
}
常见错误码:
- 400: 请求参数错误
- 401: 未授权
- 404: 资源不存在
- 500: 内部服务器错误
6. 认证与授权
- 所有插件相关接口需要在请求头中提供
X-Server-Key认证 - 管理员接口需要在请求头中提供
X-Admin-API-Key认证
7. 速率限制
- 插件安装接口:每分钟最多 10 次请求
- 插件调用接口:每分钟最多 100 次请求
更多推荐


所有评论(0)