多媒体文件处理插件系统 — 解压、转码、图片处理,一键搞定。
LibACG 采用四层架构,职责清晰、部署灵活:
┌─────────────────────────────────────────────────────────┐ │ Layer 4: Job (编排层) │ │ 用户通过 YAML 定义 Stage 的执行顺序和依赖关系 (DAG) │ ├─────────────────────────────────────────────────────────┤ │ Layer 3: Server (调度层) │ │ 解析 Job DAG,按 Stage 能力匹配 Worker,分发任务 │ ├─────────────────────────────────────────────────────────┤ │ Layer 2: Worker (执行层) │ │ 加载 Plugin,注册支持的 Stages,实际执行分配到的任务 │ ├─────────────────────────────────────────────────────────┤ │ Layer 1: Plugin (功能层) │ │ 以 PyPI 包形式分发,提供 Stage 的具体实现 │ └─────────────────────────────────────────────────────────┘
# 根据需要修改 docker-compose.yml 中的挂载路径
docker compose up -d
启动后包含:
localhost:8080) — 任务调度中心localhost:8081) — 视频处理 Workerlocalhost:8082) — 图片处理 Worker# 安装依赖
uv sync
# 启动 Server
uv run --package libacg-server acg-server start
# 启动 Worker (分布式模式)
uv run --package libacg-worker python -m libacg_worker
# Worker Standalone 模式 (离线执行)
uv run --package libacg-worker acg-cli run job.yaml --input ./source --output ./output
libacg-new/ ├── packages/ │ ├── libacg-common/ # 公共模型、插件基类、Job 解析器 │ ├── libacg-server/ # Server 调度层 (FastAPI + SQLite) │ └── libacg-worker/ # Worker 执行层 (插件加载、任务执行) ├── plugins/ │ ├── libacg-ffmpeg/ # 视频转码插件 (ffmpeg) │ ├── libacg-libjxl/ # JPEG XL 图片转换插件 (libjxl) │ └── libacg-unrar/ # RAR 解压插件 (unrar) ├── jobs/ # Job YAML 定义文件 ├── configs/ # 配置文件 (存储路径等) ├── docker/ # Dockerfile ├── docker-compose.yml # 编排文件 └── docs/ # 详细文档
| 文档 | 说明 |
|---|---|
| 架构设计 | 四层架构详细设计、设计哲学 |
| 配置说明 | 环境变量、存储路径配置 |
| Job 定义 | Job YAML 语法与示例 |
| 插件系统 | 内置插件介绍、开发自定义插件 |
| API 参考 | RESTful API 端点一览 |
| 离线执行 | Standalone 模式使用方法 |
Private