settings.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import os
  2. from dotenv import load_dotenv
  3. import logging
  4. from httpx import get
  5. # Load environment variables from .env file
  6. load_dotenv()
  7. APPNAME = "Pedidos Express"
  8. MAIL = os.getenv("MAIL","")
  9. MAIL_PASSWORD = os.getenv("MAIL_PASSWORD","")
  10. LOGS_FOLDER = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'logs')
  11. if not os.path.exists(LOGS_FOLDER):
  12. os.makedirs(LOGS_FOLDER)
  13. LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO").upper()
  14. # Configure logging
  15. logging.basicConfig(
  16. level=getattr(logging, LOG_LEVEL),
  17. format='%(asctime)s - %(name)s:%(lineno)d - %(levelname)s - %(message)s',
  18. handlers=[
  19. logging.FileHandler(os.path.join(LOGS_FOLDER, 'app.log')),
  20. logging.StreamHandler()
  21. ]
  22. )
  23. # Configuration
  24. APP_NAME = os.getenv("APP_NAME", "Pedidos Express")
  25. FEEDBACK_PATH = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'logs', 'feedback.json')
  26. OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
  27. IMAGE_PATH = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'public', 'images')
  28. PORT = int(os.getenv("PORT", 6001))
  29. CURRENT_URL = os.getenv("CURRENT_URL", "http://localhost:6001")
  30. PIN_KEY = os.getenv("PIN_KEY", "-1")
  31. DEVELOPMENT = True if os.getenv("NODE_ENV", "development").lower() == "development" else False
  32. if PIN_KEY == "-1":
  33. logging.warning("Using default PIN_KEY. Please set a strong PIN_KEY in your .env file for production.")
  34. # SECRET_KEY is crucial for signing session cookies.
  35. # Fallback to a default if not set, but warn that this is insecure for production.
  36. SECRET_KEY = os.getenv("SECRET_KEY", "your_very_very_secret_key_for_signing_cookies_python_v2")
  37. # Data paths
  38. BG_DATA_PATH = os.path.join(os.path.dirname(os.path.dirname(__file__)),'data', 'llm_data.json')
  39. PRODUCT_DATA_PATH = os.path.join(os.path.dirname(os.path.dirname(__file__)),'data', 'products.json')
  40. DB_PATH = os.path.join(os.path.dirname(os.path.dirname(__file__)),'data', 'data.db')
  41. def validate_config():
  42. logger = logging.getLogger(__name__)
  43. """Validate configuration and show warnings"""
  44. if SECRET_KEY == "your_very_very_secret_key_for_signing_cookies_python_v2":
  45. logger.warning("Using default SECRET_KEY. Please set a strong SECRET_KEY in your .env file for production.")
  46. if not OPENAI_API_KEY:
  47. logger.critical("CRITICAL ERROR: OPENAI_API_KEY environment variable not set. The application will not work correctly.")
  48. return False
  49. return True
  50. #postgresql connection settings
  51. POSTGRESQL_DB_CONFIG = {
  52. 'dbname': os.getenv('POSTGRES_DB', 'pedidos_express'),
  53. 'user': os.getenv('POSTGRES_USER', 'superti'),
  54. 'password': os.getenv('POSTGRES_PASSWORD', 'BTD2DALN55N'),
  55. 'host': os.getenv('POSTGRES_HOST', 'localhost'),
  56. 'port': os.getenv('POSTGRES_PORT', '5432')
  57. }