{"cells":[{"cell_type":"code","execution_count":2,"metadata":{},"outputs":[],"source":"\n    # Jane Street Market Prediction - Submission\n    import os\n    import pandas as pd\n    import polars as pl\n    import kaggle_evaluation.jane_street_inference_server\n    from pathlib import Path\n    from src.models.lgbm_model import LGBMModel\n    \n    # Global variables for model and lags\n    model = None\n    lags_ = None\n    \n    def predict(test: pl.DataFrame, lags: pl.DataFrame | None) -> pl.DataFrame:\n        global model, lags_\n        \n        # Load model on first call\n        if model is None:\n            model = LGBMModel({}, is_loading=True)\n            model.load('model.pkl')\n        \n        # Save lags\n        if lags is not None:\n            lags_ = lags\n        \n        # Make predictions\n        feature_cols = [f'feature_{i:02d}' for i in range(79)]\n        X = test.select(feature_cols).to_numpy()\n        predictions = model.predict(X)\n        \n        return pl.DataFrame({\n            'row_id': test.get_column('row_id'),\n            'responder_6': predictions\n        })\n    \n    # Set up inference server\n    inference_server = kaggle_evaluation.jane_street_inference_server.JSInferenceServer(predict)\n    \n    if os.getenv('KAGGLE_IS_COMPETITION_RERUN'):\n        inference_server.serve()\n    else:\n        inference_server.run_local_gateway(\n            (\n                '/kaggle/input/jane-street-real-time-market-data-forecasting/test.parquet',\n                '/kaggle/input/jane-street-real-time-market-data-forecasting/lags.parquet',\n            )\n        )"}],"metadata":{"kernelspec":{"display_name":".venv","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.10.12"}},"nbformat":4,"nbformat_minor":2}