66import shutil
77import uuid
88from pathlib import Path
9- from typing import Optional
10-
11- from fastapi import APIRouter , BackgroundTasks , File , HTTPException , Query , UploadFile
12- from pydantic import BaseModel
139
1410from backend .app .services .ingest import (
1511 ingest_document_background ,
1612)
13+ from fastapi import APIRouter , BackgroundTasks , File , Query , UploadFile
14+ from pydantic import BaseModel
1715
1816# ---------------------------------------------------------------------------
1917# Pydantic response models
@@ -24,15 +22,15 @@ class UploadResponse(BaseModel):
2422 status : str
2523 document_id : str
2624 dataset : str
27- summary : Optional [ str ] = ""
28- entities : Optional [ list [str ]] = []
29- raw_chunks_count : Optional [ int ] = 0
25+ summary : str | None = ""
26+ entities : list [str ] | None = []
27+ raw_chunks_count : int | None = 0
3028 error : str = ""
3129
3230
3331class SearchResult (BaseModel ):
3432 text : str
35- score : Optional [ float ] = None
33+ score : float | None = None
3634 metadata : dict = {}
3735
3836
@@ -86,7 +84,7 @@ async def upload_document(
8684 document_id = document_id ,
8785 dataset = dataset_name ,
8886 )
89-
87+
9088 return UploadResponse (
9189 status = "ok" ,
9290 document_id = document_id ,
@@ -97,7 +95,7 @@ async def upload_document(
9795@router .get ("/search" , response_model = SearchResponse )
9896async def search_documents (
9997 q : str = Query (..., description = "Search query text" ),
100- dataset : Optional [ str ] = Query (default = None , description = "Filter by dataset" ),
98+ dataset : str | None = Query (default = None , description = "Filter by dataset" ),
10199 limit : int = Query (default = 20 , description = "Max results to return" ),
102100):
103101 """
0 commit comments