ContiAI / schemas /objectives_schema.py
ziadsameh32's picture
Add login page
325b94c
Raw
History Blame Contribute Delete
2.33 kB
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"
)