From 917be873dfb0a0828398ab19c383dd4bc0ebb56a Mon Sep 17 00:00:00 2001 From: ajaysi Date: Mon, 6 Apr 2026 07:37:02 +0530 Subject: [PATCH] Fix: add missing deps, lazy-load heavy modules in podcast mode --- backend/api/__init__.py | 102 ++++++++++++++++++++++------------------ backend/render-build.sh | 8 ++++ 2 files changed, 64 insertions(+), 46 deletions(-) diff --git a/backend/api/__init__.py b/backend/api/__init__.py index 6c1bb9ca..099a3fa3 100644 --- a/backend/api/__init__.py +++ b/backend/api/__init__.py @@ -5,50 +5,60 @@ The onboarding endpoints are re-exported from a stable module `onboarding.py`. """ -from .onboarding_endpoints import ( - health_check, - get_onboarding_status, - get_onboarding_progress_full, - get_step_data, - complete_step, - skip_step, - validate_step_access, - get_api_keys, - save_api_key, - validate_api_keys, - start_onboarding, - complete_onboarding, - reset_onboarding, - get_resume_info, - get_onboarding_config, - generate_writing_personas, - generate_writing_personas_async, - get_persona_task_status, - assess_persona_quality, - regenerate_persona, - get_persona_generation_options -) +import os -__all__ = [ - 'health_check', - 'get_onboarding_status', - 'get_onboarding_progress_full', - 'get_step_data', - 'complete_step', - 'skip_step', - 'validate_step_access', - 'get_api_keys', - 'save_api_key', - 'validate_api_keys', - 'start_onboarding', - 'complete_onboarding', - 'reset_onboarding', - 'get_resume_info', - 'get_onboarding_config', - 'generate_writing_personas', - 'generate_writing_personas_async', - 'get_persona_task_status', - 'assess_persona_quality', - 'regenerate_persona', - 'get_persona_generation_options' -] \ No newline at end of file +# Check podcast mode early +_is_podcast = os.getenv("ALWRITY_ENABLED_FEATURES", "").strip().lower() == "podcast" + +# In podcast mode, don't import heavy onboarding endpoints +# They trigger heavy dependencies (exa_py, etc.) +if _is_podcast: + __all__ = [] +else: + from .onboarding_endpoints import ( + health_check, + get_onboarding_status, + get_onboarding_progress_full, + get_step_data, + complete_step, + skip_step, + validate_step_access, + get_api_keys, + save_api_key, + validate_api_keys, + start_onboarding, + complete_onboarding, + reset_onboarding, + get_resume_info, + get_onboarding_config, + generate_writing_personas, + generate_writing_personas_async, + get_persona_task_status, + assess_persona_quality, + regenerate_persona, + get_persona_generation_options + ) + + __all__ = [ + 'health_check', + 'get_onboarding_status', + 'get_onboarding_progress_full', + 'get_step_data', + 'complete_step', + 'skip_step', + 'validate_step_access', + 'get_api_keys', + 'save_api_key', + 'validate_api_keys', + 'start_onboarding', + 'complete_onboarding', + 'reset_onboarding', + 'get_resume_info', + 'get_onboarding_config', + 'generate_writing_personas', + 'generate_writing_personas_async', + 'get_persona_task_status', + 'assess_persona_quality', + 'regenerate_persona', + 'get_persona_generation_options' + ] \ No newline at end of file diff --git a/backend/render-build.sh b/backend/render-build.sh index 9a455817..85a92aa3 100644 --- a/backend/render-build.sh +++ b/backend/render-build.sh @@ -31,6 +31,7 @@ httpx>=0.27.2,<0.28.0 aiohttp>=3.9.0 openai>=1.3.0 google-genai>=1.0.0 +exa-py==1.9.1 gtts>=2.4.0 pyttsx3>=2.90 markdown>=3.5.0 @@ -51,6 +52,13 @@ requests>=2.31.0 beautifulsoup4>=4.12.0 lxml>=4.9.0 psutil>=5.9.0 +sentence-transformers>=2.2.2 +google-api-python-client>=2.100.0 +google-auth>=2.23.0 +google-auth-oauthlib>=1.0.0 +pydantic-settings>=2.0.0 +python-dateutil>=2.8.0 +jinja2>=3.1.0 EOF python -m pip install --retries 10 --timeout 120 -r requirements_min.txt else