fix(regulatory): 为LLM复核超时增加重试
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import json
|
||||
|
||||
from review_agent.regulatory_review.services.llm_review import review_condition_fields
|
||||
from review_agent.regulatory_review.services.llm_review import review_condition_fields, review_workflow_payload
|
||||
|
||||
|
||||
def test_review_condition_fields_selects_more_complete_llm_product_name():
|
||||
@@ -55,3 +55,39 @@ def test_review_condition_fields_rejects_garbled_llm_product_name():
|
||||
|
||||
assert result["selected_fields"]["产品名称"] == "呼吸道合胞病毒、肺炎支原体核酸检测试剂盒(荧光PCR法)"
|
||||
assert result["selected_sources"]["产品名称"] == "rule"
|
||||
|
||||
|
||||
def test_review_workflow_payload_handles_timeout_without_raising():
|
||||
def completion(messages, temperature=0.0):
|
||||
raise TimeoutError("The read operation timed out")
|
||||
|
||||
result = review_workflow_payload(
|
||||
stage="completeness_check",
|
||||
payload={"findings": []},
|
||||
completion_func=completion,
|
||||
)
|
||||
|
||||
assert result["status"] == "failed"
|
||||
assert result["stage"] == "completeness_check"
|
||||
assert "timed out" in result["error_message"]
|
||||
|
||||
|
||||
def test_review_workflow_payload_retries_timeout_before_success(settings):
|
||||
settings.REGULATORY_LLM_REVIEW_RETRY_DELAY_SECONDS = 0
|
||||
attempts = {"count": 0}
|
||||
|
||||
def completion(messages, temperature=0.0):
|
||||
attempts["count"] += 1
|
||||
if attempts["count"] < 3:
|
||||
raise TimeoutError("The read operation timed out")
|
||||
return json.dumps({"reviewed": True})
|
||||
|
||||
result = review_workflow_payload(
|
||||
stage="completeness_check",
|
||||
payload={"findings": []},
|
||||
completion_func=completion,
|
||||
)
|
||||
|
||||
assert attempts["count"] == 3
|
||||
assert result["status"] == "success"
|
||||
assert result["result"]["reviewed"] is True
|
||||
|
||||
Reference in New Issue
Block a user