43 lines
1.2 KiB
Python
43 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
|
||
|
||
# --- [GET] 知识库列表 (新功能) ---
|
||
class KnowledgeBaseItem(BaseModel):
|
||
task_id: int
|
||
root_url: str
|
||
name: str # 提取出的简短名称,方便 LLM 识别
|
||
|
||
class KnowledgeBaseListResponse(BaseModel):
|
||
total: int
|
||
list: List[KnowledgeBaseItem]
|
||
|
||
# --- [POST] 创建任务 ---
|
||
class TaskCreateRequest(BaseModel):
|
||
url: str = Field(..., description="目标网站根URL")
|
||
|
||
# --- [POST] 执行任务 ---
|
||
class TaskExecuteRequest(BaseModel):
|
||
batch_size: int = Field(10, le=50)
|
||
|
||
# --- [POST] 搜索 ---
|
||
class SearchRequest(BaseModel):
|
||
query: str
|
||
# 明确支持 None 为全局搜索
|
||
task_id: Optional[int] = Field(None, description="任务ID,不传则搜全库")
|
||
limit: int = Field(5, description="返回数量")
|
||
|
||
# ... (SearchResultItem 等保持不变) ...
|
||
class SearchResultItem(BaseModel):
|
||
task_id: int
|
||
source_url: str
|
||
title: Optional[str] = None
|
||
content: str
|
||
score: float
|
||
meta_info: Dict = {}
|
||
reranked: Optional[bool] = False |