from pydantic import BaseModel from typing import Optional, List, Any class RegisterRequest(BaseModel): url: str class PendingRequest(BaseModel): task_id: int limit: Optional[int] = 10 class AddUrlsRequest(BaseModel): task_id: int urls_obj: dict # schemas.py class CrawlResult(BaseModel): source_url: str chunk_index: int # 新增字段 title: Optional[str] = None content: Optional[str] = None embedding: Optional[List[float]] = None class SaveResultsRequest(BaseModel): task_id: int results: List[CrawlResult] class SearchRequest(BaseModel): # 如果不传 task_id,则进行全库搜索 task_id: Optional[int] = None query_embedding: dict limit: Optional[int] = 5 # ... (保留原有的 Schema: RegisterRequest, AddUrlsRequest 等) ... # === V2 New Schemas === class AutoMapRequest(BaseModel): url: str class AutoProcessRequest(BaseModel): task_id: int batch_size: Optional[int] = 5 class TextSearchRequest(BaseModel): query: str # 用户直接传文字,不需要传向量了 task_id: Optional[int] = None limit: Optional[int] = 5