ssboost commited on
Commit
bfbe54d
·
verified ·
1 Parent(s): 07d29ec

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +29 -43
app.py CHANGED
@@ -11,39 +11,27 @@ import random
11
  logging.basicConfig(level=logging.INFO)
12
  logger = logging.getLogger(__name__)
13
 
14
- # 환경 변수 로드 (dotenv는 이제 불필요하지만 호환성을 위해 유지)
15
- # load_dotenv() # 주석 처리됨
16
-
17
- # 환경변수로 설정 제어
18
- HIDE_API_KEYS = os.getenv("HIDE_API_KEYS", "false").lower() == "true"
19
-
20
- # API 키 목록 로드 함수
21
- def get_api_keys_list():
22
- """환경변수 또는 코드에서 API 키 리스트를 가져옵니다."""
23
- if not HIDE_API_KEYS:
24
- # 환경변수에서 API 키 리스트 로드
25
- api_keys_env = os.getenv("API_KEYS_LIST")
26
- if api_keys_env:
27
- try:
28
- # 쉼표로 구분된 키들을 파싱
29
- return [key.strip() for key in api_keys_env.split(',') if key.strip()]
30
- except Exception as e:
31
- print(f"환경변수 API_KEYS_LIST 파싱 오류: {e}")
32
-
33
- # 기본값 (코드에 직접 입력)
34
- return [
35
- "",
36
- "",
37
- "",
38
- "",
39
- "",
40
- "",
41
- "",
42
- ""
43
- ]
44
 
45
- # API 키 목록 - 환경변수에서 가져오거나 직접 설정
46
- API_KEYS_LIST = get_api_keys_list()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
 
48
  # API 키 관리를 위한 전역 변수
49
  api_key_manager = {
@@ -55,24 +43,22 @@ api_key_manager = {
55
 
56
  # API 키 로드 함수 (개선된 버전)
57
  def load_api_keys():
58
- """코드에서 직접 정의된 API 키를 로드합니다."""
59
- print(f"API_KEYS_LIST 내용: {API_KEYS_LIST}") # 디버깅용
 
60
 
61
  # 빈 키나 플레이스홀더 제거
62
- api_keys = []
63
- for key in API_KEYS_LIST:
64
- if key and key.strip() and len(key.strip()) > 20 and not key.startswith("YOUR_API_KEY"):
65
- api_keys.append(key.strip())
66
- print(f"유효한 키 발견: {key[:10]}...") # 디버깅용
67
 
68
  # 중복 제거
69
  api_keys = list(dict.fromkeys(api_keys))
70
 
71
- print(f"필터링 후 API 키 개수: {len(api_keys)}") # 디버깅용
72
-
73
  if not api_keys:
74
- logger.error("API 키가 설정되지 않았습니다. API_KEYS_LIST에 실제 API 키를 추가하세요.")
75
- raise ValueError("API 키가 설정되지 않았습니다. 코드 상단의 API_KEYS_LIST에 실제 API 키를 추가해주세요.")
76
 
77
  logger.info(f"총 {len(api_keys)}개의 API 키가 로드되었습니다.")
78
  return api_keys
 
11
  logging.basicConfig(level=logging.INFO)
12
  logger = logging.getLogger(__name__)
13
 
14
+ # 환경 변수 로드
15
+ load_dotenv()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
 
17
+ # 환경변수에서 API 키 설정 로드
18
+ def get_gemini_api_configs():
19
+ """환경변수에서 Gemini API 키 설정을 로드"""
20
+ api_configs_str = os.getenv('GEMINI_API_CONFIGS', '')
21
+
22
+ if not api_configs_str:
23
+ logger.error("GEMINI_API_CONFIGS 환경변수가 설정되지 않았습니다.")
24
+ return []
25
+
26
+ try:
27
+ # 환경변수 값을 exec로 실행하여 설정 로드
28
+ local_vars = {}
29
+ exec(api_configs_str, {}, local_vars)
30
+
31
+ return local_vars.get('API_KEYS_LIST', [])
32
+ except Exception as e:
33
+ logger.error(f"환경변수 파싱 오류: {e}")
34
+ return []
35
 
36
  # API 키 관리를 위한 전역 변수
37
  api_key_manager = {
 
43
 
44
  # API 키 로드 함수 (개선된 버전)
45
  def load_api_keys():
46
+ """환경변수에서 API 키를 로드합니다."""
47
+ # 환경변수에서 API 키 목록 가져오기
48
+ api_keys_from_env = get_gemini_api_configs()
49
 
50
  # 빈 키나 플레이스홀더 제거
51
+ api_keys = [
52
+ key.strip() for key in api_keys_from_env
53
+ if key and key.strip() and not key.startswith("YOUR_") and not key.startswith("your_")
54
+ ]
 
55
 
56
  # 중복 제거
57
  api_keys = list(dict.fromkeys(api_keys))
58
 
 
 
59
  if not api_keys:
60
+ logger.error("API 키가 설정되지 않았습니다. GEMINI_API_CONFIGS 환경변수에 실제 API 키를 추가하세요.")
61
+ raise ValueError("API 키가 설정되지 않았습니다. GEMINI_API_CONFIGS 환경변수에 실제 API 키를 추가해주세요.")
62
 
63
  logger.info(f"총 {len(api_keys)}개의 API 키가 로드되었습니다.")
64
  return api_keys