Skip to main content

Capabilities

Beyond calling Vertex AI models, the DIAL Vertex AI Adapter exposes Gemini thinking, safety settings, Google Search grounding, and code execution, configures Imagen and Veo, caches prompts, balances models across regions and projects, and reaches models through API keys, Azure Foundry, and the native Anthropic Messages API. This reference describes each capability and the DIAL Core settings behind it. It is for platform engineers who tune Vertex AI models in DIAL; it assumes you know Supported models.

Configurable models​

Models take extra settings in custom_fields.configuration of the chat request; the model's /configuration endpoint returns the JSON Schema.

ModelsWhat you can configure
Gemini 2.5 and Gemini 3Thinking: thinking.include_thoughts and thinking.thinking_budget
GeminiSafety settings per harm category: safety_settings
Gemini 2.5 Flash ImageImage generation: image_config.aspect_ratio and image_config.image_size
ImagenImage generation parameters, such as negative prompt, aspect ratio, and watermarking; see the Imagen API
VeoVideo generation parameters, such as aspect ratio, compression quality, and duration; see the Veo API
ClaudeExtended thinking, reasoning level, beta flags, and citations; see the Anthropic adapter

Gemini thinking​

{
"messages": [{ "role": "user", "content": "Explain quantum computing in simple terms." }],
"custom_fields": {
"configuration": {
"thinking": { "include_thoughts": true, "thinking_budget": 2048 }
}
}
}
  • With include_thoughts: true, the thought summaries appear in a DIAL stage titled Thinking.
  • thinking_budget: -1 makes the budget unlimited.
  • Gemini 3 also takes the thinking level from the OpenAI reasoning_effort field: none, minimum, low, medium, or high. A request cannot set both reasoning_effort and thinking_budget.

Gemini safety settings​

"custom_fields": {
"configuration": {
"safety_settings": [
{ "category": "HARM_CATEGORY_HARASSMENT", "threshold": "BLOCK_ONLY_HIGH" },
{ "category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "BLOCK_NONE" }
]
}
}

See Google's safety settings for the categories and thresholds. For guardrails that DIAL applies to every model, see Guardrails.

Gemini tools​

Two Google tools turn on with a static function in tools:

ToolStatic functionResult
Grounding with Google Searchgoogle_searchCitations from the pages Google Search found, as DIAL attachments
Code executioncode_executionA Code execution stage with the generated code and its result
{
"messages": [{ "role": "user", "content": "What are the latest GenAI news?" }],
"tools": [{ "type": "static_function", "static_function": { "name": "google_search" } }]
}

Claude on Vertex AI supports Anthropic's web search tool; see the Anthropic adapter.

Prompt caching​

Gemini 2.5 models cache long prompts implicitly: a request above the threshold, 1024 tokens for Gemini 2.5 Flash and 4096 for Gemini 2.5 Pro, is cached. Turn it on with features.autoCachingSupported: true on the DIAL Core model. On a cache hit, usage.prompt_tokens_details.cached_tokens reports the cached tokens.

Regions, projects, and load balancing​

Each upstream can set its own region and project in extraData, so DIAL Core can balance one model across them:

"<DIAL_MODEL_ID>": {
"type": "chat",
"endpoint": "<ADAPTER>/openai/deployments/gemini-2.5-flash/chat/completions",
"upstreams": [
{ "extraData": { "region": "us-central1" } },
{ "extraData": { "region": "us-east5" } }
]
}
extraData fieldOverrides
regionGCP_DEFAULT_REGION
projectGCP_PROJECT_ID
  • "region": "global" uses the Vertex AI global endpoint, for the models that support it.
  • "region": "us" or "eu" uses a multi-region endpoint.

See Load balancing and upstreams for how Core picks an upstream.

Provisioned throughput headers​

Request headers starting with X-Vertex-AI- are passed to Vertex AI as they are, for Gemini models accessed with Google Cloud credentials:

HeaderValue
X-Vertex-AI-LLM-Request-Typededicated for the provisioned throughput quota, shared for pay-as-you-go
X-Vertex-AI-LLM-Shared-Request-Typepriority for the priority pay-as-you-go quota

Authentication​

UpstreamHow the adapter authenticates
Vertex AIGoogle Application Default Credentials, with the project and region from the environment or extraData
Vertex AI from AWS ECS, EC2 task roles, or EKS Pod IdentityWorkload Identity Federation, using the container credential variables the AWS runtime sets: AWS_CONTAINER_CREDENTIALS_RELATIVE_URI, AWS_CONTAINER_CREDENTIALS_FULL_URI, AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE, or AWS_CONTAINER_AUTHORIZATION_TOKEN
Gemini 2 and later, Claude, and Mistral through their API keysThe upstream key in DIAL Core
Claude in Azure FoundryThe upstream key, or Azure's DefaultAzureCredential without one

API keys​

"gemini-flash-lite": {
"endpoint": "<ADAPTER>/openai/deployments/gemini-2.0-flash-lite-001/chat/completions",
"upstreams": [{ "key": "<GEMINI_API_KEY>" }]
},
"claude-sonnet": {
"endpoint": "<ADAPTER>/openai/deployments/claude-3-5-sonnet-20241022/chat/completions",
"upstreams": [
{ "key": "<ANTHROPIC_API_KEY>", "extraData": { "compatible_model_id": "claude-3-5-sonnet-v2@20241022" } }
]
}

The adapter knows Claude by its Vertex AI ID, so map the Anthropic API model name with compatible_model_id; without it, the adapter answers 404.

Claude in Azure Foundry​

"claude-sonnet-foundry": {
"endpoint": "<ADAPTER>/openai/deployments/<FOUNDRY_MODEL_NAME>/chat/completions",
"upstreams": [
{ "endpoint": "https://<FOUNDRY_RESOURCE>.services.ai.azure.com/anthropic/v1/messages", "key": "<OPTIONAL_API_KEY>" }
]
}

Azure Foundry model names differ from Vertex AI ones, so map them to a supported ID, for example with COMPATIBILITY_MAPPING={"<FOUNDRY_MODEL_NAME>": "claude-sonnet-4-5@20250929"}.

Compatibility mode​

When Vertex AI releases a model version the adapter does not know yet, serve it through a known, compatible model. Set compatible_model_id on every upstream of the DIAL Core model:

"<DIAL_MODEL_ID>": {
"type": "chat",
"endpoint": "<ADAPTER>/openai/deployments/<NEW_MODEL_ID>/chat/completions",
"upstreams": [{ "extraData": { "compatible_model_id": "<SUPPORTED_MODEL_ID>" } }]
}

The request is processed as for the supported model, but sent to Vertex AI with the new ID; features only the new model has do not work until the adapter supports it. The COMPATIBILITY_MAPPING variable does the same for the whole adapter, but is deprecated in favor of this setting.

Anthropic Messages passthrough​

The adapter serves the native Claude API at /anthropic, so clients built on the Anthropic SDK, such as Claude Code, reach Claude on Vertex AI without an Anthropic API key. Requests carry Vertex AI model names, not Claude API aliases. The upstream is chosen per request as for chat: Google Cloud credentials by default, an API key from the x-upstream-key header, or Azure Foundry from the x-upstream-endpoint header. To use Claude Code through DIAL, see Claude Code.

Further reading​