settings.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. LOGS_FOLDER = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'logs')
  9. if not os.path.exists(LOGS_FOLDER):
  10. os.makedirs(LOGS_FOLDER)
  11. LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO").upper()
  12. # Configure logging
  13. logging.basicConfig(
  14. level=getattr(logging, LOG_LEVEL),
  15. format='%(asctime)s - %(name)s:%(lineno)d - %(levelname)s - %(message)s',
  16. handlers=[
  17. logging.FileHandler(os.path.join(LOGS_FOLDER, 'app.log')),
  18. logging.StreamHandler()
  19. ]
  20. )
  21. # Configuration
  22. FEEDBACK_PATH = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'logs', 'feedback.json')
  23. OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
  24. PORT = int(os.getenv("PORT", 6001))
  25. PIN_KEY = os.getenv("PIN_KEY", "-1")
  26. if PIN_KEY == "-1":
  27. logging.warning("Using default PIN_KEY. Please set a strong PIN_KEY in your .env file for production.")
  28. # SECRET_KEY is crucial for signing session cookies.
  29. # Fallback to a default if not set, but warn that this is insecure for production.
  30. SECRET_KEY = os.getenv("SECRET_KEY", "your_very_very_secret_key_for_signing_cookies_python_v2")
  31. # Data paths
  32. BG_DATA_PATH = os.path.join(os.path.dirname(os.path.dirname(__file__)),'data', 'llm_data.json')
  33. PRODUCT_DATA_PATH = os.path.join(os.path.dirname(os.path.dirname(__file__)),'data', 'products.json')
  34. DB_PATH = os.path.join(os.path.dirname(os.path.dirname(__file__)),'data', 'data.db')
  35. def validate_config():
  36. logger = logging.getLogger(__name__)
  37. """Validate configuration and show warnings"""
  38. if SECRET_KEY == "your_very_very_secret_key_for_signing_cookies_python_v2":
  39. logger.warning("Using default SECRET_KEY. Please set a strong SECRET_KEY in your .env file for production.")
  40. if not OPENAI_API_KEY:
  41. logger.critical("CRITICAL ERROR: OPENAI_API_KEY environment variable not set. The application will not work correctly.")
  42. return False
  43. return True