Ensure Spacy NLP model is downloaded by Heroku in production

This commit is contained in:
Xevion
2022-03-30 02:10:20 -05:00
parent b0aa5addbf
commit 3ab3fd5476

9
app.py
View File

@@ -11,6 +11,7 @@ from flask_login import LoginManager, current_user
from flask_sqlalchemy import SQLAlchemy from flask_sqlalchemy import SQLAlchemy
from werkzeug.security import generate_password_hash from werkzeug.security import generate_password_hash
from database import db from database import db
import spacy
csrf = CSRFProtect() csrf = CSRFProtect()
@@ -26,6 +27,14 @@ def create_app():
# Heroku deployment # Heroku deployment
if app.config['ENV'] == 'production': if app.config['ENV'] == 'production':
# Deal with spacy model downloading
spacy_model = 'en_core_web_sm'
try:
spacy.load(spacy_model)
except: # If not present, we download
spacy.cli.download(spacy_model)
spacy.load(spacy_model)
app.config['SECRET_KEY'] = os.getenv('SECRET_KEY') app.config['SECRET_KEY'] = os.getenv('SECRET_KEY')
app.config['SQLALCHEMY_DATABASE_URI'] = os.getenv('DATABASE_URL', '').replace('postgres://', 'postgresql://', 1) app.config['SQLALCHEMY_DATABASE_URI'] = os.getenv('DATABASE_URL', '').replace('postgres://', 'postgresql://', 1)