Coverage for app/__init__.py: 93%
28 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-20 21:23 +0000
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-20 21:23 +0000
1from flask import Flask
2from flask_cors import CORS
3from config import Config
4from flask_sqlalchemy import SQLAlchemy
5from flask_migrate import Migrate
6from langchain_postgres.vectorstores import PGVector
7from langchain_core.embeddings import DeterministicFakeEmbedding
8from langchain_ollama import OllamaEmbeddings
10from flask_login import LoginManager
12# load_dotenv()
13# print(os.getenv("SESSION_SECRET_KEY"))
15# the two functions we call when initalizing app db and migrations
16db = SQLAlchemy()
17migrate = Migrate()
18login_manager = LoginManager()
21def create_app(config_class=Config):
22 """
23 Author: Troy Witmer
24 Date: 02/06/2025
25 Description: function that sets up all app dependencies, and blueprints, called when
26 initializing the app
27 param:config_class : configuration variables for the app
28 """
30 app = Flask(__name__)
31 CORS(app, resources={r"/*": {"origins": "http://localhost:5173"}})
32 app.config.from_object(config_class)
34 # app.secret_key = os.getenv("SESSION_SECRET_KEY")
35 # app.config['SESSION_PERMANENT'] = True
37 # initializing the database for the app
38 db.init_app(app)
39 # initalizing the database migrations for the app
40 migrate.init_app(app, db)
42 login_manager.init_app(app)
44 """
45 app.vector_db = PGVector(
46 embeddings=DeterministicFakeEmbedding(size=4096),
47 collection_name="vectorized_docs",
48 connection=app.config["SQLALCHEMY_DATABASE_URI"]
49 )
50 """
52 app.vector_db = PGVector(
53 embeddings=OllamaEmbeddings(
54 model="mxbai-embed-large",
55 base_url="http://ollama:11434",
56 ),
57 collection_name="vectorized_docs",
58 connection=app.config["SQLALCHEMY_DATABASE_URI"],
59 )
61 from app.main import bp as main_bp
63 app.register_blueprint(main_bp)
65 return app
68@login_manager.user_loader
69def load_user(user_id):
70 from app.models import User
72 return User.query.get(int(user_id))