File size: 2,329 Bytes
325b94c | 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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | 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"
)
|