Spaces:
Sleeping
Sleeping
import os | |
import json | |
from pathlib import Path | |
class Config: | |
_instance = None | |
def __new__(cls): | |
if cls._instance is None: | |
cls._instance = super().__new__(cls) | |
cls._instance._load_config() | |
return cls._instance | |
def _load_config(self): | |
self.config = { | |
"API_KEYS": { | |
"OPENAI": os.getenv("OPENAI_API_KEY", ""), | |
"ANTHROPIC": os.getenv("ANTHROPIC_API_KEY", ""), | |
"BING": os.getenv("BING_API_KEY", ""), | |
"GOOGLE_SEARCH": os.getenv("GOOGLE_API_KEY", ""), | |
"GOOGLE_SEARCH_ENGINE_ID": os.getenv("GOOGLE_SEARCH_ENGINE_ID", ""), | |
"PERPLEXITY": os.getenv("PERPLEXITY_API_KEY", ""), | |
}, | |
"API_ENDPOINTS": { | |
"BING": "https://api.bing.microsoft.com/v7.0/search", | |
"GOOGLE": "https://www.googleapis.com/customsearch/v1", | |
"PERPLEXITY": "https://api.perplexity.ai", | |
} | |
} | |
# Create necessary directories | |
base_dir = Path("/code") | |
for dir_name in ["db", "logs", "projects", "screenshots", "pdfs"]: | |
(base_dir / dir_name).mkdir(exist_ok=True) | |
def get_config(self): | |
return self.config | |
def get_bing_api_key(self): | |
return self.config["API_KEYS"]["BING"] | |
def get_google_search_api_key(self): | |
return self.config["API_KEYS"]["GOOGLE_SEARCH"] | |
def get_google_search_engine_id(self): | |
return self.config["API_KEYS"]["GOOGLE_SEARCH_ENGINE_ID"] | |
def get_perplexity_api_key(self): | |
return self.config["API_KEYS"]["PERPLEXITY"] |