Spaces:
Runtime error
Runtime error
| from typing import List, Optional, Dict, Any | |
| from pydantic import BaseModel, Field, ConfigDict | |
| class DirectiveImpactAssessment(BaseModel): | |
| feasibility: str = Field(default="Not assessed") | |
| integration_approach: str = Field(default="Not determined") | |
| potential_conflicts: List[str] = Field(default_factory=lambda: ["None identified"]) | |
| resolution_strategy: str = Field(default="Not required") | |
| class AnalysisScore(BaseModel): | |
| score: int = Field(default=0, ge=0, le=100) | |
| strengths: List[str] = Field(default_factory=lambda: ["Not analyzed"]) | |
| weaknesses: List[str] = Field(default_factory=lambda: ["Not analyzed"]) | |
| class ImprovementAxis(BaseModel): | |
| axis_name: str = Field(default="Default") | |
| focus_area: str = Field(default="Not specified") | |
| version: int = Field(default=1) | |
| score: int = Field(default=0, ge=0, le=100) | |
| current_state: str = Field(default="Not evaluated") | |
| directive_alignment: str = Field(default="Not aligned") | |
| recommended_additions: List[str] = Field(default_factory=lambda: ["No recommendations"]) | |
| expected_impact: str = Field(default="Not determined") | |
| technical_considerations: List[str] = Field(default_factory=lambda: ["None specified"]) | |
| enhanced_prompt: str = Field(default="") | |
| expected_improvements: List[str] = Field(default_factory=lambda: ["None specified"]) | |
| class TechnicalRecommendations(BaseModel): | |
| style_keywords: List[str] = Field(default_factory=lambda: ["None"]) | |
| composition_tips: List[str] = Field(default_factory=lambda: ["None"]) | |
| negative_prompt_suggestions: List[str] = Field(default_factory=lambda: ["None"]) | |
| directive_specific_adjustments: List[str] = Field(default_factory=lambda: ["None"]) | |
| class InitialAnalysis(BaseModel): | |
| initial_prompt: str | |
| user_directive: str = Field(default="") | |
| directive_impact_assessment: DirectiveImpactAssessment = Field(default_factory=DirectiveImpactAssessment) | |
| subject_analysis: AnalysisScore = Field(default_factory=AnalysisScore) | |
| style_evaluation: AnalysisScore = Field(default_factory=AnalysisScore) | |
| technical_assessment: AnalysisScore = Field(default_factory=AnalysisScore) | |
| composition_review: AnalysisScore = Field(default_factory=AnalysisScore) | |
| context_evaluation: AnalysisScore = Field(default_factory=AnalysisScore) | |
| mood_assessment: AnalysisScore = Field(default_factory=AnalysisScore) | |
| class APIResponse(BaseModel): | |
| model_config = ConfigDict(populate_by_name=True) | |
| initial_analysis: InitialAnalysis | |
| improvement_axes: List[ImprovementAxis] = Field(default_factory=list) | |
| technical_recommendations: TechnicalRecommendations = Field(default_factory=TechnicalRecommendations) | |
| def create_error_response(user_prompt: str, user_directive: str = "") -> Dict[str, Any]: | |
| """Create a standardized error response that complies with APIResponse model""" | |
| return APIResponse( | |
| initial_analysis=InitialAnalysis( | |
| initial_prompt=user_prompt, | |
| user_directive=user_directive | |
| ), | |
| improvement_axes=[ | |
| ImprovementAxis( | |
| axis_name="Error", | |
| focus_area="Error occurred", | |
| version=1, | |
| score=0, | |
| current_state="Failed", | |
| directive_alignment="Failed to assess", | |
| recommended_additions=["Error processing prompt"], | |
| expected_impact="None", | |
| technical_considerations=["Error occurred"], | |
| enhanced_prompt=user_prompt, | |
| expected_improvements=["Error processing prompt"] | |
| ) | |
| ], | |
| technical_recommendations=TechnicalRecommendations( | |
| style_keywords=["Error"], | |
| composition_tips=["Error"], | |
| negative_prompt_suggestions=["Error"], | |
| directive_specific_adjustments=["Error"] | |
| ) | |
| ).model_dump() |