diff --git a/asr.py b/asr.py index ad1dff2..587b19e 100644 --- a/asr.py +++ b/asr.py @@ -2,6 +2,7 @@ import os import time import tomli +from typing import Optional from base_util import ( get_asset_info, @@ -37,7 +38,7 @@ def _get_project_meta(): version = str(pkg_meta["version"]) -def run(input_uri: str, output_uri: str, model=None) -> bool: +def run(input_uri: str, output_uri: str, model=None) -> Optional[str]: logger.info(f"Processing {input_uri} (save to --> {output_uri})") start_time = time.time() prov_steps = [] # track provenance @@ -46,7 +47,7 @@ def run(input_uri: str, output_uri: str, model=None) -> bool: logger.info(result) if not result: logger.error("Could not obtain input, quitting...") - return False + return "Input download failed" prov_steps.append(result.provenance) @@ -58,7 +59,7 @@ def run(input_uri: str, output_uri: str, model=None) -> bool: transcode_output = try_transcode(input_path, asset_id, extension) if not transcode_output: logger.error("The transcode failed to yield a valid file to continue with") - return False + return "Transcode failed" else: input_path = transcode_output.transcoded_file_path prov_steps.append(transcode_output.provenance) @@ -137,7 +138,7 @@ def run(input_uri: str, output_uri: str, model=None) -> bool: else: logger.info("No output_uri specified, so all is done") - return True + return None # if S3 output_uri is supplied transfers data to S3 location diff --git a/docker-compose.yml b/docker-compose.yml index c68397f..0ea48d6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,6 @@ services: - ./model:/model - ./data:/data container_name: whisper-asr-worker - # args: ["--output-uri"] env_file: - .env.override logging: diff --git a/main.py b/main.py index 90a5e85..5b8af53 100644 --- a/main.py +++ b/main.py @@ -27,7 +27,7 @@ def run_job(input_uri: str, output_uri: str): logger.error("Please supply the --input and --output params") return False - return asr.run(input_uri, output_uri) + asr.run(input_uri, output_uri) # Start the worker diff --git a/whisper_api.py b/whisper_api.py index 63cc4cc..7a3faa6 100644 --- a/whisper_api.py +++ b/whisper_api.py @@ -41,6 +41,7 @@ class Task(BaseModel): output_uri: str status: Status = Status.CREATED id: str | None = None + error_msg: str | None = None all_tasks = [ @@ -91,8 +92,9 @@ def try_whisper(task: Task): try: task.status = Status.PROCESSING update_task(task) - run(task.input_uri, task.output_uri, model) - task.status = Status.DONE + error_msg = run(task.input_uri, task.output_uri, model) + task.status = Status.ERROR if error_msg else Status.DONE + task.error_msg = error_msg except Exception: logger.exception("Failed to run whisper") task.status = Status.ERROR