Make ML imports lazy in tasks so celery can register without torch/pyannote at import time
This commit is contained in:
@@ -8,8 +8,6 @@ from sqlalchemy.orm import Session
|
|||||||
from .celery_app import celery_app
|
from .celery_app import celery_app
|
||||||
from ..config import settings
|
from ..config import settings
|
||||||
from ..models.tables import Video, Segment, Job, VideoStatus, JobStatus
|
from ..models.tables import Video, Segment, Job, VideoStatus, JobStatus
|
||||||
from ..services.tts import synthesize_segment, unload_model as unload_tts
|
|
||||||
from ..services.mixer import mix_audio
|
|
||||||
from ..services.video_utils import build_output_path
|
from ..services.video_utils import build_output_path
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -21,8 +19,11 @@ def _get_sync_session():
|
|||||||
return Session(engine)
|
return Session(engine)
|
||||||
|
|
||||||
|
|
||||||
@celery_app.task(bind=True, name="generate_audio")
|
@celery_app.task(bind=True, name="app.tasks.generate.generate_audio")
|
||||||
def generate_audio(self, video_id: int, job_id: int = None):
|
def generate_audio(self, video_id: int, job_id: int = None):
|
||||||
|
from ..services.tts import synthesize_segment, unload_model as unload_tts
|
||||||
|
from ..services.mixer import mix_audio
|
||||||
|
|
||||||
db = _get_sync_session()
|
db = _get_sync_session()
|
||||||
temp_files = []
|
temp_files = []
|
||||||
audio_dir = None
|
audio_dir = None
|
||||||
|
|||||||
@@ -6,9 +6,6 @@ from sqlalchemy.orm import Session
|
|||||||
from .celery_app import celery_app
|
from .celery_app import celery_app
|
||||||
from ..config import settings
|
from ..config import settings
|
||||||
from ..models.tables import Video, Segment, Job, VideoStatus, JobStatus
|
from ..models.tables import Video, Segment, Job, VideoStatus, JobStatus
|
||||||
from ..services.diarization import diarize, unload_model as unload_diarization
|
|
||||||
from ..services.stt import transcribe_segment, unload_model as unload_stt
|
|
||||||
from ..services.translator import translate, unload_model as unload_translate
|
|
||||||
from ..services.video_utils import extract_audio
|
from ..services.video_utils import extract_audio
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -20,8 +17,12 @@ def _get_sync_session():
|
|||||||
return Session(engine)
|
return Session(engine)
|
||||||
|
|
||||||
|
|
||||||
@celery_app.task(bind=True, name="process_video")
|
@celery_app.task(bind=True, name="app.tasks.process.process_video")
|
||||||
def process_video(self, video_id: int, job_id: int = None):
|
def process_video(self, video_id: int, job_id: int = None):
|
||||||
|
from ..services.diarization import diarize, unload_model as unload_diarization
|
||||||
|
from ..services.stt import transcribe_segment, unload_model as unload_stt
|
||||||
|
from ..services.translator import translate, unload_model as unload_translate
|
||||||
|
|
||||||
db = _get_sync_session()
|
db = _get_sync_session()
|
||||||
temp_files = []
|
temp_files = []
|
||||||
try:
|
try:
|
||||||
|
|||||||
Reference in New Issue
Block a user