Merge branch 'main' of https://gitea.o2o.kr/castad/o2o-castad-backend into feature-dashboard
commit
a1192193e5
|
|
@ -95,7 +95,7 @@ async def make_youtube_seo_description(
|
|||
"language" : project.language,
|
||||
"target_keywords" : hashtags
|
||||
}
|
||||
chatgpt = ChatgptService()
|
||||
chatgpt = ChatgptService(timeout = 180)
|
||||
yt_seo_output = await chatgpt.generate_structured_output(yt_upload_prompt, yt_seo_input_data)
|
||||
result_dict = {
|
||||
"title" : yt_seo_output.title,
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ class ChatgptService:
|
|||
text_format=output_format
|
||||
)
|
||||
# Response 디버그 로깅
|
||||
logger.debug(f"[ChatgptService] attempt: {attempt}")
|
||||
logger.debug(f"[ChatgptService] Response ID: {response.id}")
|
||||
logger.debug(f"[ChatgptService] Response status: {response.status}")
|
||||
logger.debug(f"[ChatgptService] Response model: {response.model}")
|
||||
|
|
|
|||
|
|
@ -550,6 +550,7 @@ async def get_video_status(
|
|||
}
|
||||
message = status_messages.get(status, f"상태: {status}")
|
||||
|
||||
video_id = None
|
||||
# succeeded 상태인 경우 백그라운드 태스크 실행
|
||||
if status == "succeeded" and video_url:
|
||||
# creatomate_render_id로 Video 조회하여 task_id 가져오기
|
||||
|
|
@ -561,6 +562,8 @@ async def get_video_status(
|
|||
)
|
||||
video = video_result.scalar_one_or_none()
|
||||
|
||||
video_id = video.id
|
||||
|
||||
if video and video.status != "completed":
|
||||
# 이미 완료된 경우 백그라운드 작업 중복 실행 방지
|
||||
# 백그라운드 태스크로 MP4 다운로드 → Blob 업로드 → DB 업데이트 → 임시 파일 삭제
|
||||
|
|
@ -584,6 +587,7 @@ async def get_video_status(
|
|||
status=status,
|
||||
url=video_url,
|
||||
snapshot_url=result.get("snapshot_url"),
|
||||
video_id = video_id if video_id else None
|
||||
)
|
||||
|
||||
logger.info(
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@ class VideoRenderData(BaseModel):
|
|||
status: Optional[str] = Field(None, description="렌더 상태")
|
||||
url: Optional[str] = Field(None, description="영상 URL")
|
||||
snapshot_url: Optional[str] = Field(None, description="스냅샷 URL")
|
||||
video_id: Optional[int] = Field(None, description="Video id(DB)")
|
||||
|
||||
|
||||
class PollingVideoResponse(BaseModel):
|
||||
|
|
|
|||
Loading…
Reference in New Issue