from fastapi import FastAPI from app.core.settings import settings from app.db.database import Base, engine from app.db.mock_database import MockBase, mock_engine from app.db.models import Tool from app.db.mock_models import Customer, Order, ReviewSchedule, Vehicle from app.services.ai.llm_service import LLMService app = FastAPI(title="AI Orquestrador") @app.on_event("startup") async def startup_event(): """ Inicializa o banco de dados e executa seeds automaticamente. """ print("[Auto-Seed] Iniciando configuracao do banco...") # Tools (MySQL) e mock (MySQL) sobem de forma independente. try: Base.metadata.create_all(bind=engine) if settings.auto_seed_tools: from app.db.tool_seed import seed_tools seed_tools() print("[Auto-Seed] MySQL de tools inicializado.") except Exception as e: print(f"[Auto-Seed] Aviso: falha ao inicializar MySQL (tools): {e}") try: MockBase.metadata.create_all(bind=mock_engine) if settings.auto_seed_mock and settings.mock_seed_enabled: from app.db.mock_seed import seed_mock_data seed_mock_data() print("[Auto-Seed] MySQL de mock inicializado.") except Exception as e: print(f"[Auto-Seed] Aviso: falha ao inicializar MySQL (mock): {e}") try: await LLMService().warmup() print("[Startup] LLM warmup concluido.") except Exception as e: print(f"[Startup] Aviso: falha no warmup do LLM: {e}") print("[Auto-Seed] Startup finalizado.")