yangtb24 commited on
Commit
3453169
·
verified ·
1 Parent(s): 6c7bdc0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +29 -24
app.py CHANGED
@@ -19,7 +19,7 @@ app = Flask(__name__)
19
  all_models = []
20
  free_models = []
21
 
22
- # 全局的 key 列表
23
  invalid_keys_global = []
24
  free_keys_global = []
25
  unverified_keys_global = []
@@ -70,7 +70,7 @@ def test_model_availability(api_key, model_name):
70
  # 检查是否是429错误
71
  if response.status_code == 429:
72
  return True
73
-
74
  response.json() # 尝试解析 JSON 响应
75
  return True
76
  except requests.exceptions.RequestException as e:
@@ -114,7 +114,7 @@ def load_keys():
114
  logging.info(f"免费 KEY:{free_keys}")
115
  logging.info(f"未实名 KEY:{unverified_keys}")
116
  logging.info(f"有效 KEY:{valid_keys}")
117
-
118
  # 更新全局的 key 列表
119
  global invalid_keys_global, free_keys_global, unverified_keys_global, valid_keys_global
120
  invalid_keys_global = invalid_keys
@@ -155,7 +155,7 @@ def refresh_models():
155
  刷新模型列表和免费模型列表。
156
  """
157
  global all_models, free_models
158
-
159
  # 使用 valid_keys_global 中的第一个 key 获取完整模型列表
160
  if valid_keys_global:
161
  all_models = get_all_models(valid_keys_global[0])
@@ -226,17 +226,6 @@ def check_authorization(request):
226
 
227
  return True
228
 
229
- def get_total_balance():
230
- """
231
- 获取所有大于等于0的key的额度的和。
232
- """
233
- total_balance = 0
234
- for key in free_keys_global + unverified_keys_global + valid_keys_global:
235
- credit_summary = get_credit_summary(key)
236
- if credit_summary is not None:
237
- total_balance += credit_summary.get("total_balance", 0)
238
- return total_balance
239
-
240
  # 创建一个后台调度器
241
  scheduler = BackgroundScheduler()
242
 
@@ -310,7 +299,7 @@ def handsome_chat_completions():
310
  stream=data.get("stream", False),
311
  timeout=60
312
  )
313
-
314
  # 检查是否是429错误
315
  if response.status_code == 429:
316
  return jsonify(response.json()), 429
@@ -324,25 +313,41 @@ def handsome_chat_completions():
324
  return jsonify({"error": str(e)}), 500
325
 
326
  @app.route('/handsome/v1/models', methods=['GET'])
327
- def handsome_models():
328
  """
329
- 处理 /handsome/v1/models 路由的请求,添加鉴权,返回所有模型列表。
330
  """
331
  if not check_authorization(request):
332
  return jsonify({"error": "Unauthorized"}), 401
333
 
334
- return jsonify({"data": [{"id": model} for model in all_models]})
 
 
 
 
335
 
336
- @app.route('/handsome/v1/dashboard/billing/subscription', methods=['GET'])
337
- def handsome_balance():
338
  """
339
- 处理 /handsome/v1/balance 路由的请求,添加鉴权,返回所有可用KEY的额度总和。
340
  """
341
  if not check_authorization(request):
342
  return jsonify({"error": "Unauthorized"}), 401
343
 
344
- total_balance = get_total_balance()
345
- return jsonify({"total_balance": total_balance})
 
 
 
 
 
 
 
 
 
 
 
 
346
 
347
  if __name__ == '__main__':
348
  # 打印所有环境变量,方便调试
 
19
  all_models = []
20
  free_models = []
21
 
22
+ # 全局变量,用于存储各种类型的 KEY 列表
23
  invalid_keys_global = []
24
  free_keys_global = []
25
  unverified_keys_global = []
 
70
  # 检查是否是429错误
71
  if response.status_code == 429:
72
  return True
73
+
74
  response.json() # 尝试解析 JSON 响应
75
  return True
76
  except requests.exceptions.RequestException as e:
 
114
  logging.info(f"免费 KEY:{free_keys}")
115
  logging.info(f"未实名 KEY:{unverified_keys}")
116
  logging.info(f"有效 KEY:{valid_keys}")
117
+
118
  # 更新全局的 key 列表
119
  global invalid_keys_global, free_keys_global, unverified_keys_global, valid_keys_global
120
  invalid_keys_global = invalid_keys
 
155
  刷新模型列表和免费模型列表。
156
  """
157
  global all_models, free_models
158
+
159
  # 使用 valid_keys_global 中的第一个 key 获取完整模型列表
160
  if valid_keys_global:
161
  all_models = get_all_models(valid_keys_global[0])
 
226
 
227
  return True
228
 
 
 
 
 
 
 
 
 
 
 
 
229
  # 创建一个后台调度器
230
  scheduler = BackgroundScheduler()
231
 
 
299
  stream=data.get("stream", False),
300
  timeout=60
301
  )
302
+
303
  # 检查是否是429错误
304
  if response.status_code == 429:
305
  return jsonify(response.json()), 429
 
313
  return jsonify({"error": str(e)}), 500
314
 
315
  @app.route('/handsome/v1/models', methods=['GET'])
316
+ def list_models():
317
  """
318
+ 处理 /handsome/v1/models 路由的请求,返回模型列表。
319
  """
320
  if not check_authorization(request):
321
  return jsonify({"error": "Unauthorized"}), 401
322
 
323
+ # 返回模型列表和免费模型列表
324
+ return jsonify({
325
+ "data": [{"id": model, "object": "model"} for model in all_models],
326
+ "free_models": free_models
327
+ })
328
 
329
+ @app.route('/handsome/v1/dashboard/billing', methods=['GET'])
330
+ def billing_info():
331
  """
332
+ 处理 /handsome/v1/dashboard/billing 路由的请求,返回所有余额大于0的key的总和。
333
  """
334
  if not check_authorization(request):
335
  return jsonify({"error": "Unauthorized"}), 401
336
 
337
+ total_balance = 0
338
+ # 遍历 valid_keys_global 和 unverified_keys_global 获取总余额
339
+ for key in valid_keys_global + unverified_keys_global:
340
+ credit_summary = get_credit_summary(key)
341
+ if credit_summary and credit_summary.get("total_balance", 0) > 0:
342
+ total_balance += credit_summary["total_balance"]
343
+
344
+ return jsonify({
345
+ "total_granted": total_balance, # 使用 total_granted 字段
346
+ "total_usage": 0, # 暂时设置为0,因为没有使用量数据
347
+ "total_available": total_balance,
348
+ "has_payment_method": False,
349
+ "object": "billing_summary"
350
+ })
351
 
352
  if __name__ == '__main__':
353
  # 打印所有环境变量,方便调试