aigcpanel-skills

$npx mdskill add modstart-lib/aigcpanel/aigcpanel-skills

调用本地 AI 模型和任务处理能力

  • 自动化脚本调用 AI 模型生成内容
  • 依赖 AigcPanel Pro 的 HTTP 接口和 CLI 工具
  • 根据任务类型选择模型并处理输入参数
  • 返回 JSON 格式结果或任务状态
SKILL.md
.github/skills/aigcpanel-skillsView on GitHub ↗
---
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}]' > /tmp/times.json
aigcpanel task --biz VideoZoom --file /path/to/video.mp4 --times-json /tmp/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 /tmp/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 未配置。