Spaces:
Building
Building
Upload 2 files
Browse files
app.py
CHANGED
@@ -1,7 +1,4 @@
|
|
1 |
from flask import Flask, request, jsonify, Response, stream_with_context, render_template_string
|
2 |
-
from google.generativeai.types import StopCandidateException, generation_types, BlockedPromptException
|
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
|
7 |
import re
|
@@ -31,9 +28,10 @@ handler = logging.StreamHandler()
|
|
31 |
handler.setFormatter(formatter)
|
32 |
logger.addHandler(handler)
|
33 |
|
34 |
-
MAX_RETRIES = int(os.environ.get('MaxRetries', 3))
|
35 |
-
MAX_REQUESTS = int(os.environ.get('MaxRequests', 2))
|
36 |
-
LIMIT_WINDOW = int(os.environ.get('LimitWindow', 60))
|
|
|
37 |
RETRY_DELAY = 1
|
38 |
MAX_RETRY_DELAY = 16
|
39 |
|
@@ -322,11 +320,11 @@ def handle_api_error(error, attempt, current_api_key):
|
|
322 |
return 0, None
|
323 |
error_message = error_data['error'].get('message', 'Bad Request')
|
324 |
error_type = error_data['error'].get('type', 'invalid_request_error')
|
325 |
-
logger.warning(f"400
|
326 |
return 1, jsonify({'error': {'message': error_message, 'type': error_type}})
|
327 |
except ValueError:
|
328 |
-
logger.warning("400
|
329 |
-
return 1, jsonify({'error': {'message': '
|
330 |
|
331 |
elif status_code == 429:
|
332 |
delay = min(RETRY_DELAY * (2 ** attempt), MAX_RETRY_DELAY)
|
|
|
1 |
from flask import Flask, request, jsonify, Response, stream_with_context, render_template_string
|
|
|
|
|
|
|
2 |
import json
|
3 |
import os
|
4 |
import re
|
|
|
28 |
handler.setFormatter(formatter)
|
29 |
logger.addHandler(handler)
|
30 |
|
31 |
+
MAX_RETRIES = int(os.environ.get('MaxRetries', '3').strip() or '3')
|
32 |
+
MAX_REQUESTS = int(os.environ.get('MaxRequests', '2').strip() or '2')
|
33 |
+
LIMIT_WINDOW = int(os.environ.get('LimitWindow', '60').strip() or '60')
|
34 |
+
|
35 |
RETRY_DELAY = 1
|
36 |
MAX_RETRY_DELAY = 16
|
37 |
|
|
|
320 |
return 0, None
|
321 |
error_message = error_data['error'].get('message', 'Bad Request')
|
322 |
error_type = error_data['error'].get('type', 'invalid_request_error')
|
323 |
+
logger.warning(f"400 坏请求: {error_message}")
|
324 |
return 1, jsonify({'error': {'message': error_message, 'type': error_type}})
|
325 |
except ValueError:
|
326 |
+
logger.warning("400 坏请求 (无法解析错误响应)")
|
327 |
+
return 1, jsonify({'error': {'message': '400 坏请求 (无法解析错误响应)', 'type': 'invalid_request_error'}})
|
328 |
|
329 |
elif status_code == 429:
|
330 |
delay = min(RETRY_DELAY * (2 ** attempt), MAX_RETRY_DELAY)
|