File size: 1,115 Bytes
80b6680
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
"""
app/__init__.py
Flask application factory.
"""

from flask import Flask

import config
from db import init_db
from pipelines.ml.run_claim_model  import load_claim_model
from pipelines.rag.build_vector_db import load_vector_db
from pipelines.rag.rag_explainer   import load_groq_client


def create_app() -> Flask:
    app = Flask(
        __name__,
        template_folder="templates",
        static_folder=str(config.FRONTEND_DIR),
        static_url_path="",
    )

    app.secret_key                   = config.SECRET_KEY
    app.config["MAX_CONTENT_LENGTH"] = 32 * 1024 * 1024
    app.config["UPLOAD_FOLDER"]      = str(config.DATA_DIR)

    # Initialise DB schema (creates tables if they don't exist)
    init_db()

    # Load heavyweight models once at startup
    load_claim_model(config.MODEL_PATH)
    load_vector_db(config.CHROMA_DB_PATH)
    load_groq_client()

    # Register blueprints
    from app.routes.frontend import frontend_bp
    from app.routes.pipeline import pipeline_bp

    app.register_blueprint(pipeline_bp, url_prefix="/api")
    app.register_blueprint(frontend_bp)

    return app