Spaces:
Sleeping
Sleeping
File size: 1,157 Bytes
b62e029 9496080 b62e029 | 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 40 41 42 43 44 45 46 | # api/schemas/search.py
from typing import Any, Dict, List, Optional
from pydantic import BaseModel, Field
# ---------------------------
# Request
# ---------------------------
class SearchRequest(BaseModel):
query: str = Field(..., description="Search query")
top_k: int = Field(default=5, ge=1, le=50)
# optional
use_reranking: Optional[bool] = True
include_llm_context: Optional[bool] = True
# ---------------------------
# Document metadata
# ---------------------------
class DocumentMetadata(BaseModel):
doc_id: int
title: str
lang: str
url: Optional[str] = None
date_modified: Optional[str] = None
# ---------------------------
# Result item (LLM-friendly)
# ---------------------------
class SearchResultItem(BaseModel):
chunk_id: int
text: str
score: float = Field(..., description="Reranking score (0.0 to 1.0)")
metadata: DocumentMetadata
scoring_details: Optional[Dict[str, Any]] = None # optional
# ---------------------------
# Response
# ---------------------------
class SearchResponse(BaseModel):
query: str
results: List[SearchResultItem]
latency_ms: int
|