first commit
This commit is contained in:
0
backend/app/schemas/__init__.py
Normal file
0
backend/app/schemas/__init__.py
Normal file
BIN
backend/app/schemas/__pycache__/__init__.cpython-312.pyc
Normal file
BIN
backend/app/schemas/__pycache__/__init__.cpython-312.pyc
Normal file
Binary file not shown.
BIN
backend/app/schemas/__pycache__/__init__.cpython-39.pyc
Normal file
BIN
backend/app/schemas/__pycache__/__init__.cpython-39.pyc
Normal file
Binary file not shown.
BIN
backend/app/schemas/__pycache__/algorithm.cpython-312.pyc
Normal file
BIN
backend/app/schemas/__pycache__/algorithm.cpython-312.pyc
Normal file
Binary file not shown.
BIN
backend/app/schemas/__pycache__/algorithm.cpython-39.pyc
Normal file
BIN
backend/app/schemas/__pycache__/algorithm.cpython-39.pyc
Normal file
Binary file not shown.
BIN
backend/app/schemas/__pycache__/user.cpython-312.pyc
Normal file
BIN
backend/app/schemas/__pycache__/user.cpython-312.pyc
Normal file
Binary file not shown.
BIN
backend/app/schemas/__pycache__/user.cpython-39.pyc
Normal file
BIN
backend/app/schemas/__pycache__/user.cpython-39.pyc
Normal file
Binary file not shown.
116
backend/app/schemas/algorithm.py
Normal file
116
backend/app/schemas/algorithm.py
Normal file
@@ -0,0 +1,116 @@
|
||||
from pydantic import BaseModel, Field
|
||||
from typing import Optional, List, Dict, Any
|
||||
from datetime import datetime
|
||||
|
||||
|
||||
class AlgorithmBase(BaseModel):
|
||||
"""算法基础模式"""
|
||||
id: Optional[str] = None
|
||||
name: str = Field(..., description="算法名称")
|
||||
description: str = Field(..., description="算法描述")
|
||||
type: str = Field(..., description="算法类型")
|
||||
|
||||
|
||||
class AlgorithmCreate(AlgorithmBase):
|
||||
"""创建算法模式"""
|
||||
# 版本相关字段
|
||||
version: str = Field(default="1.0.0", description="版本号")
|
||||
url: str = Field(default="", description="算法API地址")
|
||||
params: Dict[str, Any] = Field(default_factory=dict, description="算法参数配置")
|
||||
input_schema: Dict[str, Any] = Field(default_factory=dict, description="输入数据格式")
|
||||
output_schema: Dict[str, Any] = Field(default_factory=dict, description="输出数据格式")
|
||||
code: str = Field(default="", description="Python算法代码")
|
||||
model_name: str = Field(default="", description="API训练后的模型名字")
|
||||
model_file: str = Field(default="", description="模型文件路径")
|
||||
api_doc: str = Field(default="", description="模型的API用法文档")
|
||||
|
||||
|
||||
class AlgorithmUpdate(BaseModel):
|
||||
"""更新算法模式"""
|
||||
name: Optional[str] = None
|
||||
description: Optional[str] = None
|
||||
type: Optional[str] = None
|
||||
status: Optional[str] = None
|
||||
|
||||
|
||||
class AlgorithmVersionBase(BaseModel):
|
||||
"""算法版本基础模式"""
|
||||
id: Optional[str] = None
|
||||
algorithm_id: str = Field(..., description="算法ID")
|
||||
version: str = Field(..., description="版本号")
|
||||
url: str = Field(..., description="算法API地址")
|
||||
params: Dict[str, Any] = Field(default_factory=dict, description="算法参数配置")
|
||||
input_schema: Dict[str, Any] = Field(default_factory=dict, description="输入数据格式")
|
||||
output_schema: Dict[str, Any] = Field(default_factory=dict, description="输出数据格式")
|
||||
code: str = Field(default="", description="Python算法代码")
|
||||
model_name: str = Field(default="", description="API训练后的模型名字")
|
||||
model_file: str = Field(default="", description="模型文件路径")
|
||||
api_doc: str = Field(default="", description="模型的API用法文档")
|
||||
is_default: bool = Field(default=False, description="是否为默认版本")
|
||||
|
||||
|
||||
class AlgorithmVersionCreate(AlgorithmVersionBase):
|
||||
"""创建算法版本模式"""
|
||||
pass
|
||||
|
||||
|
||||
class AlgorithmVersionUpdate(BaseModel):
|
||||
"""更新算法版本模式"""
|
||||
version: Optional[str] = None
|
||||
url: Optional[str] = None
|
||||
params: Optional[Dict[str, Any]] = None
|
||||
input_schema: Optional[Dict[str, Any]] = None
|
||||
output_schema: Optional[Dict[str, Any]] = None
|
||||
code: Optional[str] = None
|
||||
model_name: Optional[str] = None
|
||||
model_file: Optional[str] = None
|
||||
api_doc: Optional[str] = None
|
||||
is_default: Optional[bool] = None
|
||||
|
||||
|
||||
class AlgorithmCallBase(BaseModel):
|
||||
"""算法调用基础模式"""
|
||||
id: Optional[str] = None
|
||||
algorithm_id: str = Field(..., description="算法ID")
|
||||
version_id: str = Field(..., description="版本ID")
|
||||
input_data: Dict[str, Any] = Field(..., description="输入数据")
|
||||
params: Dict[str, Any] = Field(default_factory=dict, description="调用参数")
|
||||
|
||||
|
||||
class AlgorithmCallCreate(AlgorithmCallBase):
|
||||
"""创建算法调用模式"""
|
||||
pass
|
||||
|
||||
|
||||
class AlgorithmCallResult(BaseModel):
|
||||
"""算法调用结果模式"""
|
||||
id: str
|
||||
status: str
|
||||
output_data: Dict[str, Any]
|
||||
response_time: Optional[float] = None
|
||||
error_message: Optional[str] = None
|
||||
created_at: datetime
|
||||
|
||||
|
||||
class AlgorithmResponse(AlgorithmBase):
|
||||
"""算法响应模式"""
|
||||
status: str
|
||||
created_at: datetime
|
||||
updated_at: Optional[datetime] = None
|
||||
versions: List["AlgorithmVersionResponse"] = []
|
||||
|
||||
|
||||
class AlgorithmVersionResponse(AlgorithmVersionBase):
|
||||
"""算法版本响应模式"""
|
||||
created_at: datetime
|
||||
updated_at: Optional[datetime] = None
|
||||
|
||||
|
||||
class AlgorithmListResponse(BaseModel):
|
||||
"""算法列表响应模式"""
|
||||
algorithms: List[AlgorithmResponse]
|
||||
total: int
|
||||
|
||||
|
||||
# 更新前向引用
|
||||
AlgorithmResponse.model_rebuild()
|
||||
83
backend/app/schemas/user.py
Normal file
83
backend/app/schemas/user.py
Normal file
@@ -0,0 +1,83 @@
|
||||
from pydantic import BaseModel, Field, EmailStr
|
||||
from typing import Optional, List
|
||||
from datetime import datetime
|
||||
|
||||
|
||||
class UserBase(BaseModel):
|
||||
"""用户基础模式"""
|
||||
id: Optional[str] = None
|
||||
username: str = Field(..., description="用户名")
|
||||
email: EmailStr = Field(..., description="邮箱")
|
||||
role: str = Field(default="user", description="用户角色")
|
||||
|
||||
|
||||
class UserCreate(UserBase):
|
||||
"""创建用户模式"""
|
||||
password: str = Field(..., description="密码")
|
||||
|
||||
|
||||
class UserUpdate(BaseModel):
|
||||
"""更新用户模式"""
|
||||
username: Optional[str] = None
|
||||
email: Optional[EmailStr] = None
|
||||
role: Optional[str] = None
|
||||
status: Optional[str] = None
|
||||
password: Optional[str] = None
|
||||
|
||||
|
||||
class UserResponse(UserBase):
|
||||
"""用户响应模式"""
|
||||
status: str
|
||||
created_at: datetime
|
||||
updated_at: Optional[datetime] = None
|
||||
|
||||
|
||||
class UserListResponse(BaseModel):
|
||||
"""用户列表响应模式"""
|
||||
users: List[UserResponse]
|
||||
total: int
|
||||
|
||||
|
||||
class Token(BaseModel):
|
||||
"""令牌模式"""
|
||||
access_token: str
|
||||
token_type: str = "bearer"
|
||||
|
||||
|
||||
class TokenData(BaseModel):
|
||||
"""令牌数据模式"""
|
||||
username: Optional[str] = None
|
||||
user_id: Optional[str] = None
|
||||
|
||||
|
||||
class LoginRequest(BaseModel):
|
||||
"""登录请求模式"""
|
||||
username: str = Field(..., description="用户名")
|
||||
password: str = Field(..., description="密码")
|
||||
|
||||
|
||||
class APIKeyBase(BaseModel):
|
||||
"""API密钥基础模式"""
|
||||
id: Optional[str] = None
|
||||
user_id: str = Field(..., description="用户ID")
|
||||
name: str = Field(..., description="密钥名称")
|
||||
|
||||
|
||||
class APIKeyCreate(APIKeyBase):
|
||||
"""创建API密钥模式"""
|
||||
expires_at: datetime = Field(..., description="过期时间")
|
||||
|
||||
|
||||
class APIKeyResponse(APIKeyBase):
|
||||
"""API密钥响应模式"""
|
||||
key: str
|
||||
expires_at: datetime
|
||||
status: str
|
||||
created_at: datetime
|
||||
updated_at: Optional[datetime] = None
|
||||
|
||||
|
||||
class APIKeyListResponse(BaseModel):
|
||||
"""API密钥列表响应模式"""
|
||||
api_keys: List[APIKeyResponse]
|
||||
total: int
|
||||
Reference in New Issue
Block a user