sonicoder / app.py
R-Kentaren's picture
fix: consolidate to code/ only, fix bugs, add missing UI options
e3e7994 verified
Raw
History Blame Contribute Delete
1.83 kB
"""SoniCoder v2 — Entry point.
gradio.Server (Gradio 6.x) serves index.html from project root
with Gradio's queuing, concurrency, and API infrastructure.
Blog: https://huggingface.co/blog/introducing-gradio-server
"""
from __future__ import annotations
import logging
# Ensure workspace + config dirs exist
from code.config import WORKSPACE_ROOT, CONFIG_DIR
WORKSPACE_ROOT.mkdir(parents=True, exist_ok=True)
CONFIG_DIR.mkdir(parents=True, exist_ok=True)
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s [%(levelname)s] %(name)s: %(message)s",
datefmt="%H:%M:%S",
)
logger = logging.getLogger(__name__)
def main():
logger.info("SoniCoder v2 starting...")
# Start loading default model in background
from code.model.loader import start_background_load
start_background_load()
logger.info("Background model loading started")
# Set up MCP servers from config (best-effort)
try:
from code.config import load_settings
from code.mcp import get_mcp_manager
settings = load_settings()
if settings.mcp_servers:
mcp = get_mcp_manager()
mcp.configure(settings.mcp_servers)
results = mcp.connect_all()
for name, error in results.items():
if error:
logger.warning("MCP server '%s' failed: %s", name, error)
else:
logger.info("MCP server '%s' connected", name)
except Exception as exc:
logger.warning("MCP setup skipped: %s", exc)
# Create the server (gradio.Server — custom HTML + Gradio backend)
from code.server import create_app
app = create_app()
logger.info("Launching...")
app.launch(show_error=True, server_name="0.0.0.0", server_port=7860)
if __name__ == "__main__":
main()