इफ़ेमरल टोकन, पुष्टि करने के लिए मिलने वाले ऐसे टोकन होते हैं जिनकी समयसीमा कम होती है. इन्हें WebSockets की मदद से Gemini API को ऐक्सेस करने के लिए इस्तेमाल किया जाता है. इन्हें इस तरह से डिज़ाइन किया गया है कि जब सीधे तौर पर उपयोगकर्ता के डिवाइस से एपीआई (क्लाइंट-टू-सर्वर लागू करने) से कनेक्ट किया जा रहा हो, तब सुरक्षा को बेहतर बनाया जा सके. स्टैंडर्ड एपीआई पासकोड की तरह ही, कुछ समय के लिए मान्य रहने वाले टोकन को क्लाइंट-साइड ऐप्लिकेशन से निकाला जा सकता है. जैसे, वेब ब्राउज़र या मोबाइल ऐप्लिकेशन. हालांकि, कुछ समय के लिए बने टोकन की समयसीमा जल्दी खत्म हो जाती है और उन पर पाबंदी लगाई जा सकती है. इसलिए, प्रोडक्शन एनवायरमेंट में सुरक्षा से जुड़े जोखिम काफ़ी कम हो जाते हैं.
कुछ समय के लिए मान्य रहने वाले टोकन कैसे काम करते हैं
यहां बताया गया है कि कुछ समय के लिए बने रहने वाले टोकन, हाई लेवल पर कैसे काम करते हैं:
- आपका क्लाइंट (जैसे, वेब ऐप्लिकेशन) आपके बैकएंड से पुष्टि करता है.
- आपका बैकएंड, Gemini API की प्रोविज़निंग सेवा से कुछ समय के लिए मान्य रहने वाले टोकन का अनुरोध करता है.
- Gemini API, कुछ समय के लिए इस्तेमाल किया जा सकने वाला टोकन जारी करता है.
- आपका बैकएंड, Live API के WebSocket कनेक्शन के लिए क्लाइंट को टोकन भेजता है. ऐसा करने के लिए, अपनी एपीआई कुंजी को कुछ समय के लिए मान्य रहने वाले टोकन से बदलें.
- इसके बाद, क्लाइंट टोकन का इस्तेमाल एपीआई कुंजी की तरह करता है.
इससे सुरक्षा बेहतर होती है, क्योंकि टोकन को निकालने के बाद भी वह कुछ समय के लिए ही काम करता है. यह क्लाइंट-साइड पर डिप्लॉय की गई लंबे समय तक काम करने वाली एपीआई कुंजी से अलग है. क्लाइंट, डेटा को सीधे Gemini पर भेजता है. इससे इंतज़ार का समय भी कम हो जाता है. साथ ही, आपके बैकएंड को रीयल टाइम डेटा को प्रॉक्सी करने की ज़रूरत नहीं पड़ती.
कुछ समय के लिए मान्य टोकन बनाना
Gemini से कुछ समय के लिए मान्य टोकन पाने का आसान तरीका यहां बताया गया है.
डिफ़ॉल्ट रूप से, इस अनुरोध (newSessionExpireTime
) से मिले टोकन का इस्तेमाल करके, नए लाइव एपीआई सेशन शुरू करने के लिए आपके पास एक मिनट होगा. साथ ही, उस कनेक्शन (expireTime
) पर मैसेज भेजने के लिए 30 मिनट होंगे.
Python
import datetime
now = datetime.datetime.now(tz=datetime.timezone.utc)
client = genai.Client(
api_key="GEMINI_API_KEY",
http_options={'api_version': 'v1alpha',}
)
token = client.auth_tokens.create(
config = {
'uses': 1, # The ephemeral token can only be used to start a single session
'expire_time': now + datetime.timedelta(minutes=30), # Default is 30 minutes in the future
# 'expire_time': '2025-05-17T00:00:00Z', # Accepts isoformat.
'new_session_expire_time': now + datetime.timedelta(minutes=1), # Default 1 minute in the future
'http_options': {'api_version': 'v1alpha'},
}
)
# You'll need to pass the value under token.name back to your client to use it
JavaScript
import { GoogleGenAI } from "@google/genai";
const client = new GoogleGenAI({ apiKey: "GEMINI_API_KEY" });
const expireTime = new Date(Date.now() + 30 * 60 * 1000).toISOString();
const token: AuthToken = await client.authTokens.create({
config: {
uses: 1, // The default
expireTime: expireTime // Default is 30 mins
newSessionExpireTime: new Date(Date.now() + (1 * 60 * 1000)), // Default 1 minute in the future
httpOptions: {apiVersion: 'v1alpha'},
},
});
expireTime
वैल्यू की पाबंदियों, डिफ़ॉल्ट वैल्यू, और फ़ील्ड की अन्य खास बातों के लिए, एपीआई रेफ़रंस देखें.
expireTime
समयसीमा के दौरान, आपको हर 10 मिनट में कॉल को फिर से कनेक्ट करने के लिए, sessionResumption
का इस्तेमाल करना होगा. ऐसा, uses: 1
होने पर भी उसी टोकन से किया जा सकता है.
किसी कॉन्फ़िगरेशन के सेट के लिए, कुछ समय के लिए मान्य होने वाले टोकन को लॉक भी किया जा सकता है. यह आपके ऐप्लिकेशन की सुरक्षा को बेहतर बनाने और सिस्टम के निर्देशों को सर्वर साइड पर रखने के लिए मददगार हो सकता है.
Python
client = genai.Client(
api_key="GEMINI_API_KEY",
http_options={'api_version': 'v1alpha',}
)
token = client.auth_tokens.create(
config = {
'uses': 1,
'live_connect_constraints': {
'model': 'gemini-2.0-flash-live-001',
'config': {
'session_resumption':{},
'temperature':0.7,
'response_modalities':['TEXT']
}
},
'http_options': {'api_version': 'v1alpha'},
}
)
# You'll need to pass the value under token.name back to your client to use it
JavaScript
import { GoogleGenAI } from "@google/genai";
const client = new GoogleGenAI({ apiKey: "GEMINI_API_KEY" });
const expireTime = new Date(Date.now() + 30 * 60 * 1000).toISOString();
const token = await client.authTokens.create({
config: {
uses: 1, // The default
expireTime: expireTime,
liveConnectConstraints: {
model: 'gemini-2.0-flash-live-001',
config: {
sessionResumption: {},
temperature: 0.7,
responseModalities: ['TEXT']
}
},
httpOptions: {
apiVersion: 'v1alpha'
}
}
});
// You'll need to pass the value under token.name back to your client to use it
फ़ील्ड के सबसेट को भी लॉक किया जा सकता है. ज़्यादा जानकारी के लिए, SDK टूल का दस्तावेज़ देखें.
कुछ समय के लिए मान्य टोकन की मदद से, Live API से कनेक्ट करना
यहां एक उदाहरण दिया गया है, जिसमें कुछ समय के लिए मान्य रहने वाले टोकन की मदद से Live API से कनेक्ट किया गया है. ध्यान दें कि क्लाइंट-टू-सर्वर लागू करने के तरीके का इस्तेमाल करने वाले ऐप्लिकेशन को डिप्लॉय करने पर ही, कुछ समय के लिए बने रहने वाले टोकन का इस्तेमाल फ़ायदेमंद होता है.
JavaScript
import { GoogleGenAI, Modality } from '@google/genai';
// Use the token generated in the "Create an ephemeral token" section here
const ai = new GoogleGenAI({ apiKey: token.name });
const model = 'gemini-2.0-flash-live-001';
const config = { responseModalities: [Modality.TEXT] };
async function main() {
const session = await ai.live.connect({
model: model,
config: config,
callbacks: { ... },
});
// Send content...
session.close();
}
main();
ज़्यादा उदाहरणों के लिए, Live API का इस्तेमाल शुरू करना लेख पढ़ें.
सबसे सही तरीके
expire_time
पैरामीटर का इस्तेमाल करके, एक्सपायर होने की अवधि को कम सेट करें.- टोकन की समयसीमा खत्म हो जाती है. ऐसे में, प्रावधान की प्रोसेस को फिर से शुरू करना पड़ता है.
- अपने बैकएंड के लिए, सुरक्षित तरीके से पुष्टि करने की सुविधा की पुष्टि करें. कुछ समय के लिए बने रहने वाले टोकन उतने ही सुरक्षित होंगे जितना कि आपके बैकएंड में पुष्टि करने का तरीका.
- आम तौर पर, बैकएंड से Gemini कनेक्शन के लिए, कुछ समय के लिए मान्य रहने वाले टोकन का इस्तेमाल करने से बचें, क्योंकि आम तौर पर इस पाथ को सुरक्षित माना जाता है.
सीमाएं
फ़िलहाल, कुछ समय के लिए बने रहने वाले टोकन सिर्फ़ Live API के साथ काम करते हैं.
आगे क्या करना है
- ज़्यादा जानकारी के लिए, कुछ समय के लिए बने रहने वाले टोकन के बारे में Live API का रेफ़रंस पढ़ें.