FIX 修复空返回值问题

This commit is contained in:
kyj@bowong.ai 2025-05-23 17:39:53 +08:00
parent ce16fda8b2
commit db4515292e
2 changed files with 20 additions and 23 deletions

View File

@ -1,4 +1,5 @@
from datetime import datetime
from typing import Any, Coroutine
import modal
from modal import current_function_call_id
@ -78,27 +79,27 @@ async def video_match_video(target_image: str, reference_video: str) -> ModalTas
summary="查询参考视频中匹配目标结果",
description="查询参考视频中匹配目标结果,返回起止帧/匹配帧信息和置信度",
dependencies=[Depends(verify_token)])
async def video_match_video(task_id: str, response: Response) -> ImageMatchVideoStatusResponse | VideoMatchVideoStatusResponse | BaseFFMPEGTaskStatusResponse:
async def video_match_video(task_id: str, response: Response) -> None | VideoMatchVideoStatusResponse | ImageMatchVideoStatusResponse | BaseFFMPEGTaskStatusResponse:
task_status, code, reason, result, transaction = await ModalUtils.get_modal_task_status(task_id)
if transaction:
response.headers["x-trace-id"] = transaction.x_trace_id
response.headers["x-baggage"] = transaction.x_baggage
if len(result) == 2:
return ImageMatchVideoStatusResponse(taskId=task_id, status=task_status, code=code,error=reason, frame={
"frame_point": result[0].frame_num,
"frame_time": parse_time(result[0].timestamp),
"similarity": result[1]
})
elif len(result) == 4:
return VideoMatchVideoStatusResponse(taskId=task_id, status=task_status, code=code,error=reason, start_frame={
"frame_point": result[0].frame_num,
"frame_time": parse_time(result[0].timestamp),
"similarity": result[2]
},end_frame={
"frame_point": result[1].frame_num,
"frame_time": parse_time(result[1].timestamp),
"similarity": result[3]
})
if result:
if len(result) == 2:
return ImageMatchVideoStatusResponse(taskId=task_id, status=task_status, code=code,error=reason, frame={
"frame_point": result[0].frame_num,
"frame_time": parse_time(result[0].timestamp),
"similarity": result[1]
})
elif len(result) == 4:
return VideoMatchVideoStatusResponse(taskId=task_id, status=task_status, code=code,error=reason, start_frame={
"frame_point": result[0].frame_num,
"frame_time": parse_time(result[0].timestamp),
"similarity": result[2]
},end_frame={
"frame_point": result[1].frame_num,
"frame_time": parse_time(result[1].timestamp),
"similarity": result[3]
})
else:
return BaseFFMPEGTaskStatusResponse(taskId=task_id, status=task_status, code=code,error=reason)

View File

@ -349,15 +349,11 @@ with downloader_image.imports():
self.frames: List[VideoFrame] = []
self.num_workers = num_workers # 线程池工作线程数
# 配置日志
logger.remove()
logger.add(sys.stderr, level="INFO")
# 获取视频元数据
self._get_video_metadata()
def _get_styled_bar_format(self, text: str) -> str:
return f"{Style.DIM}{Fore.GREEN}{str(datetime.now())[:-3]} {Fore.MAGENTA}| {Fore.BLACK}{Style.BRIGHT}PBAR {Style.DIM}{Fore.MAGENTA}| {Fore.CYAN}{text}{Fore.RESET}{Style.BRIGHT}"
return f"{Style.DIM}{Fore.GREEN}{str(datetime.now())[:-3]} {Fore.MAGENTA}| {Fore.RESET}{Style.BRIGHT}PBAR {Style.DIM}{Fore.MAGENTA}| {Fore.CYAN}{text}{Fore.RESET}{Style.BRIGHT}"
def _get_video_metadata(self) -> None:
"""获取视频元数据"""