Download backend/config/database.py from jessejohnson/plg4-dev-server: direct link, hf CLI and curl.
- Browser
- Download file 2.92 kB
-
https://huggingface.co/spaces/jessejohnson/plg4-dev-server/resolve/main/backend/config/database.py
- Command line
-
hf download hf://spaces/jessejohnson/plg4-dev-server/backend/config/database.py
-
curl -L -o database.py https://huggingface.co/spaces/jessejohnson/plg4-dev-server/resolve/main/backend/config/database.py
2.92 kB
| # Database and vector store configuration | |
| import os | |
| from dotenv import load_dotenv | |
| # Load environment variables from .env file | |
| load_dotenv() | |
| class DatabaseSettings: | |
| """Simple database settings class that reads environment variables directly""" | |
| def __init__(self): | |
| # =========================================== | |
| # Vector Store Configuration | |
| # =========================================== | |
| self.VECTOR_STORE_PROVIDER = os.getenv("VECTOR_STORE_PROVIDER", "chromadb") | |
| # ChromaDB Configuration | |
| self.DB_PATH = os.getenv("DB_PATH", "./data/chromadb") | |
| self.DB_COLLECTION_NAME = os.getenv("DB_COLLECTION_NAME", "recipes") | |
| self.DB_PERSIST_DIRECTORY = os.getenv("DB_PERSIST_DIRECTORY", "./data/chromadb_persist") | |
| self.DB_REFRESH_ON_START = os.getenv("DB_REFRESH_ON_START", "false").lower() == "true" | |
| # MongoDB Atlas Configuration | |
| self.MONGODB_URI = os.getenv("MONGODB_URI") | |
| self.MONGODB_DATABASE = os.getenv("MONGODB_DATABASE", "recipe_bot") | |
| self.MONGODB_COLLECTION = os.getenv("MONGODB_COLLECTION", "recipes") | |
| self.MONGODB_INDEX_NAME = os.getenv("MONGODB_INDEX_NAME", "vector_index") | |
| self.MONGODB_VECTOR_FIELD = os.getenv("MONGODB_VECTOR_FIELD", "embedding") | |
| self.MONGODB_TEXT_FIELD = os.getenv("MONGODB_TEXT_FIELD", "text") | |
| self.MONGODB_SIMILARITY_METRIC = os.getenv("MONGODB_SIMILARITY_METRIC", "cosine") | |
| self.MONGODB_NUM_CANDIDATES = int(os.getenv("MONGODB_NUM_CANDIDATES", "50")) | |
| def get_vector_store_config(self): | |
| """Get vector store configuration based on selected provider""" | |
| if self.VECTOR_STORE_PROVIDER == "chromadb": | |
| return { | |
| "provider": "chromadb", | |
| "path": self.DB_PATH, | |
| "collection_name": self.DB_COLLECTION_NAME, | |
| "persist_directory": self.DB_PERSIST_DIRECTORY, | |
| "refresh_on_start": self.DB_REFRESH_ON_START | |
| } | |
| elif self.VECTOR_STORE_PROVIDER == "mongodb": | |
| if not self.MONGODB_URI: | |
| raise ValueError("MongoDB URI is required when using MongoDB Atlas as vector store") | |
| return { | |
| "provider": "mongodb", | |
| "uri": self.MONGODB_URI, | |
| "database": self.MONGODB_DATABASE, | |
| "collection_name": self.MONGODB_COLLECTION, | |
| "index_name": self.MONGODB_INDEX_NAME, | |
| "vector_field": self.MONGODB_VECTOR_FIELD, | |
| "text_field": self.MONGODB_TEXT_FIELD, | |
| "similarity_metric": self.MONGODB_SIMILARITY_METRIC, | |
| "num_candidates": self.MONGODB_NUM_CANDIDATES | |
| } | |
| else: | |
| raise ValueError(f"Unsupported vector store provider: {self.VECTOR_STORE_PROVIDER}") | |
| # Create global database settings instance | |
| db_settings = DatabaseSettings() | |