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 |