feat: 调度器+并发管线+GPU优化+日志分级+前端修复
- scheduler: ffmpeg 异步线程 + GPU 串行调度 + 模型复用(2N→2 次加载) - pipeline: 阶段拆分(extract/asr/translate),中间数据存 Task 字段 - translate_service: 长度排序批处理,padding 浪费减少 91% - model_manager: ASR/翻译不共驻,BatchedInferencePipeline 批量解码 - 日志分级: INFO=任务流转里程碑,DEBUG=进度详情;默认 INFO - 前端: 日志最新在上+滚动感知+退避轮询;24h 时间;上传中状态显示 - /health: 返回完整 Whisper/NLLB 配置 - upload_service: 单事务 complete + 扩展名白名单 - task_router: 合并 UploadSession 虚拟任务到列表 - Dockerfile: CPU/GPU 独立构建链,deps 缓存稳定 - prefetch_models: 安装时预下载模型权重
This commit is contained in:
@@ -1,19 +1,46 @@
|
||||
# audio2text — 双语字幕生成服务
|
||||
# CPU dev / GPU prod 两套配置,按需切换 service。
|
||||
#
|
||||
# CPU 开发:
|
||||
# docker compose up -d # 默认 cpu
|
||||
# GPU 生产:
|
||||
# docker compose -f docker-compose.yml up -d # 本机有 nvidia runtime 时自动用 gpu
|
||||
# 开发(CPU,热重载,改代码零重建):
|
||||
# docker compose --profile dev up -d --build
|
||||
# CPU 生产:
|
||||
# docker compose --profile cpu up -d --build
|
||||
# GPU 生产(本机有 nvidia runtime 时):
|
||||
# docker compose --profile gpu up -d --build
|
||||
#
|
||||
# 模型缓存(/models)跨容器复用,首次启动下载、之后秒起。
|
||||
# pip wheel 缓存由 BuildKit --mount=type=cache 管理,跨构建复用。
|
||||
|
||||
services:
|
||||
# ---------------- 开发:CPU + 源码挂载 + uvicorn reload ----------------
|
||||
# 改 app/ 下代码无需重建镜像,保存即热重载。
|
||||
audio2text-cpu-dev:
|
||||
build:
|
||||
context: .
|
||||
args:
|
||||
VARIANT: cpu
|
||||
target: dev
|
||||
image: audio2text:cpu-dev
|
||||
container_name: audio2text-dev
|
||||
ports:
|
||||
- "8000:8000"
|
||||
volumes:
|
||||
- ./app:/app/app
|
||||
- ./data:/data
|
||||
- ./models:/models
|
||||
- ./config.yaml:/app/config.yaml:ro
|
||||
environment:
|
||||
CONFIG_PATH: /app/config.yaml
|
||||
restart: unless-stopped
|
||||
profiles: ["dev"]
|
||||
|
||||
# ---------------- CPU 生产 ----------------
|
||||
audio2text-cpu:
|
||||
build:
|
||||
context: .
|
||||
args:
|
||||
VARIANT: cpu
|
||||
target: final
|
||||
image: audio2text:cpu
|
||||
container_name: audio2text
|
||||
ports:
|
||||
@@ -27,19 +54,21 @@ services:
|
||||
restart: unless-stopped
|
||||
profiles: ["cpu", ""]
|
||||
|
||||
# ---------------- GPU 生产 ----------------
|
||||
audio2text-gpu:
|
||||
build:
|
||||
context: .
|
||||
args:
|
||||
VARIANT: gpu
|
||||
target: final
|
||||
image: audio2text:gpu
|
||||
container_name: audio2text
|
||||
container_name: audio2text-gpu
|
||||
ports:
|
||||
- "8000:8000"
|
||||
- "8001:8000"
|
||||
volumes:
|
||||
- ./data:/data
|
||||
- ./models:/models
|
||||
- ./config.yaml:/app/config.yaml:ro
|
||||
- ./config.gpu.yaml:/app/config.yaml:ro
|
||||
environment:
|
||||
CONFIG_PATH: /app/config.yaml
|
||||
deploy:
|
||||
|
||||
Reference in New Issue
Block a user