|
""" |
|
Cursor Rules Generator - Configuration Settings |
|
|
|
This module contains the configuration settings for the Cursor Rules Generator application. |
|
""" |
|
|
|
import os |
|
from dotenv import load_dotenv |
|
|
|
|
|
load_dotenv() |
|
|
|
class Settings: |
|
"""Application settings.""" |
|
|
|
|
|
APP_NAME = "Cursor Rules Generator" |
|
DEBUG = os.getenv("DEBUG", "False").lower() == "true" |
|
|
|
|
|
GEMINI_API_KEY = os.getenv("GEMINI_API_KEY", "") |
|
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY", "") |
|
OPENROUTER_API_KEY = os.getenv("OPENROUTER_API_KEY", "") |
|
|
|
|
|
DEFAULT_PROVIDER = os.getenv("DEFAULT_PROVIDER", "gemini") |
|
DEFAULT_RULE_TYPE = os.getenv("DEFAULT_RULE_TYPE", "Always") |
|
|
|
|
|
STORAGE_TYPE = os.getenv("STORAGE_TYPE", "file") |
|
STORAGE_PATH = os.getenv("STORAGE_PATH", "./data") |
|
|
|
|
|
HF_SPACE_ID = os.getenv("HF_SPACE_ID", "") |
|
HF_TOKEN = os.getenv("HF_TOKEN", "") |
|
|
|
|
|
API_HOST = os.getenv("API_HOST", "0.0.0.0") |
|
API_PORT = int(os.getenv("API_PORT", "5000")) |
|
|
|
|
|
CORS_ORIGINS = os.getenv("CORS_ORIGINS", "*").split(",") |
|
|
|
|
|
RATE_LIMIT_ENABLED = os.getenv("RATE_LIMIT_ENABLED", "True").lower() == "true" |
|
RATE_LIMIT = int(os.getenv("RATE_LIMIT", "100")) |
|
|
|
|
|
CACHE_ENABLED = os.getenv("CACHE_ENABLED", "True").lower() == "true" |
|
CACHE_EXPIRATION = int(os.getenv("CACHE_EXPIRATION", "3600")) |
|
|
|
|
|
GEMINI_API_URL = "https://generativelanguage.googleapis.com/v1beta" |
|
OPENAI_API_URL = "https://api.openai.com/v1" |
|
OPENROUTER_API_URL = "https://openrouter.ai/api/v1" |
|
|
|
|
|
DEFAULT_GEMINI_MODEL = os.getenv("DEFAULT_GEMINI_MODEL", "gemini-2.0-flash") |
|
DEFAULT_OPENAI_MODEL = os.getenv("DEFAULT_OPENAI_MODEL", "gpt-4o") |
|
DEFAULT_OPENROUTER_MODEL = os.getenv("DEFAULT_OPENROUTER_MODEL", "openai/gpt-4o") |
|
|
|
|
|
MAX_RULE_LENGTH = int(os.getenv("MAX_RULE_LENGTH", "10000")) |
|
DEFAULT_TEMPERATURE = float(os.getenv("DEFAULT_TEMPERATURE", "0.7")) |
|
|
|
@classmethod |
|
def get_api_key(cls, provider): |
|
"""Get API key for the specified provider.""" |
|
if provider.lower() == "gemini": |
|
return cls.GEMINI_API_KEY |
|
elif provider.lower() == "openai": |
|
return cls.OPENAI_API_KEY |
|
elif provider.lower() == "openrouter": |
|
return cls.OPENROUTER_API_KEY |
|
else: |
|
raise ValueError(f"Unsupported provider: {provider}") |
|
|
|
@classmethod |
|
def get_api_url(cls, provider): |
|
"""Get API URL for the specified provider.""" |
|
if provider.lower() == "gemini": |
|
return cls.GEMINI_API_URL |
|
elif provider.lower() == "openai": |
|
return cls.OPENAI_API_URL |
|
elif provider.lower() == "openrouter": |
|
return cls.OPENROUTER_API_URL |
|
else: |
|
raise ValueError(f"Unsupported provider: {provider}") |
|
|
|
@classmethod |
|
def get_default_model(cls, provider): |
|
"""Get default model for the specified provider.""" |
|
if provider.lower() == "gemini": |
|
return cls.DEFAULT_GEMINI_MODEL |
|
elif provider.lower() == "openai": |
|
return cls.DEFAULT_OPENAI_MODEL |
|
elif provider.lower() == "openrouter": |
|
return cls.DEFAULT_OPENROUTER_MODEL |
|
else: |
|
raise ValueError(f"Unsupported provider: {provider}") |
|
|