Spaces:
Sleeping
Sleeping
| import logging | |
| from src.config import settings | |
| from src.agent.graph import create_agent | |
| from src.ui import create_ui | |
| from langgraph.checkpoint.postgres import PostgresSaver | |
| logging.basicConfig( | |
| level=logging.DEBUG if settings.debug else logging.INFO, | |
| format="%(asctime)s [%(name)-12s] %(levelname)-7s %(message)s", | |
| datefmt="%H:%M:%S", | |
| ) | |
| # Quiet noisy third-party loggers | |
| for name in ("httpx", "httpcore", "urllib3", "hf_transfer", "gradio", "uvicorn", | |
| "openai", "anthropic", "google", "google.auth", "google.generativeai", | |
| "matplotlib", "psycopg", "psycopg.pool"): | |
| logging.getLogger(name).setLevel(logging.WARNING) | |
| logger = logging.getLogger("cashy.main") | |
| def main(): | |
| provider = settings.resolved_provider | |
| model_name = settings.model_name or "default" | |
| logger.info("Mode: %s", settings.app_mode) | |
| if provider: | |
| logger.info("LLM: %s (%s)", provider, model_name) | |
| else: | |
| logger.warning("LLM: No API key configured — user must provide one via UI") | |
| logger.info("Database: %s@%s:%s", settings.resolved_db_name, settings.db_host[:8] + "...", settings.db_port) | |
| with PostgresSaver.from_conn_string(settings.database_url) as checkpointer: | |
| checkpointer.setup() | |
| logger.info("Checkpoint tables ready") | |
| agent = create_agent(checkpointer=checkpointer) | |
| logger.info("Agent graph compiled") | |
| demo, theme = create_ui(agent) | |
| logger.info("Launching Gradio on http://localhost:7860") | |
| demo.launch(server_name="0.0.0.0", server_port=7860, theme=theme) | |
| if __name__ == "__main__": | |
| main() | |