39 lines
732 B
Python
39 lines
732 B
Python
|
|
from pydantic import BaseModel
|
||
|
|
|
||
|
|
|
||
|
|
class ExtractFramesRequest(BaseModel):
|
||
|
|
file_path: str
|
||
|
|
source_id: int
|
||
|
|
job_id: int
|
||
|
|
mode: str = "interval"
|
||
|
|
frame_interval: int = 30
|
||
|
|
|
||
|
|
|
||
|
|
class VideoToTextRequest(BaseModel):
|
||
|
|
file_path: str
|
||
|
|
source_id: int
|
||
|
|
job_id: int
|
||
|
|
start_sec: float
|
||
|
|
end_sec: float
|
||
|
|
model: str | None = None
|
||
|
|
prompt_template: str | None = None
|
||
|
|
|
||
|
|
|
||
|
|
class FrameInfo(BaseModel):
|
||
|
|
frame_index: int
|
||
|
|
time_sec: float
|
||
|
|
frame_path: str
|
||
|
|
|
||
|
|
|
||
|
|
class VideoJobCallback(BaseModel):
|
||
|
|
job_id: int
|
||
|
|
status: str
|
||
|
|
frames: list[FrameInfo] | None = None
|
||
|
|
output_path: str | None = None
|
||
|
|
error_message: str | None = None
|
||
|
|
|
||
|
|
|
||
|
|
class VideoAcceptedResponse(BaseModel):
|
||
|
|
message: str
|
||
|
|
job_id: int
|