File size: 768 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 | from pydantic import BaseModel, Field
from typing import List, Dict, Literal, Optional
no_keywords = 25
class SuggestedSearchQueries(BaseModel):
queries: List[str] = Field(
...,
title="List of suggested search queries",
min_items=1,
max_items=no_keywords,
)
# ==== Pydantic models للبنية النهائية ====
class Subtopic(BaseModel):
title: str
description: str = ""
queries: List[str] = Field(..., min_items=1, max_items=3)
class Topic(BaseModel):
topic_name: str
subtopics: List[Subtopic]
class Unit(BaseModel):
unit_name: str
outcome: str
topics: List[Topic]
class CourseWithQueries(BaseModel):
course_name: str
course_audience: str
expanded_units: List[Unit]
|