Files
wiki_crawler/backend/schemas/v3.py

38 lines
1.2 KiB
Python

from pydantic import BaseModel, Field
from typing import List, Optional, Dict, Any
# --- 通用响应 ---
class ResponseBase(BaseModel):
code: int = Field(..., description="1: 成功, 0: 失败")
msg: str
data: Optional[Any] = None
# --- [POST] 创建任务 ---
class TaskCreateRequest(BaseModel):
url: str = Field(..., description="目标网站根URL", example="https://docs.firecrawl.dev")
# --- [POST] 执行任务 ---
class TaskExecuteRequest(BaseModel):
batch_size: int = Field(10, ge=1, le=50, description="并发线程数/批次大小")
# --- [GET] 监控数据 ---
class TaskStatusData(BaseModel):
root_url: str
stats: Dict[str, int] = Field(..., description="数据库统计: pending/processing/completed")
active_threads: List[str] = Field(..., description="内存实时: 当前正在爬取的URL列表")
active_thread_count: int
# --- [POST] 搜索 ---
class SearchRequest(BaseModel):
query: str
task_id: Optional[int] = None
return_num: int = Field(5, description="返回结果数量")
class SearchResultItem(BaseModel):
task_id: int
source_url: str
title: Optional[str] = None
content: str
score: float
meta_info: Dict = {}
reranked: Optional[bool] = False