Initial commit: audio2text 双语字幕生成服务
- 音频/视频转双语(英/中)SRT 字幕,Docker 容器化,CPU 开发/GPU 生产同一份代码 - faster-whisper ASR(词级时间戳) + 断句时间戳重算 + NLLB 翻译(模型不共驻) - 分片上传(断点续传) + SQLite 持久化 + 主页/历史/日志页面 - 历史页文件名搜索;缓存定时清理(默认保留7天,可配置) - 双 Dockerfile(cpu/gpu) + setup/start/stop 脚本
This commit is contained in:
31
app/controllers/log_router.py
Normal file
31
app/controllers/log_router.py
Normal file
@@ -0,0 +1,31 @@
|
||||
"""日志路由:查询内存日志缓冲,供 /logs 页面消费。
|
||||
|
||||
分层语义:
|
||||
- debug:详细(ffmpeg 命令、模型加载/卸载、转写逐段、翻译逐批进度)
|
||||
- info:简略(仅任务阶段转换,如 "任务 N [transcribing 55%]")
|
||||
- warning / error:更详细,error 含完整 traceback
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from fastapi import APIRouter, Query
|
||||
|
||||
from ..services.log_buffer import get_log_buffer
|
||||
|
||||
router = APIRouter(prefix="/api/logs", tags=["logs"])
|
||||
|
||||
|
||||
@router.get("", summary="查询日志(按级别过滤)")
|
||||
def get_logs(
|
||||
level: str = Query("info", pattern="^(debug|info|warning|error)$",
|
||||
description="最小级别:debug=详细, info=简略, error=仅错误"),
|
||||
tail: int = Query(200, ge=1, le=2000, description="最多返回条数"),
|
||||
) -> dict:
|
||||
records = get_log_buffer().get_records(level=level, tail=tail)
|
||||
return {"level": level, "tail": tail, "count": len(records), "logs": records}
|
||||
|
||||
|
||||
@router.delete("", summary="清空日志缓冲")
|
||||
def clear_logs() -> dict:
|
||||
get_log_buffer().clear()
|
||||
return {"status": "cleared"}
|
||||
Reference in New Issue
Block a user