{"metadata": {"kernelspec": {"language": "python", "display_name": "Python 3", "name": "python3"}, "language_info": {"name": "python", "version": "3.11.11", "mimetype": "text/x-python", "codemirror_mode": {"name": "ipython", "version": 3}, "pygments_lexer": "ipython3", "nbconvert_exporter": "python", "file_extension": ".py"}, "kaggle": {"accelerator": "none", "dataSources": [{"sourceId": 102335, "databundleVersionId": 12517760, "sourceType": "competition"}], "dockerImageVersionId": 31040, "isInternetEnabled": false, "language": "python", "sourceType": "notebook", "isGpuEnabled": false}}, "nbformat_minor": 4, "nbformat": 4, "cells": [{"cell_type": "code", "source": "import os\n\nimport pandas as pd\nimport polars as pl\n\nimport kaggle_evaluation.cmi_inference_server", "metadata": {"_uuid": "8f2839f25d086af736a60e9eeb907d3b93b6e0e5", "_cell_guid": "b1076dfc-b9ad-4769-8c92-a6c4dae69d19", "trusted": true, "execution": {"iopub.status.busy": "2025-05-29T23:31:28.762062Z", "iopub.execute_input": "2025-05-29T23:31:28.762435Z", "iopub.status.idle": "2025-05-29T23:31:30.304963Z", "shell.execute_reply.started": "2025-05-29T23:31:28.762409Z", "shell.execute_reply": "2025-05-29T23:31:30.303684Z"}}, "outputs": [], "execution_count": null}, {"cell_type": "markdown", "source": "The evaluation API requires that you set up a server which will respond to inference requests. We have already defined the server; you just need write the predict function. When we evaluate your submission on the hidden test set the client defined in the gateway will run in a different container with direct access to the hidden test set and hand off the one sequence at a time.\n\nYour code will always have access to the published copies of the files.", "metadata": {"execution": {"iopub.status.busy": "2025-05-29T22:29:18.955791Z", "iopub.execute_input": "2025-05-29T22:29:18.956193Z", "iopub.status.idle": "2025-05-29T22:29:18.965179Z", "shell.execute_reply.started": "2025-05-29T22:29:18.956169Z", "shell.execute_reply": "2025-05-29T22:29:18.963797Z"}}}, {"cell_type": "code", "source": "def predict(sequence: pl.DataFrame, demographics: pl.DataFrame) -> str:\n    # Replace this function with your inference code.\n    # You can return either a Pandas or Polars dataframe, though Polars is recommended.\n    # Each prediction (except the very first) must be returned within 30 minutes of the batch features being provided.\n    return 'Text on phone'", "metadata": {"trusted": true, "execution": {"iopub.status.busy": "2025-05-29T23:31:30.306452Z", "iopub.execute_input": "2025-05-29T23:31:30.306956Z", "iopub.status.idle": "2025-05-29T23:31:30.312445Z", "shell.execute_reply.started": "2025-05-29T23:31:30.306918Z", "shell.execute_reply": "2025-05-29T23:31:30.311257Z"}}, "outputs": [], "execution_count": null}, {"cell_type": "code", "source": "inference_server = kaggle_evaluation.cmi_inference_server.CMIInferenceServer(predict)\n\nif os.getenv('KAGGLE_IS_COMPETITION_RERUN'):\n    inference_server.serve()\nelse:\n    inference_server.run_local_gateway(\n        data_paths=(\n            '/kaggle/input/cmi-detect-behavior-with-sensor-data/test.csv',\n            '/kaggle/input/cmi-detect-behavior-with-sensor-data/test_demographics.csv',\n        )\n    )", "metadata": {"trusted": true, "execution": {"iopub.status.busy": "2025-05-29T23:31:30.313433Z", "iopub.execute_input": "2025-05-29T23:31:30.313835Z", "iopub.status.idle": "2025-05-29T23:31:31.736421Z", "shell.execute_reply.started": "2025-05-29T23:31:30.313805Z", "shell.execute_reply": "2025-05-29T23:31:31.734779Z"}}, "outputs": [], "execution_count": null}, {"cell_type": "code", "source": "", "metadata": {"trusted": true}, "outputs": [], "execution_count": null}]}