Spaces:
Sleeping
Sleeping
| """Pydantic models for API request/response.""" | |
| from typing import List, Dict, Any, Optional | |
| from pydantic import BaseModel | |
| # Request models | |
| class QueryRequest(BaseModel): | |
| query: str | |
| top_k: int = 3 | |
| use_hybrid: bool = True | |
| use_reranking: bool = True | |
| class IngestRequest(BaseModel): | |
| docs_dir: str | |
| output_path: str = "data/chunks.jsonl" | |
| provider: str = "sentence-transformers" | |
| class SyncRequest(BaseModel): | |
| chunks_path: str = "data/chunks.jsonl" | |
| batch_size: int = 100 | |
| # Response models | |
| class Citation(BaseModel): | |
| id: Optional[str] = None | |
| score: float = 0.0 | |
| snippet: str = "" | |
| class QueryResponse(BaseModel): | |
| answer: str | |
| sources: List[Citation] = [] | |
| citations: List[Citation] = [] | |
| query_rewrite: Optional[Dict[str, Any]] = None | |
| retrieval_meta: Optional[Dict[str, Any]] = None | |
| error: Optional[str] = None | |
| class IngestResponse(BaseModel): | |
| status: str | |
| documents: int = 0 | |
| chunks: int = 0 | |
| output_path: str = "" | |
| errors: List[str] = [] | |
| class SyncResponse(BaseModel): | |
| status: str | |
| vectors_upserted: int = 0 | |
| errors: List[str] = [] | |
| class StatusResponse(BaseModel): | |
| exists: bool = False | |
| chunks: int = 0 | |
| documents: int = 0 | |
| path: Optional[str] = None | |
| error: Optional[str] = None | |