googleapis / googleapis/python-genai
`models.get()` does not resolve alias to underlying model version on Vertex AI
- Dominant language
- Python
- Stars
- 4k
- Forks
- 1k
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 40
Description
## Description
When calling `client.models.get(model="gemini-flash-latest")` on Vertex AI (`location=global`), the response only echoes the alias name back (`publishers/google/models/gemini-flash-latest`) with `version: "default"`. There is no field that reveals the actual resolved model version.
Similarly, `GenerateContentResponse.model_version` just returns `"gemini-flash-latest"`.
This makes it impossible to:
1. Know which model you're actually calling in production
2. Pin to a specific version before an alias rotates
3. Debug behavioral differences between alias and named models
## Empirical evidence
We ran side-by-side tests (temperature=0, no thinking, identical prompts) comparing `gemini-flash-latest` against known model versions on Vertex AI (`location=global`):
| Test (7 deterministic prompts) | Exact output hash match with `gemini-flash-latest` |
|---|---|
| `gemini-2.5-flash` | **5/7** |
| `gemini-3-flash-preview` | **4/7** |
`gemini-flash-latest` produces **byte-different output** from both named models on several prompts, making it impossible to determine which model it actually resolves to.
According to the [changelog](https://ai.google.dev/gemini-api/docs/changelog) (Jan 21, 2026), `gemini-flash-latest` was switched to `gemini-3-flash-preview` on the Google AI API — but this does not appear to match Vertex AI behavior.
## Expected behavior
`models.get()` should return a `resolved_model` or `base_model` field with the actual underlying model identifier (e.g., `gemini-2.5-flash-20250617`), so users can:
- Audit what they're running in production
- Pin to the resolved version before an alias rotates
- Report accurate model versions in bug reports
## Reproduction
```python
from google import genai
client = genai.Client(vertexai=True, project="YOUR_PROJECT", location="global")
# models.get returns no resolution info
info = client.models.get(model="gemini-flash-latest")
print(info.name) # "publishers/google/models/gemini-flash-latest"
print(info.version) # "default"
# No resolved_model, base_model, or similar field
# Response metadata also just echoes the alias
resp = client.models.generate_content(
model="gemini-flash-latest",
contents="hello",
)
print(resp.model_version) # "gemini-flash-latest" — not the actual model
```
## Additional context
- **Platform**: Vertex AI (not Google AI API)
- **Location**: `global`
- **SDK**: `google-genai` (Python)
- **Use case**: Production conversational AI agent using Google ADK with heavy tool calling. We rely on `gemini-flash-latest` for its quality but cannot pin it, and the documented alias rotation schedule appears to only apply to the Google AI API, not Vertex AI.
Contributor guide
Assessment
This issue has not been assessed yet.