केवल Vertex परिनियोजन

गारंटी दें कि Gemini ट्रैफ़िक केवल Vertex AI ({location}-aiplatform.googleapis.com) तक पहुँचे और कभी भी Gemini API Studio एंडपॉइंट (generativelanguage.googleapis.com) तक न पहुँचे। विनियमित वर्कलोड — HIPAA, डेटा-रेज़िडेंसी, VPC Service Controls — के लिए यह आवश्यक है: Studio एंडपॉइंट Google Cloud BAA के अंतर्गत शामिल नहीं है, जबकि Vertex AI शामिल है।

एंडपॉइंट निर्णय

GeminiModel::from_env और provider_from_env किसी भी API कुंजी से पहले दो पर्यावरण फ़्लैग की जाँच करते हैं। किसी फ़्लैग को truthy माना जाता है जब उसका मान 1 या केस-इंसेंसिटिव true हो।

फ़्लैगस्थितिटिप्पणियाँ
GOOGLE_GENAI_USE_ENTERPRISEवर्तमानदोनों सेट होने पर प्राथमिकता लेता है
GOOGLE_GENAI_USE_VERTEXAIअप्रचलितadk-python समानता के लिए अभी भी मान्य; कोई अप्रचलन चेतावनी जारी नहीं की जाती
Vertex फ़्लैगgemini-vertex सुविधापरिणाम
सत्यसंकलितApplication Default Credentials (GOOGLE_CLOUD_PROJECT + GOOGLE_CLOUD_LOCATION) के माध्यम से Vertex AI
सत्य, प्रोजेक्ट या स्थान अनुपलब्धसंकलितअनुपलब्ध वेरिएबल का नाम बताने वाली त्रुटि — कोई Studio फ़ॉलबैक नहीं
सत्यसंकलित नहींGeminiModel::from_env त्रुटियाँ; provider_from_env एक tracing चेतावनी जारी करता है और API-कुंजी पहचान पर आगे बढ़ता है, जो Studio का चयन कर सकता है
सत्य नहींGOOGLE_API_KEY या GEMINI_API_KEY के माध्यम से Gemini API (Studio)

महत्वपूर्ण: फ़्लैग प्रत्येक API कुंजी पर प्राथमिकता रखते हैं, जिनमें provider_from_env में मौजूद ANTHROPIC_API_KEY और OPENAI_API_KEY भी शामिल हैं। कोई अप्रत्याशित API कुंजी Vertex-पिन किए गए डिप्लॉयमेंट को Studio की ओर नहीं मोड़ सकती।

सेटअप

1. gemini-vertex सुविधा सक्षम करें

इसके बिना Vertex बैकएंड को कंपाइल करें — इसके बिना फ़्लैग का पालन नहीं किया जा सकता:

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

या प्लेटफ़ॉर्म प्रीसेट का उपयोग करें, जिसमें यह शामिल है:

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

2. वातावरण के फ़्लैग सेट करें

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

डिफ़ेंस-इन-डेप्थ के लिए डिप्लॉयमेंट वातावरण में GOOGLE_API_KEY और GEMINI_API_KEY को अनसेट करें — फ़्लैग के truthy होने पर इन्हें कभी जाँचा नहीं जाता, लेकिन इन्हें हटाने से बचा हुआ मार्ग पूरी तरह समाप्त हो जाता है।

3. Application Default Credentials कॉन्फ़िगर करें

Vertex पथ ADC से प्रमाणीकृत होता है, API कुंजी से नहीं:

# Local development
gcloud auth application-default login

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

GKE और Cloud Run पर, Workload Identity किसी कुंजी फ़ाइल के बिना ADC प्रदान करता है।

4. वातावरण से मॉडल बनाएँ

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(())
}

या umbrella crate पर provider auto-detection के माध्यम से:

use adk_rust::provider_from_env;

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

Studio ट्रैफ़िक न होने का सत्यापन

बिल्ड-समय — फ़्लैग चुपचाप कमज़ोर पड़ने के बजाय त्रुटि देता है:

  • truthy फ़्लैग के साथ GeminiModel::from_env और बिना gemini-vertex सुविधा के, सुविधा का नाम बताने वाली त्रुटि लौटती है।
  • GOOGLE_CLOUD_PROJECT या GOOGLE_CLOUD_LOCATION के अनुपस्थित होने पर truthy फ़्लैग, अनुपस्थित चर का नाम बताने वाली त्रुटि लौटाता है।

रनटाइम — सुरक्षा-रेल चेतावनी पर नज़र रखें। provider_from_env इसे तब उत्सर्जित करता है जब कोई Vertex फ़्लैग truthy हो, लेकिन gemini-vertex सुविधा कंपाइल न की गई हो और detection 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)

केवल-Vertex डिप्लॉयमेंट को इस चेतावनी को डिप्लॉयमेंट त्रुटि मानना चाहिए: इसका अर्थ है कि बाइनरी को gemini-vertex सुविधा के बिना बनाया गया था। लॉग एग्रीगेशन में इस पर अलर्ट सेट करें।

नेटवर्क — VPC Service Controls परिधियों के लिए, generativelanguage.googleapis.com तक ईग्रेस को अवरुद्ध करें। फ़्लैग के truthy होने और सुविधा के संकलित होने पर, कोई भी कोड पथ Studio क्लाइंट का निर्माण नहीं करता, इसलिए ADK ट्रैफ़िक के लिए अवरोध कभी सक्रिय नहीं होता।

समस्या निवारण

लक्षणकारणसमाधान
GOOGLE_CLOUD_PROJECT / GOOGLE_CLOUD_LOCATION का नाम बताने वाली त्रुटिफ़्लैग truthy है, Vertex लक्ष्य अधूरा हैदोनों वैरिएबल सेट करें
gemini-vertex सुविधा का नाम बताने वाली त्रुटिफ़्लैग truthy है, सुविधा संकलित नहीं की गई हैadk-rust सुविधाओं में gemini-vertex (या gemini-agent-platform) जोड़ें
गार्ड-रेल चेतावनी दिखाई देती हैprovider_from_env ने API कुंजियों पर वापस लौट गयाgemini-vertex के साथ पुनर्निर्माण करें; पर्यावरण से Studio API कुंजियाँ हटाएँ
अनुरोध के समय प्रमाणीकरण त्रुटियाँADC कॉन्फ़िगर नहीं हैgcloud auth application-default login चलाएँ या GOOGLE_APPLICATION_CREDENTIALS सेट करें