DIAL Vertex AI Adapter
The standalone DIAL OpenAI, Bedrock, and Vertex AI adapters will be deprecated soon. Use DIAL Model Provider instead: it combines these three adapters in one service, and serves this adapter under /compat/vertexai. To move your models, see Migrate from the standalone adapters.
The DIAL Vertex AI Adapter connects DIAL Core to the models of Google Cloud Vertex AI: Gemini, Claude, Imagen, Veo, and Mistral, and the Gemini and Vertex AI embedding models. It also reaches Gemini, Claude, and Mistral through their API keys, Claude in Azure Foundry, and serves the native Anthropic Messages API for Claude Code. This page is for platform engineers who connect Vertex AI models to DIAL.
How it works
- A fixed list of models. The adapter serves the models it knows, by their Vertex AI model IDs, such as
gemini-2.5-flashorclaude-sonnet-4-5@20250929. Any other ID answers404, until you map it with compatibility mode. See Supported models. - Credentials. The adapter authenticates to Vertex AI with Google Application Default Credentials. The project and region come from its environment variables, or per upstream from
extraDatain DIAL Core. - Multimodal. Gemini takes text, PDFs, images, audio, and video; Imagen generates images, and Veo generates videos.
DIAL APIs it serves
| API | Adapter endpoint |
|---|---|
| Chat Completions | POST /openai/deployments/<model id>/chat/completions |
| Embeddings | POST /openai/deployments/<model id>/embeddings |
| Tokenize | POST /openai/deployments/<model id>/tokenize |
| Truncate prompt | POST /openai/deployments/<model id>/truncate_prompt |
| Configuration | /openai/deployments/<model id>/configuration |
| Anthropic Messages passthrough | /anthropic/v1/messages and the other Claude API endpoints |
Which models support each endpoint is in Supported models.
Base configuration
From ai-dial-samples. The adapter service in Docker Compose, with a service account key mounted into the container:
adapter-dial-vertexai:
image: epam/ai-dial-adapter-vertexai:0.41.1
environment:
DIAL_URL: http://core:8080
LOG_LEVEL: INFO
GCP_PROJECT_ID: <GCP_PROJECT_ID>
GCP_DEFAULT_REGION: us-central1
GOOGLE_APPLICATION_CREDENTIALS: /opt/credentials/google.json
volumes:
- ./credentials:/opt/credentials:ro
The samples set the region with DEFAULT_REGION, which is deprecated; use GCP_DEFAULT_REGION.
A Gemini model in the DIAL Core configuration. The adapter URL carries the Vertex AI model ID, and the model needs no upstream URL:
{
"models": {
"gemini": {
"type": "chat",
"displayName": "Gemini on Vertex AI",
"endpoint": "http://adapter-dial-vertexai:5000/openai/deployments/gemini-2.5-flash/chat/completions",
"features": { "toolsSupported": true }
}
}
}
Claude needs max_tokens; set it per model in defaults rather than through CLAUDE_DEFAULT_MAX_TOKENS.
Deployment
The adapter ships as the epam/ai-dial-adapter-vertexai image. Deploy it with the DIAL Helm charts, or in Docker Compose as above. For authentication options, including Workload Identity Federation on AWS container runtimes, see Authentication. To enable models in your Google Cloud project, see Vertex AI model deployment.