Spaces:
Runtime error
Runtime error
File size: 1,787 Bytes
05f2374 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
from pydantic import BaseModel, Field, field_validator
from typing import List, Dict, Any
class ProgressMeters(BaseModel):
technical_detail: int = Field(default=0, ge=0, le=100)
artistic_style: int = Field(default=0, ge=0, le=100)
composition: int = Field(default=0, ge=0, le=100)
context: int = Field(default=0, ge=0, le=100)
class SubjectAnalysis(BaseModel):
clarity: int = Field(default=0, ge=0, le=100)
details_present: List[str] = []
details_missing: List[str] = []
class StyleEvaluation(BaseModel):
defined_elements: List[str] = []
missing_elements: List[str] = []
style_score: int = Field(default=0, ge=0, le=100)
class TechnicalAssessment(BaseModel):
specified_elements: List[str] = []
missing_elements: List[str] = []
technical_score: int = Field(default=0, ge=0, le=100)
class CompositionReview(BaseModel):
strengths: List[str] = []
weaknesses: List[str] = []
composition_score: int = Field(default=0, ge=0, le=100)
class InitialAnalysis(BaseModel):
subject_analysis: SubjectAnalysis = SubjectAnalysis()
style_evaluation: StyleEvaluation = StyleEvaluation()
technical_assessment: TechnicalAssessment = TechnicalAssessment()
composition_review: CompositionReview = CompositionReview()
class EnhancedVersion(BaseModel):
focus_area: str = ""
enhanced_prompt: str = ""
improvement_score: int = Field(default=0, ge=0, le=100)
class PromptAnalysis(BaseModel):
initial_analysis: InitialAnalysis = InitialAnalysis()
enhanced_versions: List[EnhancedVersion] = []
session_state: Dict[str, Any] = {}
@field_validator('enhanced_versions', mode='before')
def validate_enhanced_versions(cls, v):
if not isinstance(v, list):
return []
return v |