Files
Jammy 52636c91ae
Some checks failed
CI / main (push) Has been cancelled
CI / release-e2e (push) Has been cancelled
Track bundled vendor runtime sources
2026-07-07 10:05:50 +08:00

234 lines
6.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: aigcpanel-skills
description: 通过 AigcPanel Pro 内置 HTTP 接口或命令行 CLI 工具调用本地 AI 模型和任务处理能力。当需要列出可用模型、调用模型生成内容、查询任务结果、或批量处理视频/音频/图片时使用本技能。适用场景:自动化脚本调用 AI 模型、外部程序集成 AigcPanel Pro、批量处理任务、CLI 命令行调用。
---
# AigcPanel Pro 集成指南
AigcPanel Pro 提供两种集成方式:**HTTP 接口**(适合外部程序集成)和 **CLI 命令行工具**(适合脚本和终端操作)。
---
## 一、CLI 命令行工具
CLI 工具 `aigcpanel` 提供简洁的命令行接口,适合在脚本和终端中使用。
### 安装
打开应用 **设置 → CLI 工具**,点击"安装到系统",即可在终端使用 `aigcpanel` 命令。
### 命令概览
| 命令 | 说明 |
|------|------|
| `aigcpanel version` | 查看版本信息 |
| `aigcpanel model_list` | 列出所有已安装 AI 模型 |
| `aigcpanel task --biz <类型> [参数...]` | 提交任务并等待结果 |
### 列出模型
```bash
aigcpanel model_list
```
输出示例:
```json
{
"code": 0,
"data": [
{ "name": "server-openai", "title": "OpenAI", "version": "1.0.0", "functions": [...] }
]
}
```
### 提交任务
```bash
# 语音合成
aigcpanel task --biz SoundGenerate --text "你好世界"
# 数字人合成(视频生成)
aigcpanel task --biz VideoGen --text "欢迎使用"
# 一键合成(视频生成流)
aigcpanel task --biz VideoGenFlow --text "欢迎使用"
# 语音识别
aigcpanel task --biz SoundAsr --file /path/to/audio.wav
# 声音替换
aigcpanel task --biz SoundReplace --file /path/to/video.mp4
# 长文本转音频
aigcpanel task --biz LongTextTts --text "这是一段较长的文本内容"
# 字幕转音频
aigcpanel task --biz SubtitleTts --file /path/to/subtitle.srt
# 文生图
aigcpanel task --biz TextToImage --prompt "美丽的山水风景"
# 图生图
aigcpanel task --biz ImageToImage --file /path/to/image.png --prompt "油画风格"
# 声音归一化
aigcpanel task --biz AudioNormal --file /path/to/audio.wav
# 视频压缩
aigcpanel task --biz VideoCompress --file /path/to/video.mp4
# 视频尺寸转换
aigcpanel task --biz VideoSizeConvert --file /path/to/video.mp4 --targetWidth 1280 --targetHeight 720
# 视频变速(全局)
aigcpanel task --biz VideoSpeed --file /path/to/video.mp4 --speed 1.5
# 视频片段变速
aigcpanel task --biz VideoSpeedPart --file /path/to/video.mp4
# 视频背景替换
aigcpanel task --biz VideoBackground --file /path/to/video.mp4 --image /path/to/bg.png
# 视频合并
aigcpanel task --biz VideoMerge --file /path/to/video1.mp4 --file2 /path/to/video2.mp4
# 视频添加音频
aigcpanel task --biz VideoMergeAudio --file /path/to/video.mp4 --audio /path/to/audio.wav
# 片头片尾图片
aigcpanel task --biz VideoMergeImage --file /path/to/video.mp4 --image /path/to/image.png
# 视频添加字幕
aigcpanel task --biz VideoSubtitle --file /path/to/video.mp4 --subtitle /path/to/subtitle.srt
# 视频标注
aigcpanel task --biz VideoMark --file /path/to/video.mp4
# 视频片段删除/保留
aigcpanel task --biz VideoKeepPart --file /path/to/video.mp4
# 视频片段放大
aigcpanel task --biz VideoZoom --file /path/to/video.mp4
# 智能剪辑
aigcpanel task --biz VideoQuickCut --file /path/to/video.mp4
# 媒体格式转换
aigcpanel task --biz MediaFormatConvert --file /path/to/video.mp4 --targetFormat mp4
# Ffmpeg 自定义处理
aigcpanel task --biz Ffmpeg --file1 /path/to/input.mp4
```
### 复杂参数JSON 文件)
对于数组/对象类型的参数,用 `--参数名-json /path/to/file.json` 传入:
```bash
# VideoZoom 指定放大区域
echo '[{"start":1.0,"end":3.0,"x":0.2,"y":0.1,"width":0.6,"height":0.8}]' > ./_temp/times.json
aigcpanel task --biz VideoZoom --file /path/to/video.mp4 --times-json ./_temp/times.json
```
### 继续暂停的任务
部分任务(如 VideoZoom、VideoMark需要确认才能继续执行
```bash
# 第一步:提交任务(返回 taskId 和 pauseStage
aigcpanel task --biz VideoZoom --file /path/to/video.mp4
# 第二步确认继续Config 阶段)
aigcpanel task --biz VideoZoom --task-id <taskId> --stage Config --times-json ./_temp/times.json
# 第三步渲染确认RenderConfirm 阶段,如有)
aigcpanel task --biz VideoZoom --task-id <taskId> --stage RenderConfirm
```
### 输出结果
任务成功时输出包含 `result` 字段,通常有 `url`(输出文件路径):
```json
{
"code": 0,
"data": {
"status": "success",
"result": { "url": "/path/to/output.mp4" }
}
}
```
---
## 二、HTTP 接口
AigcPanel Pro 内置 HTTP 接口服务,默认监听 `http://localhost:59999`,提供模型列表、模型调用和结果查询能力。
### 前提条件
确认服务已启动:打开应用 **设置 → HTTP 接口**,确认状态为"运行中"。若未启动,点击"启动服务"按钮,或开启"自动启动"后重启应用。
### 获取可用模型
```
GET http://localhost:59999/api/model/list
```
响应示例:
```json
{
"code": 0,
"data": [
{ "id": "openai|gpt-4o", "providerId": "openai", "modelId": "gpt-4o", "modelName": "GPT-4o" },
{ "id": "deepseek|deepseek-chat", "providerId": "deepseek", "modelId": "deepseek-chat", "modelName": "DeepSeek Chat" }
]
}
```
`id` 格式为 `providerId|modelId`,调用时需传此值。
### 调用模型
```
POST http://localhost:59999/api/model/call
Content-Type: application/json
{ "model": "deepseek|deepseek-chat", "prompt": "用一句话介绍自己", "systemPrompt": "你是助手" }
```
- `model`(必填):模型 ID来自列表接口的 `id` 字段
- `prompt`(必填):用户输入
- `systemPrompt`(可选):系统提示词
响应:
```json
{ "code": 0, "data": { "taskId": "m3x7k2abc" } }
```
### 查询任务结果
```
GET http://localhost:59999/api/model/query?taskId=m3x7k2abc
```
响应(进行中):`{ "code": 0, "data": { "status": "pending" } }`
响应(成功):`{ "code": 0, "data": { "status": "success", "result": "..." } }`
响应(失败):`{ "code": 0, "data": { "status": "error", "error": "..." } }`
`status``pending` 时继续轮询,建议间隔 500ms。
### 标准调用流程
1. 调用 `/api/model/list` 获取可用模型列表,选取目标模型 `id`
2. 调用 `/api/model/call` 传入 `model``prompt`,获得 `taskId`
3. 轮询 `/api/model/query?taskId=xxx` 直至 `status` 不为 `pending`
4. 读取 `result`(成功)或 `error`(失败)
## 错误处理
所有接口错误时返回 `{ "code": -1, "msg": "错误描述" }``code` 非 0 时视为失败。
常见原因服务未启动、模型未在设置中启用、API Key 未配置。