Spaces:
Sleeping
Sleeping
| # modal_deploy.py | |
| from modal import Image, Stub, asgi_app | |
| import sys | |
| # Create a Modal image with the required dependencies | |
| image = Image.debian_slim().pip_install_from_requirements("requirements.txt") | |
| # Create a Modal Stub | |
| stub = Stub("code-review-agent") | |
| def app(): | |
| """ | |
| Deploy the Code Review Agent as an ASGI app on Modal. | |
| This function sets up the Gradio application and returns it as an ASGI app | |
| that Modal can serve. The app will be accessible via a URL provided by Modal | |
| after deployment. | |
| Returns: | |
| ASGI application: The Gradio app as an ASGI application | |
| """ | |
| import os | |
| import sys | |
| import logging | |
| from dotenv import load_dotenv | |
| # Add the project root to the Python path | |
| sys.path.insert(0, os.path.abspath(os.path.dirname(__file__))) | |
| # Import application modules | |
| from src.ui.gradio_app import create_gradio_app | |
| from src.core.agent_manager import AgentManager | |
| # Configure logging | |
| logging.basicConfig( | |
| level=logging.INFO, | |
| format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' | |
| ) | |
| # Load environment variables | |
| load_dotenv() | |
| # Create logs directory if it doesn't exist | |
| logs_dir = os.path.join(os.path.dirname(__file__), 'logs') | |
| os.makedirs(logs_dir, exist_ok=True) | |
| # Initialize the agent manager | |
| agent_manager = AgentManager() | |
| # Create the Gradio app | |
| gradio_app = create_gradio_app(agent_manager) | |
| # Return the Gradio app as an ASGI app | |
| return gradio_app.app | |
| if __name__ == "__main__": | |
| # For local testing | |
| stub.serve() | |
| # For deployment | |
| # Run: modal deploy modal_deploy.py |