Spaces:
Paused
Paused
Upload 4 files
Browse files
app.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
| 1 |
from flask import Flask, request, jsonify, Response, stream_with_context, render_template_string
|
| 2 |
from google.generativeai.types import generation_types
|
| 3 |
-
from google.api_core.exceptions import InvalidArgument, ResourceExhausted,
|
| 4 |
import google.generativeai as genai
|
| 5 |
import json
|
| 6 |
import os
|
|
@@ -203,6 +203,12 @@ def handle_api_error(error, attempt):
|
|
| 203 |
switch_api_key()
|
| 204 |
time.sleep(delay)
|
| 205 |
return 0, None
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 206 |
|
| 207 |
elif isinstance(error, generation_types.StopCandidateException):
|
| 208 |
logger.warning(f"AI输出内容被Gemini官方阻挡,代理没有得到有效回复")
|
|
@@ -210,7 +216,7 @@ def handle_api_error(error, attempt):
|
|
| 210 |
return 0, None
|
| 211 |
|
| 212 |
else:
|
| 213 |
-
logger.error(f"
|
| 214 |
return 2, None
|
| 215 |
|
| 216 |
@app.route('/hf/v1/chat/completions', methods=['POST'])
|
|
|
|
| 1 |
from flask import Flask, request, jsonify, Response, stream_with_context, render_template_string
|
| 2 |
from google.generativeai.types import generation_types
|
| 3 |
+
from google.api_core.exceptions import InvalidArgument, ResourceExhausted, Aborted, InternalServerError, ServiceUnavailable, PermissionDenied
|
| 4 |
import google.generativeai as genai
|
| 5 |
import json
|
| 6 |
import os
|
|
|
|
| 203 |
switch_api_key()
|
| 204 |
time.sleep(delay)
|
| 205 |
return 0, None
|
| 206 |
+
|
| 207 |
+
elif isinstance(error, PermissionDenied):
|
| 208 |
+
logger.error(f"{current_api_key[:11]} → 403 权限被拒绝,API KEY 已被禁用")
|
| 209 |
+
key_manager.blacklist_key(current_api_key)
|
| 210 |
+
switch_api_key()
|
| 211 |
+
return 0, None
|
| 212 |
|
| 213 |
elif isinstance(error, generation_types.StopCandidateException):
|
| 214 |
logger.warning(f"AI输出内容被Gemini官方阻挡,代理没有得到有效回复")
|
|
|
|
| 216 |
return 0, None
|
| 217 |
|
| 218 |
else:
|
| 219 |
+
logger.error(f"其他错误↙\n {error}")
|
| 220 |
return 2, None
|
| 221 |
|
| 222 |
@app.route('/hf/v1/chat/completions', methods=['POST'])
|