feat: 新增多格式文件上传入库与认证体系

- 新增 JWT 认证模块,支持登录/注册/用户管理
- 新增文件上传接口,支持 .txt/.md/.html/.pdf/.docx 等格式解析入库
- 新增检索结果 AI 总结功能
- 新增文本去重缓存机制
- 新增全局认证夹具简化测试
- 新增配置项与环境变量支持
- 完善文档与测试覆盖
This commit is contained in:
2026-07-30 10:30:15 +08:00
parent 51dc8dc4f6
commit dce9e31bde
31 changed files with 3021 additions and 45 deletions
+42
View File
@@ -0,0 +1,42 @@
"""认证相关数据模型"""
from datetime import datetime
from pydantic import BaseModel, Field
class LoginRequest(BaseModel):
"""登录请求"""
username: str = Field(description="用户名")
password: str = Field(description="明文密码")
class RegisterRequest(BaseModel):
"""注册请求"""
username: str = Field(min_length=3, max_length=32, description="用户名(3-32 字符)")
password: str = Field(min_length=6, max_length=128, description="密码(6-128 字符)")
class AuthUser(BaseModel):
"""对外暴露的用户信息(不含密码)"""
username: str = Field(description="用户名")
role: str = Field(default="user", description="角色:admin | user")
created_at: datetime = Field(description="创建时间")
class StoredUser(AuthUser):
"""存储层用户:含密码哈希,仅内部使用,不对外暴露"""
hashed_password: str = Field(description="bcrypt 密码哈希")
class TokenResponse(BaseModel):
"""登录成功返回的 token 信息"""
access_token: str = Field(description="JWT access token")
token_type: str = Field(default="bearer", description="token 类型")
expires_in: int = Field(description="token 有效期(秒)")
user: AuthUser = Field(description="登录用户信息")