Spaces:
Building
Building
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'])
|