校验与重试
校验与重试
from pydantic import BaseModel, ValidationError
class Answer(BaseModel):
text: str
citations: list[int]
def parse_or_retry(raw, retry_budget=1):
try:
return Answer.model_validate_json(raw)
except ValidationError:
if retry_budget:
return parse_or_retry(call_model_again(strict=True), retry_budget - 1)
return Answer(text=plain_text(raw), citations=[])记录解析失败率作为指标:它通常先于用户投诉暴露问题。