kirara_ai/web/api/plugin/README.md
插件 API 提供了管理插件的功能。通过这些 API,你可以安装、卸载、启用、禁用和更新插件。
GET/backend-api/api/plugin/plugins
获取所有已安装的插件列表。
响应示例:
{
"plugins": [
{
"name": "图像处理",
"package_name": "image-processing",
"description": "提供图像处理功能",
"version": "1.0.0",
"author": "开发者",
"homepage": "https://github.com/example/image-processing",
"license": "MIT",
"is_internal": false,
"is_enabled": true,
"metadata": {
"category": "media",
"tags": ["image", "processing"]
}
}
]
}
GET/backend-api/api/plugin/plugins/{plugin_name}
获取指定插件的详细信息。
响应示例:
{
"plugin": {
"name": "图像处理",
"package_name": "image-processing",
"description": "提供图像处理功能",
"version": "1.0.0",
"author": "开发者",
"homepage": "https://github.com/example/image-processing",
"license": "MIT",
"is_internal": false,
"is_enabled": true,
"metadata": {
"category": "media",
"tags": ["image", "processing"]
}
}
}
POST/backend-api/api/plugin/plugins
安装新的插件。
请求体:
{
"package_name": "image-processing",
"version": "1.0.0" // 可选,不指定则安装最新版本
}
DELETE/backend-api/api/plugin/plugins/{plugin_name}
卸载指定的插件。注意:内部插件不能被卸载。
POST/backend-api/api/plugin/plugins/{plugin_name}/enable
启用指定的插件。
POST/backend-api/api/plugin/plugins/{plugin_name}/disable
禁用指定的插件。
PUT/backend-api/api/plugin/plugins/{plugin_name}
更新插件到最新版本。注意:内部插件不支持更新。
GET/backend-api/api/v1/search?query={query}&page={page}&pageSize={pageSize}
在插件市场中搜索插件。
参数:
query: 搜索关键词page: 页码 (默认为 1)pageSize: 每页数量 (默认为 10)响应示例:
{
"plugins": [
{
"name": "图像处理",
"description": "提供图像处理功能",
"author": "开发者",
"pypiPackage": "image-processing",
"pypiInfo": {
"version": "1.0.0",
"description": "PyPI 描述",
"author": "PyPI 作者",
"homePage": "https://example.com"
},
"isInstalled": false,
"installedVersion": null,
"isUpgradable": false
}
],
"totalCount": 1,
"totalPages": 1,
"page": 1,
"pageSize": 10
}
GET/backend-api/api/v1/info/{plugin_name}
获取插件市场中指定插件的详细信息。
响应示例:
{
"name": "图像处理",
"description": "提供图像处理功能",
"author": "开发者",
"pypiPackage": "image-processing",
"pypiInfo": {
"version": "1.0.0",
"description": "PyPI 描述",
"author": "PyPI 作者",
"homePage": "https://example.com"
},
"isInstalled": false,
"installedVersion": null,
"isUpgradable": false
}
name: 插件名称package_name: 包名description: 描述version: 版本号author: 作者homepage: 主页(可选)license: 许可证(可选)is_internal: 是否为内部插件is_enabled: 是否已启用metadata: 元数据(可选)package_name: 包名version: 版本号(可选)plugins: 插件列表plugin: 插件信息所有 API 端点在发生错误时都会返回适当的 HTTP 状态码和错误信息:
{
"error": "错误描述信息"
}
常见状态码:
import requests
response = requests.get(
'http://localhost:8080/api/plugin/plugins',
headers={'Authorization': f'Bearer {token}'}
)
import requests
data = {
"package_name": "image-processing",
"version": "1.0.0"
}
response = requests.post(
'http://localhost:8080/api/plugin/plugins',
headers={'Authorization': f'Bearer {token}'},
json=data
)
import requests
response = requests.post(
'http://localhost:8080/api/plugin/plugins/image-processing/enable',
headers={'Authorization': f'Bearer {token}'}
)
import requests
response = requests.put(
'http://localhost:8080/api/plugin/plugins/image-processing',
headers={'Authorization': f'Bearer {token}'}
)
import requests
response = requests.get(
'http://localhost:8080/api/v1/search?query=image&page=1&pageSize=10',
headers={'Authorization': f'Bearer {token}'}
)
import requests
response = requests.get(
'http://localhost:8080/api/v1/info/image-processing',
headers={'Authorization': f'Bearer {token}'}
)