Files
audio2text/app/controllers/log_router.py
audio2text dev 73110848f4 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: 安装时预下载模型权重
2026-07-06 21:59:59 +08:00

32 lines
1.2 KiB
Python
Raw 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.

"""日志路由:查询内存日志缓冲,供 /logs 页面消费。
分层语义:
- debug进度详情任务 [status pct%]、转写逐段统计、翻译逐批进度、ffmpeg 命令)
- info任务流转里程碑音频提取/ASR/翻译 的开始与完成、模型加载与卸载、批次汇总)
- 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"}