Spaces:
Sleeping
Sleeping
| from pydantic import BaseModel, Field | |
| from typing import List, Optional | |
| from datetime import datetime | |
| from enum import Enum | |
| class QueryMode(str, Enum): | |
| WEB = "web" | |
| PDF = "pdf" | |
| HYBRID = "hybrid" | |
| RESTRICTED = "restricted" | |
| class SourceType(str, Enum): | |
| PDF = "pdf" | |
| WEB = "web" | |
| class QueryRequest(BaseModel): | |
| query: str = Field(..., min_length=1, max_length=1000) | |
| mode: QueryMode | |
| document_ids: Optional[List[str]] = None | |
| restrictions: Optional[List[str]] = None | |
| top_k: Optional[int] = Field(default=5, ge=1, le=20) | |
| class Source(BaseModel): | |
| type: SourceType | |
| content: str | |
| reference: str | |
| title: str | |
| relevance_score: Optional[float] = None | |
| class QueryResponse(BaseModel): | |
| answer: str | |
| sources: List[Source] | |
| confidence: float = Field(..., ge=0, le=100) | |
| mode_used: QueryMode | |
| query: str | |
| timestamp: datetime | |
| processing_time_ms: int | |
| class UploadResponse(BaseModel): | |
| document_id: str | |
| filename: str | |
| status: str | |
| chunks_created: int | |
| upload_date: datetime | |
| class Document(BaseModel): | |
| id: str | |
| filename: str | |
| upload_date: datetime | |
| chunk_count: int | |
| file_size: int | |
| status: str | |
| class DocumentListResponse(BaseModel): | |
| documents: List[Document] | |
| total: int | |
| class HealthResponse(BaseModel): | |
| status: str | |
| embedding_model: str | |
| vector_db: str | |
| llm: str | |