style: ruff format telemetry + repair_trees, remove unused SRTEntry import
This commit is contained in:
@@ -124,9 +124,7 @@ class SQLiteTelemetryRecorder:
|
|||||||
finally:
|
finally:
|
||||||
conn.close()
|
conn.close()
|
||||||
except sqlite3.Error as exc:
|
except sqlite3.Error as exc:
|
||||||
logger.warning(
|
logger.warning("遥测写入失败(已降级),call_id={}: {}", call_id, exc)
|
||||||
"遥测写入失败(已降级),call_id={}: {}", call_id, exc
|
|
||||||
)
|
|
||||||
|
|
||||||
async def record_llm_call(
|
async def record_llm_call(
|
||||||
self,
|
self,
|
||||||
|
|||||||
+19
-15
@@ -38,7 +38,7 @@ from app.tree.index import TreeIndex
|
|||||||
from app.tree.repair.detector import detect_issues
|
from app.tree.repair.detector import detect_issues
|
||||||
from app.tree.repair.regenerator import repair_tree
|
from app.tree.repair.regenerator import repair_tree
|
||||||
from app.tree.repair.supplement import supplement_tree
|
from app.tree.repair.supplement import supplement_tree
|
||||||
from app.tree.subtitle import SRTEntry, parse_srt
|
from app.tree.subtitle import parse_srt
|
||||||
from app.tree.verify import verify_tree
|
from app.tree.verify import verify_tree
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
@@ -258,15 +258,15 @@ async def _repair_one_video(
|
|||||||
if srt_path.exists():
|
if srt_path.exists():
|
||||||
srt_entries = parse_srt(str(srt_path))
|
srt_entries = parse_srt(str(srt_path))
|
||||||
|
|
||||||
repair_stats = await repair_tree(
|
repair_stats = await repair_tree(index, empty_issues, vlm, llm, frames_dir, srt_entries)
|
||||||
index, empty_issues, vlm, llm, frames_dir, srt_entries
|
|
||||||
)
|
|
||||||
stats["l3_repaired"] = repair_stats.l3_repaired
|
stats["l3_repaired"] = repair_stats.l3_repaired
|
||||||
stats["l2_regenerated"] = repair_stats.l2_regenerated
|
stats["l2_regenerated"] = repair_stats.l2_regenerated
|
||||||
stats["l1_regenerated"] = repair_stats.l1_regenerated
|
stats["l1_regenerated"] = repair_stats.l1_regenerated
|
||||||
logger.info(
|
logger.info(
|
||||||
"[{}] 修复完成: L3={}, L2={}, L1={}",
|
"[{}] 修复完成: L3={}, L2={}, L1={}",
|
||||||
vid, repair_stats.l3_repaired, repair_stats.l2_regenerated,
|
vid,
|
||||||
|
repair_stats.l3_repaired,
|
||||||
|
repair_stats.l2_regenerated,
|
||||||
repair_stats.l1_regenerated,
|
repair_stats.l1_regenerated,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -300,9 +300,7 @@ async def _repair_one_video(
|
|||||||
)
|
)
|
||||||
stats["facts_injected"] = supplement_stats.facts_injected
|
stats["facts_injected"] = supplement_stats.facts_injected
|
||||||
if supplement_stats.facts_injected > 0:
|
if supplement_stats.facts_injected > 0:
|
||||||
logger.info(
|
logger.info("[{}] 补全注入 {} 个事实", vid, supplement_stats.facts_injected)
|
||||||
"[{}] 补全注入 {} 个事实", vid, supplement_stats.facts_injected
|
|
||||||
)
|
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
logger.error("[{}] Q&A 补全失败: {}", vid, exc)
|
logger.error("[{}] Q&A 补全失败: {}", vid, exc)
|
||||||
logger.info("[{}] Q&A 补全完成", vid)
|
logger.info("[{}] Q&A 补全完成", vid)
|
||||||
@@ -332,10 +330,7 @@ async def main_async(args: argparse.Namespace) -> None:
|
|||||||
reaggregate_all = args.reaggregate_all
|
reaggregate_all = args.reaggregate_all
|
||||||
|
|
||||||
# 扫描所有视频
|
# 扫描所有视频
|
||||||
vid_dirs = sorted(
|
vid_dirs = sorted(d for d in videos_dir.iterdir() if d.is_dir() and (d / "tree.json").exists())
|
||||||
d for d in videos_dir.iterdir()
|
|
||||||
if d.is_dir() and (d / "tree.json").exists()
|
|
||||||
)
|
|
||||||
logger.info("发现 {} 个视频", len(vid_dirs))
|
logger.info("发现 {} 个视频", len(vid_dirs))
|
||||||
|
|
||||||
# 加载 progress
|
# 加载 progress
|
||||||
@@ -381,8 +376,14 @@ async def main_async(args: argparse.Namespace) -> None:
|
|||||||
logger.info("开始修复 {}", vid)
|
logger.info("开始修复 {}", vid)
|
||||||
|
|
||||||
stats = await _repair_one_video(
|
stats = await _repair_one_video(
|
||||||
vid, tree_path, frames_dir, srt_dir, questions_dir,
|
vid,
|
||||||
llm, vlm, dry_run=args.dry_run,
|
tree_path,
|
||||||
|
frames_dir,
|
||||||
|
srt_dir,
|
||||||
|
questions_dir,
|
||||||
|
llm,
|
||||||
|
vlm,
|
||||||
|
dry_run=args.dry_run,
|
||||||
)
|
)
|
||||||
|
|
||||||
async with stats_lock:
|
async with stats_lock:
|
||||||
@@ -399,7 +400,10 @@ async def main_async(args: argparse.Namespace) -> None:
|
|||||||
rate = completed / elapsed * 60 if elapsed > 0 else 0
|
rate = completed / elapsed * 60 if elapsed > 0 else 0
|
||||||
logger.info(
|
logger.info(
|
||||||
"进度: {}/{}, 已用 {:.0f}s, 速率 {:.1f} 视频/分钟",
|
"进度: {}/{}, 已用 {:.0f}s, 速率 {:.1f} 视频/分钟",
|
||||||
completed, len(pending), elapsed, rate,
|
completed,
|
||||||
|
len(pending),
|
||||||
|
elapsed,
|
||||||
|
rate,
|
||||||
)
|
)
|
||||||
|
|
||||||
tasks = [asyncio.create_task(_process(vd)) for vd in pending]
|
tasks = [asyncio.create_task(_process(vd)) for vd in pending]
|
||||||
|
|||||||
Reference in New Issue
Block a user