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
  • tests/test_litellm/proxy/pass_through_endpoints/test_vertex_passthrough_auth.py: New test file with additional Vertex AI passthrough tests

@vercel
Copy link

vercel bot commented Dec 15, 2025

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

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

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
@krisxia0506 krisxia0506 force-pushed the fix/auth-passthrough-enhancements branch from 02a5585 to 4fd62a2 Compare December 15, 2025 05:16
@krrishdholakia krrishdholakia changed the base branch from main to litellm_staging_12_16_2025 December 16, 2025 03:12
@krrishdholakia krrishdholakia merged commit ae7c994 into BerriAI:litellm_staging_12_16_2025 Dec 16, 2025
6 of 7 checks passed
@Sameerlite
Copy link
Collaborator

@krisxia0506 Reverted this PR. Can you make sure your tests pass. All o them are failing

@krisxia0506
Copy link
Contributor Author

@krisxia0506 Reverted this PR. Can you make sure your tests pass. All o them are failing

I have run both test files in this PR successfully and attached screenshots in the PR description. Could you please let me know which tests did not pass and specify them clearly?

image

@Sameerlite
Copy link
Collaborator

image

@krisxia0506
Copy link
Contributor Author

image

Thank you sir, I accidentally integrated another method from a PR #17526 that hasn't been merged yet into my unit test method get_vertex_model_id_from_url, I will remove it.

@krisxia0506
Copy link
Contributor Author

@Sameerlite Hello, sir, I have resubmitted my changes in a new PR #18097. Please help me review them.

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.

3 participants