feat: LLM/Embedding 重试次数纳入 system.yaml 统一配置

- system.yaml: llm.max_retries(死配置) 改为 llm.max_attempts;embedding 段新增 max_attempts
- llm/client.py: LLMConfig 新增 max_attempts(默认 3 兜底),load_llm_config 读取配置
- llm/extractor.py: translate_and_extract(_async) max_attempts=None 时取 config.max_attempts
- embedding/client.py: load_embedding_config 读取 embedding.max_attempts
- scheduler/reporter.py: _call_llm_simple max_retries=None 时取 max_attempts-1
- 新增 2 个配置读取测试;已同步 pi5 验证
This commit is contained in:
2026-08-05 08:48:43 +08:00
parent d4a55bcaaa
commit 9aa44e610d
7 changed files with 37 additions and 7 deletions
+6
View File
@@ -87,6 +87,12 @@ class TestLoadEmbeddingConfig:
assert cfg.provider == "dashscope"
assert cfg.api_key == "sk-dashscope-test"
def test_max_attempts_from_system_yaml(self, monkeypatch):
"""重试次数取自 system.yaml embedding.max_attempts(当前 3)。"""
monkeypatch.setenv("DASHSCOPE_API_KEY", "sk-dashscope-test")
cfg = load_embedding_config()
assert cfg.max_attempts == 3
def test_fallback_to_qwen_key(self, monkeypatch):
monkeypatch.delenv("DASHSCOPE_API_KEY", raising=False)
monkeypatch.setenv("QWEN_API_KEY", "sk-qwen-key")