Skip to content

Conversation

@krisxia0506
Copy link
Contributor

Title

Fix get_model_from_request() to extract model ID from Vertex AI passthrough URLs

Relevant issues

Pre-Submission checklist

Please complete all items before asking a LiteLLM maintainer to review your PR

  • I have Added testing in the tests/litellm/ directory, Adding at least 1 test is a hard requirement - see details
  • I have added a screenshot of my new test passing locally
  • My PR passes all unit tests on make test-unit
  • My PR's scope is as isolated as possible, it only solves 1 specific problem
image

Type

🐛 Bug Fix

Changes

Summary

This PR enhances the model extraction logic in the proxy authentication module to properly handle Vertex AI passthrough routes. Previously, the get_model_from_request() function could not extract model IDs from Vertex AI passthrough URLs, which follows a distinct pattern compared to OpenAI deployments.

Problem

Vertex AI passthrough endpoints have a URL structure like:

/vertex_ai/v1/projects/{project}/locations/{location}/publishers/google/models/{model_id}:{method}

The existing model extraction logic only handled OpenAI deployments (/openai/deployments/{model}/), leaving Vertex AI models unidentified.

Solution

Added regex-based model extraction for Vertex AI routes:

  • Pattern: /vertex_ai/.../models/{model_id}:*
  • Extracts model ID using the regex pattern: /models/([^/:]+)
  • Handles both versioned endpoints (v1, v1beta1) and different Google Cloud regions
  • Maintains precedence: request body model > extracted from URL
  • Does not interfere with existing OpenAI deployment extraction

Testing

Added comprehensive test coverage with 7 parametrized test cases in test_get_model_from_request_vertex_ai_passthrough():

  1. ✅ Vertex AI v1 endpoint with generateContent method
  2. ✅ Vertex AI v1beta1 endpoint with streamGenerateContent method
  3. ✅ Different region locations (us-central1, asia-southeast1)
  4. ✅ Model extraction without method suffix (no colon)
  5. ✅ Request body model takes precedence over URL pattern
  6. ✅ Non-Vertex routes are not affected
  7. ✅ Azure deployment pattern still works as expected

Files Changed

  • litellm/proxy/auth/auth_utils.py: Added Vertex AI model extraction logic
  • tests/local_testing/test_auth_utils.py: Added parametrized test cases

extract model id from vertex ai passthrough routes that follow the pattern:
/vertex_ai/*/models/{model_id}:*

the model extraction now handles vertex ai routes by regex matching the model
segment from the url path, which allows proper model identification for
authentication and authorization in proxy pass-through endpoints.

adds comprehensive test coverage for vertex ai model extraction including:
- various vertex api versions (v1, v1beta1)
- different locations (us-central1, asia-southeast1)
- model names with special suffixes (gemini-1.5-pro, gemini-2.0-flash)
- precedence verification (request body model over url)
- non-vertex route isolation
@vercel
Copy link

vercel bot commented Dec 17, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
litellm Ready Ready Preview, Comment Dec 17, 2025 3:35am

@krrishdholakia krrishdholakia changed the base branch from main to litellm_staging_12_17_2025 December 17, 2025 05:39
@krrishdholakia krrishdholakia merged commit be2f429 into BerriAI:litellm_staging_12_17_2025 Dec 17, 2025
5 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants