Implementaciones exclusivas en Vertex
Garantiza que el tráfico de Gemini llegue únicamente a Vertex AI ({location}-aiplatform.googleapis.com) y nunca al endpoint de Gemini API Studio (generativelanguage.googleapis.com). Las cargas de trabajo reguladas —HIPAA, residencia de datos, VPC Service Controls— lo requieren: el endpoint de Studio no está cubierto por un BAA de Google Cloud, mientras que Vertex AI sí.
Decisión del endpoint
GeminiModel::from_env y provider_from_env consultan dos indicadores de entorno antes de cualquier clave API. Un indicador es verdadero cuando su valor es 1 o un true sin distinción entre mayúsculas y minúsculas.
| Indicador | Estado | Notas |
|---|---|---|
GOOGLE_GENAI_USE_ENTERPRISE | Actual | Tiene precedencia cuando ambos están establecidos |
GOOGLE_GENAI_USE_VERTEXAI | Obsoleto | Todavía se respeta para mantener la paridad con adk-python; no se emite ninguna advertencia de obsolescencia |
| Indicador de Vertex | Función gemini-vertex | Resultado |
|---|---|---|
| Verdadero | Compilado | Vertex AI mediante las credenciales predeterminadas de la aplicación (GOOGLE_CLOUD_PROJECT + GOOGLE_CLOUD_LOCATION) |
| Verdadero, falta el proyecto o la ubicación | Compilado | Error que indica la variable faltante — sin alternativa de Studio |
| Verdadero | No compilado | Errores de GeminiModel::from_env; provider_from_env emite una advertencia de tracing y continúa con la detección de claves de API, que puede seleccionar Studio |
| No verdadero | — | API de Gemini (Studio) mediante GOOGLE_API_KEY o GEMINI_API_KEY |
Importante: las banderas tienen prioridad sobre cada clave API, incluidas
ANTHROPIC_API_KEYyOPENAI_API_KEYenprovider_from_env. Una clave API aislada no puede desviar una implementación fijada a Vertex hacia Studio.
Configuración
1. Habilitar la característica gemini-vertex
Compile el backend de Vertex en — sin ella, la bandera no se puede aplicar:
[dependencies]
adk-rust = { version = "2.1.0", features = ["minimal", "gemini-vertex"] }
O use el ajuste preestablecido de la plataforma, que la incluye:
[dependencies]
adk-rust = { version = "2.1.0", features = ["minimal", "gemini-agent-platform"] }
2. Establecer las banderas de entorno
export GOOGLE_GENAI_USE_ENTERPRISE=true
export GOOGLE_CLOUD_PROJECT=my-project
export GOOGLE_CLOUD_LOCATION=us-central1
Elimine GOOGLE_API_KEY y GEMINI_API_KEY del entorno de implementación como defensa en profundidad — cuando la bandera es verdadera, nunca se consultan, pero eliminarlas suprime por completo la ruta residual.
3. Configurar las credenciales predeterminadas de la aplicación
La ruta de Vertex se autentica con ADC, no con una clave API:
# Local development
gcloud auth application-default login
# Service accounts (CI, containers)
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json
En GKE y Cloud Run, Workload Identity proporciona ADC sin un archivo de claves.
4. Construir el modelo a partir del entorno
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(())
}
O mediante la detección automática del proveedor en el crate general:
use adk_rust::provider_from_env;
#[tokio::main]
async fn main() -> adk_rust::Result<()> {
let model = provider_from_env()?;
Ok(())
}
Verificar que no haya tráfico de Studio
En tiempo de compilación — la bandera devuelve un error en lugar de degradarse silenciosamente:
GeminiModel::from_envcon una bandera verdadera y sin la característicagemini-vertexdevuelve un error que indica el nombre de la característica.- Una bandera verdadera con
GOOGLE_CLOUD_PROJECToGOOGLE_CLOUD_LOCATIONausente devuelve un error que indica el nombre de la variable faltante.
En tiempo de ejecución — busque la advertencia de protección. provider_from_env la emite siempre que una bandera de Vertex sea verdadera, pero la característica gemini-vertex no esté compilada y la detección continúe hasta las claves 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)
Una implementación exclusiva de Vertex debe tratar esta advertencia como un error de implementación: significa que el binario se compiló sin la característica gemini-vertex. Configure una alerta para ella en la agregación de registros.
Red — para los perímetros de VPC Service Controls, bloquea la salida a generativelanguage.googleapis.com. Con la marca establecida como verdadera y la función compilada, ninguna ruta de código construye un cliente de Studio, por lo que el bloqueo nunca se activa para el tráfico de ADK.
Solución de problemas
| Síntoma | Causa | Solución |
|---|---|---|
Error al nombrar GOOGLE_CLOUD_PROJECT / GOOGLE_CLOUD_LOCATION | Indicador evaluado como verdadero, destino de Vertex incompleto | Establece ambas variables |
Error al nombrar la característica gemini-vertex | Indicador evaluado como verdadero, característica no compilada | Añade gemini-vertex (o gemini-agent-platform) a las características de adk-rust |
| Aparece la advertencia de protección | provider_from_env recurrió a las claves de API | Vuelve a compilar con gemini-vertex; elimina las claves de API de Studio del entorno |
| Errores de autenticación en el momento de la solicitud | ADC no está configurado | Ejecuta gcloud auth application-default login o establece GOOGLE_APPLICATION_CREDENTIALS |