Spaces:
Paused
Paused
Update openai_ondemand_adapter.py
#2
by
sdsdsdghfgf
- opened
- openai_ondemand_adapter.py +11 -16
openai_ondemand_adapter.py
CHANGED
|
@@ -8,37 +8,32 @@ import logging
|
|
| 8 |
import os
|
| 9 |
|
| 10 |
# ====== 读取 Huggingface Secret 配置的私有key =======
|
| 11 |
-
PRIVATE_KEY = os.environ.get("PRIVATE_KEY", "")
|
| 12 |
-
|
| 13 |
-
SAFE_HEADERS = ["Authorization", "X-API-KEY"]
|
| 14 |
|
| 15 |
# 全局接口访问权限检查
|
| 16 |
def check_private_key():
|
| 17 |
-
# 可以在这里放宽部分接口,比如首页等
|
| 18 |
if request.path in ["/", "/favicon.ico"]:
|
| 19 |
return
|
| 20 |
-
key =
|
| 21 |
-
for header in SAFE_HEADERS:
|
| 22 |
-
key = request.headers.get(header)
|
| 23 |
-
if key:
|
| 24 |
-
if header == "Authorization" and key.startswith("Bearer "):
|
| 25 |
-
key = key[len("Bearer "):].strip()
|
| 26 |
-
break
|
| 27 |
if not key or key != PRIVATE_KEY:
|
| 28 |
-
return jsonify({"error": "Unauthorized, must provide correct
|
| 29 |
|
| 30 |
# 应用所有API鉴权
|
| 31 |
app = Flask(__name__)
|
| 32 |
app.before_request(check_private_key)
|
| 33 |
|
| 34 |
# ========== KEY池(每行一个)==========
|
| 35 |
-
ONDEMAND_APIKEYS =
|
| 36 |
-
|
|
|
|
|
|
|
|
|
|
| 37 |
SESSION_TIMEOUT = 600 # 对话超时时间(10分钟)
|
| 38 |
|
| 39 |
# ========== OnDemand模型映射 ==========
|
| 40 |
MODEL_MAP = {
|
| 41 |
-
"
|
| 42 |
"gpt-4o": "predefined-openai-gpt4o",
|
| 43 |
"gpt-4.1": "predefined-openai-gpt4.1",
|
| 44 |
"gpt-4.1-mini": "predefined-openai-gpt4.1-mini",
|
|
@@ -46,7 +41,7 @@ MODEL_MAP = {
|
|
| 46 |
"gpt-4o-mini": "predefined-openai-gpt4o-mini",
|
| 47 |
"deepseek-v3": "predefined-deepseek-v3",
|
| 48 |
"deepseek-r1": "predefined-deepseek-r1",
|
| 49 |
-
"claude-3
|
| 50 |
"gemini-2.0-flash": "predefined-gemini-2.0-flash",
|
| 51 |
}
|
| 52 |
DEFAULT_ONDEMAND_MODEL = "predefined-openai-gpt4o"
|
|
|
|
| 8 |
import os
|
| 9 |
|
| 10 |
# ====== 读取 Huggingface Secret 配置的私有key =======
|
| 11 |
+
PRIVATE_KEY = os.environ.get("PRIVATE_KEY", "114514")
|
| 12 |
+
SAFE_HEADER = "X-API-KEY"
|
|
|
|
| 13 |
|
| 14 |
# 全局接口访问权限检查
|
| 15 |
def check_private_key():
|
|
|
|
| 16 |
if request.path in ["/", "/favicon.ico"]:
|
| 17 |
return
|
| 18 |
+
key = request.headers.get(SAFE_HEADER)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 19 |
if not key or key != PRIVATE_KEY:
|
| 20 |
+
return jsonify({"error": "Unauthorized, must provide correct X-API-KEY"}), 401
|
| 21 |
|
| 22 |
# 应用所有API鉴权
|
| 23 |
app = Flask(__name__)
|
| 24 |
app.before_request(check_private_key)
|
| 25 |
|
| 26 |
# ========== KEY池(每行一个)==========
|
| 27 |
+
ONDEMAND_APIKEYS = [
|
| 28 |
+
"KEY1",
|
| 29 |
+
"KEY2",
|
| 30 |
+
]
|
| 31 |
+
BAD_KEY_RETRY_INTERVAL = 600 # 秒
|
| 32 |
SESSION_TIMEOUT = 600 # 对话超时时间(10分钟)
|
| 33 |
|
| 34 |
# ========== OnDemand模型映射 ==========
|
| 35 |
MODEL_MAP = {
|
| 36 |
+
"gpto3-mini": "predefined-openai-gpto3-mini",
|
| 37 |
"gpt-4o": "predefined-openai-gpt4o",
|
| 38 |
"gpt-4.1": "predefined-openai-gpt4.1",
|
| 39 |
"gpt-4.1-mini": "predefined-openai-gpt4.1-mini",
|
|
|
|
| 41 |
"gpt-4o-mini": "predefined-openai-gpt4o-mini",
|
| 42 |
"deepseek-v3": "predefined-deepseek-v3",
|
| 43 |
"deepseek-r1": "predefined-deepseek-r1",
|
| 44 |
+
"claude-3.7-sonnet": "predefined-claude-3.7-sonnet",
|
| 45 |
"gemini-2.0-flash": "predefined-gemini-2.0-flash",
|
| 46 |
}
|
| 47 |
DEFAULT_ONDEMAND_MODEL = "predefined-openai-gpt4o"
|