deeme commited on
Commit
db33923
·
verified ·
1 Parent(s): fc6e2ac

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +34 -10
app.py CHANGED
@@ -51,18 +51,42 @@ VOICE_OPTIONS = [
51
  {"id": "shimmer", "name": "shimmer"},
52
  ]
53
 
54
- # 添加 API Keys 轮询功能
55
- def get_next_gemini_key(api_keys):
56
- keys = [k.strip() for k in api_keys.split(',') if k.strip()]
57
- if not hasattr(get_next_gemini_key, 'current_index'):
58
- get_next_gemini_key.current_index = 0
59
- key = keys[get_next_gemini_key.current_index]
60
- get_next_gemini_key.current_index = (get_next_gemini_key.current_index + 1) % len(keys)
61
- return key
 
 
 
 
62
 
63
  def get_api_key(key_name, ui_value):
64
- if key_name == "GEMINI_API_KEY" and ui_value and ',' in ui_value:
65
- return get_next_gemini_key(ui_value)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
  return ui_value if ui_value else os.getenv(key_name)
67
 
68
  def process_inputs(
 
51
  {"id": "shimmer", "name": "shimmer"},
52
  ]
53
 
54
+ def get_next_gemini_key(api_keys_str):
55
+ """从多个key中轮询获取下一个key"""
56
+ if not hasattr(get_next_gemini_key, '_current_index'):
57
+ get_next_gemini_key._current_index = 0
58
+
59
+ keys = [k.strip() for k in api_keys_str.split(',') if k.strip()]
60
+ if not keys:
61
+ return None
62
+
63
+ key = keys[get_next_gemini_key._current_index]
64
+ get_next_gemini_key._current_index = (get_next_gemini_key._current_index + 1) % len(keys)
65
+ return key.strip()
66
 
67
  def get_api_key(key_name, ui_value):
68
+ """获取API key的新逻辑"""
69
+ if key_name == "GEMINI_API_KEY":
70
+ # 1. 优先使用UI传入的key(s)
71
+ if ui_value:
72
+ if ',' in ui_value:
73
+ # 多个key的情况
74
+ selected_key = get_next_gemini_key(ui_value)
75
+ else:
76
+ # 单个key的情况
77
+ selected_key = ui_value.strip()
78
+ # 2. 其次使用GEMINI_API_KEYS环境变量
79
+ elif os.getenv("GEMINI_API_KEYS"):
80
+ selected_key = get_next_gemini_key(os.getenv("GEMINI_API_KEYS"))
81
+ # 3. 最后使用GEMINI_API_KEY环境变量
82
+ else:
83
+ selected_key = os.getenv("GEMINI_API_KEY")
84
+
85
+ # 设置当前使用的key到GEMINI_API_KEY环境变量
86
+ if selected_key:
87
+ os.environ["GEMINI_API_KEY"] = selected_key
88
+ return selected_key
89
+
90
  return ui_value if ui_value else os.getenv(key_name)
91
 
92
  def process_inputs(