Spaces:
Running
Running
File size: 3,051 Bytes
5e8f045 4a43fed 5e8f045 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
"""
μ€μ κ΄λ¦¬ λͺ¨λ
μ ν리μΌμ΄μ
μ λͺ¨λ μ€μ μ μ€μμμ κ΄λ¦¬ν©λλ€.
"""
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
@classmethod
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
|