refac
This commit is contained in:
@@ -90,8 +90,6 @@ async def send_get_request(url, key=None, user: UserModel = None):
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def openai_reasoning_model_handler(payload):
|
def openai_reasoning_model_handler(payload):
|
||||||
"""
|
"""
|
||||||
Handle reasoning model specific parameters
|
Handle reasoning model specific parameters
|
||||||
@@ -365,9 +363,7 @@ async def get_all_models_responses(request: Request, user: UserModel) -> list:
|
|||||||
|
|
||||||
request_tasks = []
|
request_tasks = []
|
||||||
for idx, url in enumerate(api_base_urls):
|
for idx, url in enumerate(api_base_urls):
|
||||||
if (str(idx) not in api_configs) and (
|
if (str(idx) not in api_configs) and (url not in api_configs): # Legacy support
|
||||||
url not in api_configs # Legacy support
|
|
||||||
):
|
|
||||||
request_tasks.append(
|
request_tasks.append(
|
||||||
send_get_request(
|
send_get_request(
|
||||||
f"{url}/models",
|
f"{url}/models",
|
||||||
@@ -378,9 +374,7 @@ async def get_all_models_responses(request: Request, user: UserModel) -> list:
|
|||||||
else:
|
else:
|
||||||
api_config = api_configs.get(
|
api_config = api_configs.get(
|
||||||
str(idx),
|
str(idx),
|
||||||
api_configs.get(
|
api_configs.get(url, {}), # Legacy support
|
||||||
url, {}
|
|
||||||
), # Legacy support
|
|
||||||
)
|
)
|
||||||
|
|
||||||
enable = api_config.get("enable", True)
|
enable = api_config.get("enable", True)
|
||||||
@@ -423,9 +417,7 @@ async def get_all_models_responses(request: Request, user: UserModel) -> list:
|
|||||||
url = api_base_urls[idx]
|
url = api_base_urls[idx]
|
||||||
api_config = api_configs.get(
|
api_config = api_configs.get(
|
||||||
str(idx),
|
str(idx),
|
||||||
api_configs.get(
|
api_configs.get(url, {}), # Legacy support
|
||||||
url, {}
|
|
||||||
), # Legacy support
|
|
||||||
)
|
)
|
||||||
|
|
||||||
connection_type = api_config.get("connection_type", "external")
|
connection_type = api_config.get("connection_type", "external")
|
||||||
@@ -462,12 +454,8 @@ async def get_all_models_responses(request: Request, user: UserModel) -> list:
|
|||||||
async def get_filtered_models(models, user, db=None):
|
async def get_filtered_models(models, user, db=None):
|
||||||
# Filter models based on user access control
|
# Filter models based on user access control
|
||||||
model_ids = [model["id"] for model in models.get("data", [])]
|
model_ids = [model["id"] for model in models.get("data", [])]
|
||||||
model_infos = {
|
model_infos = {m.id: m for m in Models.get_models_by_ids(model_ids, db=db)}
|
||||||
m.id: m for m in Models.get_models_by_ids(model_ids, db=db)
|
user_group_ids = {g.id for g in Groups.get_groups_by_member_id(user.id, db=db)}
|
||||||
}
|
|
||||||
user_group_ids = {
|
|
||||||
g.id for g in Groups.get_groups_by_member_id(user.id, db=db)
|
|
||||||
}
|
|
||||||
|
|
||||||
filtered_models = []
|
filtered_models = []
|
||||||
for model in models.get("data", []):
|
for model in models.get("data", []):
|
||||||
@@ -532,11 +520,9 @@ async def get_all_models(request: Request, user: UserModel) -> dict[str, list]:
|
|||||||
for model in model_list:
|
for model in model_list:
|
||||||
model_id = model.get("id") or model.get("name")
|
model_id = model.get("id") or model.get("name")
|
||||||
|
|
||||||
if (
|
if "api.openai.com" in api_base_urls[
|
||||||
"api.openai.com"
|
idx
|
||||||
in api_base_urls[idx]
|
] and not is_supported_openai_models(model_id):
|
||||||
and not is_supported_openai_models(model_id)
|
|
||||||
):
|
|
||||||
# Skip unwanted OpenAI models
|
# Skip unwanted OpenAI models
|
||||||
continue
|
continue
|
||||||
|
|
||||||
@@ -992,11 +978,11 @@ async def generate_chat_completion(
|
|||||||
)
|
)
|
||||||
|
|
||||||
# Check if model is already in app state cache to avoid expensive get_all_models() call
|
# Check if model is already in app state cache to avoid expensive get_all_models() call
|
||||||
# This significantly reduces TTFT when models are already cached
|
models = request.app.state.OPENAI_MODELS
|
||||||
model = request.app.state.OPENAI_MODELS.get(model_id) if request.app.state.OPENAI_MODELS else None
|
if not models or model not in models:
|
||||||
if not model:
|
|
||||||
await get_all_models(request, user=user)
|
await get_all_models(request, user=user)
|
||||||
model = request.app.state.OPENAI_MODELS.get(model_id)
|
models = request.app.state.OPENAI_MODELS
|
||||||
|
model = models.get(model_id)
|
||||||
|
|
||||||
if model:
|
if model:
|
||||||
idx = model["urlIdx"]
|
idx = model["urlIdx"]
|
||||||
|
|||||||
Reference in New Issue
Block a user