mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-11 22:51:28 +00:00
fix(router): restore BYOK key injection for vector store endpoints with team-scoped deployments
When vector store endpoints (POST/GET /v1/vector_stores) are called, model=None is passed to the router. map_team_model(None, team_id) was returning None unchanged after the team model routing fix in #25148, so the router never found the team's BYOK deployment and forwarded requests without the API key. Fix: when team_model_name is None, return the matched deployment's team_public_model_name (or model_name fallback) so the router can route to it and inject the BYOK credentials. Does not affect the sibling-deployment load-balancing fix since that only applies when a non-None model is passed. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
cf045dc6d2
commit
a81ceebfbf
1 changed files with 15 additions and 1 deletions
|
|
@ -8281,7 +8281,9 @@ class Router:
|
|||
# No match found
|
||||
return None
|
||||
|
||||
def map_team_model(self, team_model_name: str, team_id: str) -> Optional[str]:
|
||||
def map_team_model(
|
||||
self, team_model_name: Optional[str], team_id: str
|
||||
) -> Optional[str]:
|
||||
"""
|
||||
Check if team_model_name resolves to team-specific deployments.
|
||||
|
||||
|
|
@ -8289,6 +8291,11 @@ class Router:
|
|||
sibling deployments via team_id filtering, instead of collapsing to a
|
||||
single internal model_name.
|
||||
|
||||
When team_model_name is None (e.g. vector store / file endpoints that
|
||||
don't include a model in their request), returns the first matching
|
||||
team deployment's team_public_model_name so the router can inject BYOK
|
||||
credentials from the team-scoped deployment.
|
||||
|
||||
Returns:
|
||||
- str: the team_model_name if team deployments exist for this team
|
||||
- None: if no team-specific model is found
|
||||
|
|
@ -8298,6 +8305,13 @@ class Router:
|
|||
return None
|
||||
for model in models:
|
||||
if model.get("model_info", {}).get("team_id") == team_id:
|
||||
if team_model_name is None:
|
||||
# No model was specified (e.g. vector store endpoints).
|
||||
# Return the deployment's public model name so the router
|
||||
# can route to it and inject the BYOK API key.
|
||||
return model.get("model_info", {}).get(
|
||||
"team_public_model_name"
|
||||
) or model.get("model_name")
|
||||
return team_model_name
|
||||
|
||||
# No team-scoped deployment found; wildcard/pattern routes are
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue