from pydantic import BaseModel, Field from typing import List, Dict, Literal, Optional from typing import List from pydantic import BaseModel, Field class Objective(BaseModel): unit: str = Field(..., description="The title of the unit.") unit_description: str = Field(..., description="A brief summary of the unit scope.") subtopic: str = Field(..., description="The title of the subtopic (axis).") module_description: str = Field( ..., description="A brief summary of what this subtopic covers." ) level: str = Field( ..., description="Bloom's level assigned based on subtopic analysis." ) verbs: List[str] = Field( ..., description="A list of verbs used to define the learning objective." ) objective: str = Field( ..., description="A measurable Arabic objective derived from the subtopic purpose.", ) class ObjectivesOutput(BaseModel): objectives: List[Objective] = Field( ..., description="List of objectives including unit, subtopic, and measurable goals.", ) from pydantic import BaseModel, Field from typing import List, Dict, Literal, Optional class LearningObjective(BaseModel): """Schema for a single learning objective""" unit: str = Field(description="The title of the unit this objective belongs to") unit_description: str = Field( description="Brief summary of the unit scope and learning journey" ) subtopic: str = Field(description="The title of the specific subtopic") module_description: str = Field( description="Brief summary of what this subtopic covers" ) level: str = Field( description="Bloom's Taxonomy level or learning domain level assigned based on subtopic analysis" ) verbs: List[str] = Field( description="List of three relevant Bloom's verbs suitable for the audience", min_items=3, max_items=3, ) objective: str = Field( description="One measurable learning objective in Arabic derived from the subtopic purpose" ) class LearningObjectivesOutput(BaseModel): """Schema for the complete learning objectives output""" objectives: List[LearningObjective] = Field( description="Complete list of learning objectives for all subtopics in the curriculum" )