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