feat: 新增多格式文件上传入库与认证体系
- 新增 JWT 认证模块,支持登录/注册/用户管理 - 新增文件上传接口,支持 .txt/.md/.html/.pdf/.docx 等格式解析入库 - 新增检索结果 AI 总结功能 - 新增文本去重缓存机制 - 新增全局认证夹具简化测试 - 新增配置项与环境变量支持 - 完善文档与测试覆盖
This commit is contained in:
@@ -8,6 +8,7 @@ class SearchRequest(BaseModel):
|
||||
|
||||
query: str = Field(description="查询文本")
|
||||
top_k: int | None = Field(default=None, description="返回结果数,为空时使用 settings.retrieval_final_k")
|
||||
summarize: bool = Field(default=False, description="是否对检索结果生成 AI 总结")
|
||||
|
||||
|
||||
class SearchHit(BaseModel):
|
||||
@@ -21,6 +22,17 @@ class SearchHit(BaseModel):
|
||||
doc_summary: str = Field(default="", description="L1 文档总结,仅用于上下文标注")
|
||||
|
||||
|
||||
class ExtractedInfo(BaseModel):
|
||||
"""AI 从 query 中提取的关键信息"""
|
||||
|
||||
rewrite: str = Field(default="", description="改写后的 query")
|
||||
keywords: list[str] = Field(default_factory=list, description="关键词")
|
||||
entities: list[str] = Field(default_factory=list, description="实体(人名/产品/技术等)")
|
||||
intent: str = Field(default="", description="查询意图分类")
|
||||
time_range: str = Field(default="", description="时间范围,空表示无")
|
||||
categories: list[str] = Field(default_factory=list, description="命中类目名(含未达阈值的候选)")
|
||||
|
||||
|
||||
class SearchResponse(BaseModel):
|
||||
"""检索响应"""
|
||||
|
||||
@@ -28,3 +40,5 @@ class SearchResponse(BaseModel):
|
||||
hits: list[SearchHit] = Field(default_factory=list, description="命中结果列表")
|
||||
routed_categories: list[str] = Field(default_factory=list, description="query 路由命中的类目")
|
||||
fallback: bool = Field(default=False, description="是否走了全库兜底路径")
|
||||
extracted_info: ExtractedInfo | None = Field(default=None, description="AI 提取的 query 关键信息")
|
||||
summary: str | None = Field(default=None, description="检索结果 AI 总结,仅 summarize=true 时返回")
|
||||
|
||||
Reference in New Issue
Block a user