greeta commited on
Commit
8b8d4b0
·
verified ·
1 Parent(s): b9d24dc

Delete models.py

Browse files
Files changed (1) hide show
  1. models.py +0 -94
models.py DELETED
@@ -1,94 +0,0 @@
1
- """
2
- Pydantic models for the scraper API.
3
- """
4
-
5
- from datetime import datetime
6
- from typing import Any, Dict, List, Optional
7
-
8
- from pydantic import BaseModel, Field
9
-
10
-
11
- class TaskInput(BaseModel):
12
- title: str = Field(..., description="Task title")
13
- content: str = Field(..., description="Task body")
14
- source_url: str = Field(..., description="Source URL")
15
- task_type: Optional[str] = Field(None, description="Task type")
16
- images: Optional[List[str]] = Field(default_factory=list, description="Task images")
17
- variants: Optional[List[str]] = Field(default_factory=list, description="Answer variants")
18
-
19
-
20
- class TaskResponse(BaseModel):
21
- id: Optional[int] = None
22
- title: str
23
- content: str
24
- source_url: str
25
- task_type: Optional[str] = None
26
- images: Optional[List[str]] = None
27
- variants: Optional[List[str]] = None
28
- task_number: Optional[int] = None
29
- source_kind: Optional[str] = None
30
- task_guid: Optional[str] = None
31
- can_check_answer: bool = False
32
- scraped_at: Optional[datetime] = None
33
- rubert_analysis: Optional[Dict[str, Any]] = None
34
-
35
-
36
- class ScrapeRequest(BaseModel):
37
- subject: Optional[str] = Field("russian", description="Subject code")
38
- urls: Optional[List[str]] = Field(default_factory=list, description="Explicit URLs to scrape")
39
- query: Optional[str] = Field(None, description="Search query")
40
- full_refresh: bool = Field(
41
- False,
42
- description="When true, also scrape official archives and open-variant PDFs",
43
- )
44
-
45
-
46
- class ScrapeResponse(BaseModel):
47
- success: bool
48
- tasks_scraped: int
49
- tasks_saved: int
50
- duplicates_skipped: int
51
- message: str
52
-
53
-
54
- class CheckAnswerRequest(BaseModel):
55
- answer: str = Field(..., min_length=1, description="Submitted answer")
56
-
57
-
58
- class CheckAnswerResponse(BaseModel):
59
- success: bool
60
- is_correct: bool
61
- status_code: str
62
- status_label: str
63
- submitted_answer: str
64
- normalized_answer: str
65
- message: str
66
-
67
-
68
- class AnalysisRequest(BaseModel):
69
- text: str = Field(..., description="Text to analyze")
70
-
71
-
72
- class AnalysisResponse(BaseModel):
73
- category: str
74
- keywords: List[str]
75
- confidence: float
76
- embedding: Optional[List[float]] = None
77
-
78
-
79
- class HealthResponse(BaseModel):
80
- status: str
81
- timestamp: datetime
82
- services: Dict[str, bool]
83
-
84
-
85
- class StatsResponse(BaseModel):
86
- total_tasks: int
87
- by_type: Dict[str, int]
88
- last_scrape: Optional[datetime] = None
89
-
90
-
91
- class ErrorResponse(BaseModel):
92
- error: str
93
- detail: Optional[str] = None
94
- timestamp: datetime = Field(default_factory=datetime.utcnow)