20 lines
716 B
Python
20 lines
716 B
Python
"""动作错误的修正建议"""
|
|
|
|
from typing import Self
|
|
|
|
from pydantic import BaseModel, Field, model_validator
|
|
|
|
from app.schemas.base import NonBlankString
|
|
|
|
|
|
class ActionRepairPlan(BaseModel):
|
|
retryable: bool = Field(description="是否可在现有需求和快照下修正")
|
|
reason: NonBlankString = Field(description="错误原因或无法修正的原因")
|
|
suggestions: list[NonBlankString] = Field(default_factory=list, description="重新生成动作时的具体修正建议")
|
|
|
|
@model_validator(mode="after")
|
|
def require_suggestions(self) -> Self:
|
|
if self.retryable and not self.suggestions:
|
|
raise ValueError("可重试时必须提供修正建议")
|
|
return self
|