feat: llm 翻译节点打印分批进度与 token 处理速度日志
翻译节点 translate_lines 分批调用 LLM 时补充可观测日志: - 任务开始打印总行数与总批数;每完成一批打印总进度(已完成/总行数、 第几批/共几批、批耗时、累计耗时与行/s),结束打印汇总(总耗时、 累计 tokens、tok/s 与行/s),便于评估 LLM 处理速度; - _call_llm 解析响应 usage(total_tokens),每次请求打印单批耗时与 token/s(接口不返回 usage 时按 0 处理); - _translate_batch 改为返回(译文, 本批 tokens),供累计汇总; - 补充空输入直接返回的单测,保持 100% 行覆盖率。
This commit is contained in:
@@ -520,6 +520,15 @@ def test_llm_translate_lines_via_fake_api(monkeypatch) -> None:
|
||||
thread.join(timeout=5)
|
||||
|
||||
|
||||
def test_llm_translate_lines_empty_input() -> None:
|
||||
"""验证空行列表直接返回空译文,不发起任何 LLM 请求。
|
||||
|
||||
翻译开始前对空输入提前返回:没有字幕行时无需计算批数、也无需调用
|
||||
接口(避免无谓请求与除零等边界问题),同时保持返回类型为列表。"""
|
||||
result = translate_lines([], {})
|
||||
assert result == []
|
||||
|
||||
|
||||
def test_llm_translate_lines_api_error(monkeypatch) -> None:
|
||||
"""验证 LLM 接口不可用时抛出 URLError。"""
|
||||
def fail_open(request, timeout):
|
||||
|
||||
Reference in New Issue
Block a user