Skip to content

Advanced Usage

Debugging Mode

WARNING: this should not be enabled in production

from foxcross.serving import run_model_serving



from foxcross.serving import compose_models

app = compose_models(debug=True)

Changing the serving module name

If you don't want to serve your models from, pass a different module name when running the serving.

directory structure

+-- data.json
from foxcross.serving import run_model_serving



from foxcross.serving import compose_models

app = compose_models(module_name="my_awesome_module")

Requiring HTTPS connections

To more securely serve your models, you can require all connections to your model be encrypted via HTTPS

from foxcross.serving import run_model_serving



from foxcross.serving import compose_models

app = compose_models(redirect_https=True)

Improving performance

To help improve performance, Foxcross supports using extra packages.


UJSON is supported to speed up JSON serialization and deserialization.

To install ujson with Foxcross, use:

pip install foxcross[ujson]


Modin is supported to speed up pandas operations.

To install modin with Foxcross, use:

pip install foxcross[modin]

Overriding the HTTP status code in custom exceptions

The custom exceptions, PredictionError, PreProcessingError, and PostProcessingError come with default HTTP status codes returned to the user. These default status codes can be overridden using the http_status_code class attribute

from foxcross.serving import ModelServing
from foxcross.exceptions import PredictionError

class AddOneModel(ModelServing):
    test_data_path = "data.json"

    def predict(self, data):
            return [x + 1 for x in data]
        except ValueError as exc:
            new_exc = PredictionError(f"Failed to do prediction: {exc}")
            new_exc.http_status_code = 500
            raise new_exc