Déploiements exclusivement sur Vertex

Garantissez que le trafic Gemini atteint uniquement Vertex AI ({location}-aiplatform.googleapis.com) et jamais le point de terminaison Gemini API Studio (generativelanguage.googleapis.com). Les charges de travail réglementées — HIPAA, résidence des données, VPC Service Controls — l’exigent : le point de terminaison Studio n’est pas couvert par un BAA de Google Cloud, contrairement à Vertex AI.

Choix du point de terminaison

GeminiModel::from_env et provider_from_env consultent deux indicateurs d’environnement avant toute clé API. Un indicateur est considéré comme vrai lorsque sa valeur est 1 ou un true insensible à la casse.

IndicateurStatutRemarques
GOOGLE_GENAI_USE_ENTERPRISEActuelPrend le dessus lorsque les deux sont définis
GOOGLE_GENAI_USE_VERTEXAIObsolèteToujours pris en compte pour assurer la parité avec adk-python ; aucun avertissement d’obsolescence n’est émis
Indicateur VertexFonctionnalité gemini-vertexRésultat
VraiCompiléVertex AI via les identifiants par défaut de l’application (GOOGLE_CLOUD_PROJECT + GOOGLE_CLOUD_LOCATION)
Vrai, projet ou emplacement manquantCompiléErreur indiquant la variable manquante — aucun recours à Studio
Évalué comme vraiNon compiléErreurs GeminiModel::from_env ; provider_from_env émet un avertissement tracing et passe à la détection de clé API, qui peut sélectionner Studio
N’est pas évalué comme vraiGemini API (Studio) via GOOGLE_API_KEY ou GEMINI_API_KEY

Important : les indicateurs ont priorité sur toute clé API, y compris ANTHROPIC_API_KEY et OPENAI_API_KEY dans provider_from_env. Une clé API isolée ne peut pas rediriger un déploiement associé à Vertex vers Studio.

Configuration

1. Activer la fonctionnalité gemini-vertex

Compilez le backend Vertex avec celle-ci — sans elle, l’indicateur ne peut pas être pris en compte :

[dependencies]
adk-rust = { version = "2.1.0", features = ["minimal", "gemini-vertex"] }

Ou utilisez le préréglage de la plateforme, qui l’inclut :

[dependencies]
adk-rust = { version = "2.1.0", features = ["minimal", "gemini-agent-platform"] }

2. Définir les indicateurs d’environnement

export GOOGLE_GENAI_USE_ENTERPRISE=true
export GOOGLE_CLOUD_PROJECT=my-project
export GOOGLE_CLOUD_LOCATION=us-central1

Supprimez GOOGLE_API_KEY et GEMINI_API_KEY de l’environnement de déploiement par défense en profondeur — lorsque l’indicateur est véridique, ils ne sont jamais consultés, mais leur suppression élimine entièrement le chemin résiduel.

3. Configurer les identifiants d’application par défaut

Le chemin Vertex s’authentifie avec ADC, et non avec une clé API :

# Local development
gcloud auth application-default login

# Service accounts (CI, containers)
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json

Sur GKE et Cloud Run, Workload Identity fournit ADC sans fichier de clé.

4. Construire le modèle à partir de l’environnement

use adk_model::gemini::GeminiModel;

// The Vertex path builds Application Default Credentials, which requires a
// current Tokio runtime.
#[tokio::main]
async fn main() -> adk_core::Result<()> {
    // Vertex AI when a flag is truthy; errors instead of falling back to
    // Studio when the Vertex configuration is incomplete.
    let model = GeminiModel::from_env("gemini-3.7-flash")?;
    Ok(())
}

Ou via la détection automatique du fournisseur sur le crate englobant :

use adk_rust::provider_from_env;

#[tokio::main]
async fn main() -> adk_rust::Result<()> {
    let model = provider_from_env()?;
    Ok(())
}

Vérifier l’absence de trafic Studio

Au moment de la compilation — l’indicateur génère une erreur au lieu de dégrader silencieusement le comportement :

  • GeminiModel::from_env avec un indicateur véridique et sans fonctionnalité gemini-vertex renvoie une erreur indiquant le nom de la fonctionnalité.
  • Un indicateur véridique avec GOOGLE_CLOUD_PROJECT ou GOOGLE_CLOUD_LOCATION manquant renvoie une erreur indiquant le nom de la variable manquante.

À l’exécution — surveillez l’avertissement de garde-fou. provider_from_env l’émet chaque fois qu’un indicateur Vertex est véridique, mais que la fonctionnalité gemini-vertex n’est pas compilée et que la détection se rabat sur les clés API :

WARN vertex backend requested via environment but the gemini-vertex feature is not compiled; api-key detection may select the gemini studio endpoint (generativelanguage.googleapis.com)

Un déploiement exclusivement Vertex doit considérer cet avertissement comme une erreur de déploiement : cela signifie que le binaire a été compilé sans la fonctionnalité gemini-vertex. Configurez une alerte à ce sujet dans l’agrégation des journaux.

Réseau — pour les périmètres VPC Service Controls, bloquez la sortie vers generativelanguage.googleapis.com. Lorsque l’indicateur est truthy et que la fonctionnalité est compilée, aucun chemin de code ne construit de client Studio ; le blocage ne se déclenche donc jamais pour le trafic ADK.

Dépannage

SymptômeCauseCorrection
Erreur nommant GOOGLE_CLOUD_PROJECT / GOOGLE_CLOUD_LOCATIONIndicateur évalué à vrai, cible Vertex incomplèteDéfinir les deux variables
Erreur nommant la fonctionnalité gemini-vertexIndicateur évalué à vrai, fonctionnalité non compiléeAjouter gemini-vertex (ou gemini-agent-platform) aux fonctionnalités adk-rust
L’avertissement du garde-fou s’afficheprovider_from_env a utilisé les clés API comme solution de secoursReconstruisez avec gemini-vertex ; supprimez les clés API de Studio de l’environnement
Erreurs d’authentification au moment de la requêteADC n’est pas configuréExécutez gcloud auth application-default login ou définissez GOOGLE_APPLICATION_CREDENTIALS