Spaces:
Sleeping
Sleeping
| """ | |
| AIMHSA Configuration Management | |
| Handles environment-specific configuration for hosting | |
| """ | |
| import os | |
| from dotenv import load_dotenv | |
| # Load environment variables | |
| load_dotenv() | |
| class Config: | |
| """Base configuration class""" | |
| # Server Configuration | |
| HOST = os.getenv('SERVER_HOST', '0.0.0.0') | |
| PORT = int(os.getenv('SERVER_PORT', '7860')) | |
| DEBUG = os.getenv('DEBUG', 'False').lower() == 'true' | |
| # API Configuration | |
| API_BASE_URL = os.getenv('API_BASE_URL', '') # Empty means relative URLs | |
| FRONTEND_URL = os.getenv('FRONTEND_URL', '') # Empty means same origin | |
| # Database Configuration | |
| DB_FILE = os.getenv('DB_FILE', 'storage/conversations.db') | |
| # Ollama Configuration | |
| OLLAMA_BASE_URL = os.getenv('OLLAMA_BASE_URL', 'http://localhost:11434/v1') | |
| OLLAMA_API_KEY = os.getenv('OLLAMA_API_KEY', 'ollama') | |
| # AI Models | |
| CHAT_MODEL = os.getenv('CHAT_MODEL', 'llama3.2:3b') | |
| EMBED_MODEL = os.getenv('EMBED_MODEL', 'nomic-embed-text') | |
| SENT_EMBED_MODEL = os.getenv('SENT_EMBED_MODEL', 'nomic-embed-text') | |
| # Email Configuration | |
| SMTP_SERVER = os.getenv('SMTP_SERVER', 'smtp.gmail.com') | |
| SMTP_PORT = int(os.getenv('SMTP_PORT', '587')) | |
| SMTP_USERNAME = os.getenv('SMTP_USERNAME', '') | |
| SMTP_PASSWORD = os.getenv('SMTP_PASSWORD', '') | |
| FROM_EMAIL = os.getenv('FROM_EMAIL', 'noreply@aimhsa.rw') | |
| # SMS Configuration | |
| HDEV_SMS_API_ID = os.getenv('HDEV_SMS_API_ID', '') | |
| HDEV_SMS_API_KEY = os.getenv('HDEV_SMS_API_KEY', '') | |
| # Storage Configuration | |
| STORAGE_DIR = os.getenv('STORAGE_DIR', 'storage') | |
| DATA_DIR = os.getenv('DATA_DIR', 'data') | |
| EMBED_FILE = os.path.join(STORAGE_DIR, 'embeddings.json') | |
| class DevelopmentConfig(Config): | |
| """Development environment configuration""" | |
| DEBUG = True | |
| HOST = '0.0.0.0' | |
| PORT = 7860 | |
| class ProductionConfig(Config): | |
| """Production environment configuration""" | |
| DEBUG = False | |
| HOST = '0.0.0.0' | |
| PORT = int(os.getenv('PORT', '8000')) # Common for hosting services | |
| class TestingConfig(Config): | |
| """Testing environment configuration""" | |
| DEBUG = True | |
| HOST = '127.0.0.1' | |
| PORT = 5058 | |
| DB_FILE = 'test_conversations.db' | |
| # Configuration mapping | |
| config_map = { | |
| 'development': DevelopmentConfig, | |
| 'production': ProductionConfig, | |
| 'testing': TestingConfig | |
| } | |
| def get_config(): | |
| """Get configuration based on environment""" | |
| env = os.getenv('FLASK_ENV', 'development') | |
| return config_map.get(env, DevelopmentConfig) | |
| # Export current config | |
| current_config = get_config() | |