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.
| Indicateur | Statut | Remarques |
|---|---|---|
GOOGLE_GENAI_USE_ENTERPRISE | Actuel | Prend le dessus lorsque les deux sont définis |
GOOGLE_GENAI_USE_VERTEXAI | ObsolĂšte | Toujours pris en compte pour assurer la paritĂ© avec adk-python ; aucun avertissement dâobsolescence nâest Ă©mis |
| Indicateur Vertex | Fonctionnalité gemini-vertex | Résultat |
|---|---|---|
| Vrai | CompilĂ© | Vertex AI via les identifiants par dĂ©faut de lâapplication (GOOGLE_CLOUD_PROJECT + GOOGLE_CLOUD_LOCATION) |
| Vrai, projet ou emplacement manquant | CompilĂ© | Erreur indiquant la variable manquante â aucun recours Ă Studio |
| ĂvaluĂ© comme vrai | Non 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 vrai | â | Gemini API (Studio) via GOOGLE_API_KEY ou GEMINI_API_KEY |
Important : les indicateurs ont priorité sur toute clé API, y compris
ANTHROPIC_API_KEYetOPENAI_API_KEYdansprovider_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_envavec un indicateur véridique et sans fonctionnalitégemini-vertexrenvoie une erreur indiquant le nom de la fonctionnalité.- Un indicateur véridique avec
GOOGLE_CLOUD_PROJECTouGOOGLE_CLOUD_LOCATIONmanquant 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ĂŽme | Cause | Correction |
|---|---|---|
Erreur nommant GOOGLE_CLOUD_PROJECT / GOOGLE_CLOUD_LOCATION | Indicateur évalué à vrai, cible Vertex incomplÚte | Définir les deux variables |
Erreur nommant la fonctionnalité gemini-vertex | Indicateur évalué à vrai, fonctionnalité non compilée | Ajouter gemini-vertex (ou gemini-agent-platform) aux fonctionnalités adk-rust |
| Lâavertissement du garde-fou sâaffiche | provider_from_env a utilisĂ© les clĂ©s API comme solution de secours | Reconstruisez avec gemini-vertex ; supprimez les clĂ©s API de Studio de lâenvironnement |
| Erreurs dâauthentification au moment de la requĂȘte | ADC nâest pas configurĂ© | ExĂ©cutez gcloud auth application-default login ou dĂ©finissez GOOGLE_APPLICATION_CREDENTIALS |