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() |