Spaces:
Running
Running
| """ | |
| μ€μ κ΄λ¦¬ λͺ¨λ | |
| μ ν리μΌμ΄μ μ λͺ¨λ μ€μ μ μ€μμμ κ΄λ¦¬ν©λλ€. | |
| """ | |
| import os | |
| from dotenv import load_dotenv | |
| # .env νμΌ λ‘λ | |
| load_dotenv() | |
| class Config: | |
| """μ ν리μΌμ΄μ μ€μ ν΄λμ€""" | |
| # API μ€μ | |
| # λ©ν° ν€ μ§μ: UPSTAGE_API_KEYS(μ½€λ§ κ΅¬λΆ) μ°μ , μμΌλ©΄ λ¨μΌ ν€ μ¬μ© | |
| _UPSTAGE_API_KEYS_RAW = os.getenv('UPSTAGE_API_KEYS') | |
| if _UPSTAGE_API_KEYS_RAW: | |
| _parsed_keys = [k.strip() for k in _UPSTAGE_API_KEYS_RAW.split(',') if k.strip()] | |
| else: | |
| _single = os.getenv('UPSTAGE_API_KEY') | |
| _parsed_keys = [ | |
| _single.strip() | |
| ] if (_single and _single.strip()) else [] | |
| # κ³΅κ° μμ±: νΈνμ±μ μν΄ μ²« λ²μ§Έ ν€λ₯Ό κΈ°μ‘΄ μ΄λ¦μΌλ‘ λ ΈμΆ | |
| UPSTAGE_API_KEYS = _parsed_keys | |
| UPSTAGE_API_KEY = _parsed_keys[0] if _parsed_keys else None | |
| HF_TOKEN = os.getenv('HF_TOKEN') | |
| # λ°μ΄ν° μ€μ | |
| FRESHQA_DATA_REPO_ID = os.getenv('FRESHQA_DATA_REPO_ID') | |
| FRESHQA_DATA_FILENAME = os.getenv('FRESHQA_DATA_FILENAME', 'ko-freshqa_2025_total.csv') | |
| # ν둬ννΈ μ€μ | |
| # λ©ν°λΌμΈ κ° μ§μ: python-dotenvκ° λ‘λν μλ¬Έμ κ·Έλλ‘ μ¬μ© | |
| FRESHQA_PROMPT_RELAXED = os.getenv('FRESHQA_PROMPT_RELAXED') | |
| FRESHQA_PROMPT_STRICT = os.getenv('FRESHQA_PROMPT_STRICT') | |
| try: | |
| from freshqa.freshqa_prompt import FRESHQA_PROMPT_RELAXED, FRESHQA_PROMPT_STRICT | |
| if not FRESHQA_PROMPT_RELAXED: | |
| FRESHQA_PROMPT_RELAXED = FRESHQA_PROMPT_RELAXED | |
| if not FRESHQA_PROMPT_STRICT: | |
| FRESHQA_PROMPT_STRICT = FRESHQA_PROMPT_STRICT | |
| except Exception as e: | |
| pass | |
| # μ μΆ μ ν μ€μ | |
| ENABLE_SUBMISSION_LIMIT = os.getenv('ENABLE_SUBMISSION_LIMIT', 'true').lower() == 'true' | |
| SUBMISSION_TRACKER_REPO_ID = os.getenv('SUBMISSION_TRACKER_REPO_ID') | |
| # 리λ보λ HF μ λ‘λ μ€μ | |
| UPLOAD_LEADERBOARD_TO_HF = os.getenv('UPLOAD_LEADERBOARD_TO_HF', 'true').lower() == 'true' | |
| # νκ²½ μ€μ | |
| IS_HUGGINGFACE_SPACES = os.getenv("SPACE_ID") is not None | |
| def validate_required_configs(cls): | |
| """νμ μ€μ λ€μ΄ λͺ¨λ μλμ§ νμΈ""" | |
| missing_configs = [] | |
| # λ©ν°/λ¨μΌ ν€ λͺ¨λ νμ©: μ΅μ 1κ° ν€κ° μ‘΄μ¬ν΄μΌ ν¨ | |
| if not cls.UPSTAGE_API_KEYS: | |
| # λ©μμ§λ λ λ³μ λͺ¨λ μλ΄ | |
| missing_configs.append('UPSTAGE_API_KEY or UPSTAGE_API_KEYS') | |
| if not cls.HF_TOKEN: | |
| missing_configs.append('HF_TOKEN') | |
| if not cls.FRESHQA_DATA_REPO_ID: | |
| missing_configs.append('FRESHQA_DATA_REPO_ID') | |
| if not cls.FRESHQA_PROMPT_RELAXED: | |
| missing_configs.append('FRESHQA_PROMPT_RELAXED') | |
| if not cls.FRESHQA_PROMPT_STRICT: | |
| missing_configs.append('FRESHQA_PROMPT_STRICT') | |
| if missing_configs: | |
| raise ValueError(f"νμ μ€μ μ΄ λλ½λμμ΅λλ€: {', '.join(missing_configs)}") | |
| return True | |