Quick Start¶
Without Users¶
After installing the package, setup the models folder and redis broker/backend urls for background tasks using msdss-dotenv in a command line terminal:
msdss-dotenv init --key_path <KEY_PATH>
msdss-dotenv set MSDSS_MODELS_FOLDER ./models --key_path <KEY_PATH>
msdss-dotenv set MSDSS_MODELS_BROKER_URL redis://localhost:6379/0 --key_path <KEY_PATH>
msdss-dotenv set MSDSS_MODELS_BACKEND_URL redis://localhost:6379/0 --key_path <KEY_PATH>
Note
Set the <KEY_PATH> to a secure location (preferable outside of the project directory) as you will need this to unlock your created .env file
Next, set up database environment variables:
msdss-dotenv set MSDSS_DATABASE_DRIVER postgresql --key_path <KEY_PATH>
msdss-dotenv set MSDSS_DATABASE_USER msdss --key_path <KEY_PATH>
msdss-dotenv set MSDSS_DATABASE_PASSWORD msdss123 --key_path <KEY_PATH>
msdss-dotenv set MSDSS_DATABASE_HOST localhost --key_path <KEY_PATH>
msdss-dotenv set MSDSS_DATABASE_PORT 5432 --key_path <KEY_PATH>
msdss-dotenv set MSDSS_DATABASE_NAME msdss --key_path <KEY_PATH>
After setting up environment variables, create a python file called app.py and use the package via msdss_models_api.core.ModelsAPI:
from msdss_models_api import ModelsAPI
# Create app using env vars
app = ModelsAPI()
# Get the redis background worker to run using celery
worker = app.get_worker()
# Run the app with app.start()
# API is hosted at http://localhost:8000
# Try API at http://localhost:8000/docs
# app.start()
In one terminal, run the background worker for app.py using celery:
celery -A app.worker worker
In another terminal, run the Models API using uvicorn:
uvicorn app.api
With Users¶
After installing the package, setup the models folder and redis broker/backend urls for background tasks using msdss-dotenv in a command line terminal:
msdss-dotenv init --key_path <KEY_PATH>
msdss-dotenv set MSDSS_MODELS_FOLDER ./models --key_path <KEY_PATH>
msdss-dotenv set MSDSS_MODELS_BROKER_URL redis://localhost:6379/0 --key_path <KEY_PATH>
msdss-dotenv set MSDSS_MODELS_BACKEND_URL redis://localhost:6379/0 --key_path <KEY_PATH>
Note
Set the <KEY_PATH> to a secure location (preferable outside of the project directory) as you will need this to unlock your created .env file
Then, set up database environment variables:
msdss-dotenv set MSDSS_DATABASE_DRIVER postgresql --key_path <KEY_PATH>
msdss-dotenv set MSDSS_DATABASE_USER msdss --key_path <KEY_PATH>
msdss-dotenv set MSDSS_DATABASE_PASSWORD msdss123 --key_path <KEY_PATH>
msdss-dotenv set MSDSS_DATABASE_HOST localhost --key_path <KEY_PATH>
msdss-dotenv set MSDSS_DATABASE_PORT 5432 --key_path <KEY_PATH>
msdss-dotenv set MSDSS_DATABASE_NAME msdss --key_path <KEY_PATH>
Next, set up user environment variables:
msdss-dotenv set MSDSS_USERS_COOKIE_SECRET cookie-secret --key_path <KEY_PATH>
msdss-dotenv set MSDSS_USERS_JWT_SECRET jwt-secret --key_path <KEY_PATH>
msdss-dotenv set MSDSS_USERS_RESET_PASSWORD_TOKEN_SECRET reset-phrase --key_path <KEY_PATH>
msdss-dotenv set MSDSS_USERS_VERIFICATION_TOKEN_SECRET verification-phrase --key_path <KEY_PATH>
Note
The variables above (e.g. cookie-secret, jwt-secret, etc) should be a strong passphrase - you can generate strong phrases with:
openssl rand -hex 32
Finally, create a superuser with the msdss-users command line interface:
msdss-users register --superuser
After setting up environment variables, create a python file called app.py and use the package via msdss_models_api.core.ModelsAPI:
from msdss_models_api import ModelsAPI
from msdss_users_api import UsersAPI
# Create users app
users_app = UsersAPI()
# Create app using env vars
app = ModelsAPI()
# Add users app to models app
app.add_app(users_app)
# Get the redis background worker to run using celery
worker = app.get_worker()
# Run the app with app.start()
# API is hosted at http://localhost:8000
# Try API at http://localhost:8000/docs
# app.start()
In one terminal, run the background worker for app.py using celery:
celery -A app.worker worker
In another terminal, run the Models API using uvicorn:
uvicorn app.api