File size: 812 Bytes
3b5d2e9
 
eefb354
 
3b5d2e9
 
 
 
 
 
 
 
 
 
 
 
eefb354
 
 
c72956b
3b5d2e9
 
 
 
 
 
 
 
 
 
 
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
from pydantic import BaseModel, Field, validator
from typing import List, Dict, Any, Optional

class QueryRequest(BaseModel):
    query: str = Field(..., min_length=1, max_length=1000, description="The query text to search for")
    
    @validator('query')
    def validate_query(cls, v):
        if not v.strip():
            raise ValueError('Query cannot be empty or contain only whitespace')
        return v.strip()

class SourceDocument(BaseModel):
    source: str
    text: str
    score: float

class QueryResponse(BaseModel):
    answer: str
    source_documents: List[Dict[str, Any]]

class ErrorResponse(BaseModel):
    error: str
    detail: str
    status_code: int
    timestamp: Optional[str] = None

class UploadResponse(BaseModel):
    filename: str
    message: str
    num_chunks_stored: int