def create_langfuse_handler() -> Any | None: """Return a configured handler when credentials are available.""" if not os.getenv("LANGFUSE_PUBLIC_KEY") or not os.getenv("LANGFUSE_SECRET_KEY"): return None from langfuse.langchain import CallbackHandler return CallbackHandler() def flush_langfuse(handler: Any | None) -> None: """Upload queued telemetry without making observability application-critical.""" if handler is None: return try: from langfuse import get_client get_client().flush() except Exception: logger.exception("Failed to flush LangFuse telemetry")