Gemini 2.0 Flash, अब एक्सपेरिमेंट के तौर पर रिलीज़ की गई झलक के तौर पर उपलब्ध है. इसे Gemini Developer API और Google AI Studio के ज़रिए ऐक्सेस किया जा सकता है. इस मॉडल में नई सुविधाएं और बेहतर मुख्य सुविधाएं जोड़ी गई हैं:
- मल्टीमोडल लाइव एपीआई: इस नए एपीआई की मदद से, टूल का इस्तेमाल करके रीयल-टाइम विज़न और ऑडियो स्ट्रीमिंग ऐप्लिकेशन बनाए जा सकते हैं.
- स्पीड और परफ़ॉर्मेंस: Gemini 2.0 में, 1.5 Flash की तुलना में, पहले टोकन का समय (टीटीएफ़टी) काफ़ी बेहतर है.
- क्वालिटी: Gemini 1.5 Pro की तुलना में, ज़्यादातर मानदंडों के हिसाब से बेहतर परफ़ॉर्मेंस.
- बेहतर एजेंट की सुविधाएं: Gemini 2.0 में, कई तरीकों से जानकारी समझने, कोडिंग करने, मुश्किल निर्देशों का पालन करने, और फ़ंक्शन कॉल करने की सुविधाओं को बेहतर बनाया गया है.
- नए मोड: Gemini 2.0 में, नेटिव इमेज जनरेट करने की सुविधा और टेक्स्ट को बोली में बदलने की सुविधा शामिल की गई है. साथ ही, इस सुविधा को कंट्रोल भी किया जा सकता है.
डेवलपर को बेहतर अनुभव देने के लिए, हम एक नया SDK टूल भी उपलब्ध करा रहे हैं. Gemini 2.0 के बारे में तकनीकी जानकारी के लिए, Gemini मॉडल देखें.
Google Gen AI SDK (प्रयोग के तौर पर उपलब्ध)
Google का नया जनरेटिव एआई एसडीके, Gemini 2.0 के लिए एक यूनिफ़ाइड इंटरफ़ेस उपलब्ध कराता है. यह इंटरफ़ेस, Vertex AI पर मौजूद Gemini Developer API और Gemini API, दोनों के ज़रिए उपलब्ध होता है. कुछ अपवादों के साथ, एक प्लैटफ़ॉर्म पर चलने वाला कोड, दोनों पर चलेगा. इसका मतलब है कि Developer API का इस्तेमाल करके, किसी ऐप्लिकेशन का प्रोटोटाइप बनाया जा सकता है. इसके बाद, अपने कोड को फिर से लिखे बिना, ऐप्लिकेशन को Vertex AI पर माइग्रेट किया जा सकता है.
Gen AI SDK, Gemini 1.5 मॉडल के साथ भी काम करता है.
नया SDK टूल, Python और Go में उपलब्ध है. यह जल्द ही Java और JavaScript में भी उपलब्ध होगा.
SDK टूल का इस्तेमाल करने के लिए, यहां दिया गया तरीका अपनाएं.
- नया SDK टूल इंस्टॉल करें:
pip install google-genai
- इसके बाद, लाइब्रेरी इंपोर्ट करें, क्लाइंट को शुरू करें, और कॉन्टेंट जनरेट करें:
from google import genai
client = genai.Client(
api_key="YOUR_API_KEY"
)
response = client.models.generate_content(
model='gemini-2.0-flash-exp', contents='How does AI work?'
)
print(response.text)
(ज़रूरी नहीं) एनवायरमेंट वैरिएबल सेट करना
इसके अलावा, एनवायरमेंट वैरिएबल का इस्तेमाल करके भी क्लाइंट को शुरू किया जा सकता है. सबसे पहले, सही वैल्यू सेट करें और वैरिएबल एक्सपोर्ट करें:
# Replace `YOUR_API_KEY` with your API key.
export GOOGLE_API_KEY=YOUR_API_KEY
इसके बाद, बिना किसी आर्ग्युमेंट के क्लाइंट को शुरू किया जा सकता है:
client = genai.Client()
Python डेवलपर, कुकबुक में शुरू करने के लिए नोटबुक भी आज़मा सकते हैं.
Multimodal Live API
मल्टीमोडल लाइव एपीआई की मदद से, Gemini के साथ कम इंतज़ार के साथ, दोनों तरफ़ से आवाज़ और वीडियो के ज़रिए इंटरैक्ट किया जा सकता है. Multimodal Live API का इस्तेमाल करके, उपयोगकर्ताओं को इंसानों जैसी आवाज़ में बातचीत करने का अनुभव दिया जा सकता है. साथ ही, वॉइस कमांड का इस्तेमाल करके मॉडल के जवाबों में रुकावट डाली जा सकती है. यह मॉडल, टेक्स्ट, ऑडियो, और वीडियो इनपुट को प्रोसेस कर सकता है. साथ ही, यह टेक्स्ट और ऑडियो आउटपुट दे सकता है.
मल्टीमोडल लाइव एपीआई, Gemini API में BidiGenerateContent
तरीके के तौर पर उपलब्ध है. इसे WebSockets पर बनाया गया है.
from google import genai
client = genai.Client(http_options={'api_version': 'v1alpha'})
model_id = "gemini-2.0-flash-exp"
config = {"response_modalities": ["TEXT"]}
async with client.aio.live.connect(model=model_id, config=config) as session:
message = "Hello? Gemini, are you there?"
print("> ", message, "\n")
await session.send(message, end_of_turn=True)
async for response in session.receive():
print(response.text)
मुख्य सुविधाएं:
- मल्टीमोडलिटी: मॉडल देख सकता है, सुन सकता है, और बोल सकता है.
- वीडियो स्ट्रीम होने और उसके दिखने के समय का अंतर बहुत कम करें: इससे तुरंत जवाब मिलते हैं.
- सेशन मेमोरी: मॉडल, किसी एक सेशन में हुए सभी इंटरैक्शन की जानकारी सेव रखता है. इससे, पहले सुनी या देखी गई जानकारी को याद किया जा सकता है.
- टूल के तौर पर फ़ंक्शन कॉल करने, कोड को लागू करने, और Search के लिए सहायता: बाहरी सेवाओं और डेटा सोर्स के साथ इंटिग्रेशन की सुविधा चालू करता है.
- ऑटोमेटेड वॉइस ऐक्टिविटी डिटेक्शन (वीएडी): यह मॉडल, उपयोगकर्ता के बोलने और बोलना बंद करने के समय की सटीक जानकारी दे सकता है. इससे, बातचीत के तौर पर स्वाभाविक तरीके से इंटरैक्ट किया जा सकता है. साथ ही, उपयोगकर्ता किसी भी समय मॉडल को बीच में रोक सकते हैं.
भाषा:
- सिर्फ़ अंग्रेज़ी
सीमाएं:
- ऑडियो इनपुट और ऑडियो आउटपुट, दोनों का फ़ंक्शन कॉल करने की मॉडल की क्षमता पर बुरा असर पड़ता है.
एपीआई की क्षमताओं और सीमाओं के बारे में ज़्यादा जानने के लिए, मल्टीमोडल लाइव एपीआई की रेफ़रंस गाइड देखें.
मल्टीमॉडल लाइव एपीआई को Google AI Studio में आज़माया जा सकता है. डेवलपमेंट शुरू करने के लिए, React में लिखे गए वेब कंसोल को आज़माएं. Python डेवलपर के लिए, शुरुआती कोड (नोटबुक और .py फ़ाइल) आज़माएं. आपको नोटबुक का इस्तेमाल करना सबसे आसान लग सकता है, लेकिन लाइव एपीआई को टर्मिनल से चलाने पर बेहतर परफ़ॉर्म करता है.
खोज के तौर पर इस्तेमाल करना
Google Search के साथ ग्राउंडिंग का इस्तेमाल करके, मॉडल के जवाबों को ज़्यादा सटीक और अप-टू-डेट बनाया जा सकता है. Gemini 2.0 से, Google Search एक टूल के तौर पर उपलब्ध है. इसका मतलब है कि मॉडल यह तय कर सकता है कि Google Search का इस्तेमाल कब करना है. यहां दिए गए उदाहरण में, Search को टूल के तौर पर कॉन्फ़िगर करने का तरीका बताया गया है.
from google import genai
from google.genai.types import Tool, GenerateContentConfig, GoogleSearch
client = genai.Client()
model_id = "gemini-2.0-flash-exp"
google_search_tool = Tool(
google_search = GoogleSearch()
)
response = client.models.generate_content(
model=model_id,
contents="When is the next total solar eclipse in the United States?",
config=GenerateContentConfig(
tools=[google_search_tool],
response_modalities=["TEXT"],
)
)
for each in response.candidates[0].content.parts:
print(each.text)
# Example response:
# The next total solar eclipse visible in the contiguous United States will be on ...
# To get grounding metadata as web content.
print(response.candidates[0].grounding_metadata.search_entry_point.rendered_content)
'खोज को टूल के तौर पर इस्तेमाल करना' सुविधा की मदद से, एक से ज़्यादा बार की जाने वाली खोजें और एक से ज़्यादा टूल की क्वेरी भी की जा सकती हैं. उदाहरण के लिए, Google Search और कोड को लागू करने के साथ ग्राउंडिंग को जोड़ना.
Search को टूल के तौर पर इस्तेमाल करके, जटिल प्रॉम्प्ट और वर्कफ़्लो बनाए जा सकते हैं. इनके लिए, प्लान बनाने, तर्क करने, और सोचने की ज़रूरत होती है:
- ज़्यादा सटीक जवाब देने के लिए, ज़्यादा सटीक और हाल ही की जानकारी देना
- आगे विश्लेषण करने के लिए, वेब से आर्टफ़ैक्ट वापस लाना
- मल्टीमोडल रीज़निंग या जनरेशन टास्क में मदद करने के लिए, काम की इमेज, वीडियो या अन्य मीडिया ढूंढना
- कोडिंग, तकनीकी समस्या हल करना, और अन्य खास काम
- इलाके के हिसाब से जानकारी ढूंढना या कॉन्टेंट का सटीक अनुवाद करने में मदद करना
- आगे ब्राउज़ करने के लिए काम की वेबसाइटें ढूंढना
Search टूल की नोटबुक आज़माकर, इसका इस्तेमाल शुरू किया जा सकता है.
बेहतर टूल
Gemini 2.0 में फ़ंक्शन कॉलिंग और टूल को बेहतर बनाया गया है. इससे एजेंट के अनुभव को बेहतर बनाने में मदद मिलती है.
कंपज़िशनल फ़ंक्शन कॉल करना
Gemini 2.0 में, फ़ंक्शन कॉल करने की नई सुविधा काम करती है:
कंपोज़िशनल फ़ंक्शन कॉलिंग. कॉम्पोज़िशनल फ़ंक्शन कॉलिंग की मदद से, Gemini API, रिस्पॉन्स जनरेट करने की प्रोसेस में, उपयोगकर्ता के तय किए गए कई फ़ंक्शन अपने-आप चालू कर सकता है. उदाहरण के लिए, "Get the temperature in my current location"
प्रॉम्प्ट का जवाब देने के लिए, Gemini API, get_current_location()
फ़ंक्शन और get_weather()
फ़ंक्शन, दोनों को एक साथ इस्तेमाल कर सकता है. get_weather()
फ़ंक्शन, जगह की जानकारी को पैरामीटर के तौर पर इस्तेमाल करता है.
कोड को लागू करने के साथ कंपज़िशनल फ़ंक्शन को कॉल करने के लिए, दोनों तरफ़ की स्ट्रीमिंग की ज़रूरत होती है. यह सुविधा सिर्फ़ नए मल्टीमोडल लाइव एपीआई के साथ काम करती है. यहां एक उदाहरण दिया गया है, जिसमें दिखाया गया है कि कॉम्पोज़िशनल फ़ंक्शन कॉलिंग, कोड को लागू करने, और मल्टीमोडल लाइव एपीआई का एक साथ इस्तेमाल कैसे किया जा सकता है:
turn_on_the_lights_schema = {'name': 'turn_on_the_lights'}
turn_off_the_lights_schema = {'name': 'turn_off_the_lights'}
prompt = """
Hey, can you write run some python code to turn on the lights, wait 10s and then turn off the lights?
"""
tools = [
{'code_execution': {}},
{'function_declarations': [turn_on_the_lights_schema, turn_off_the_lights_schema]}
]
await run(prompt, tools=tools, modality="AUDIO")
Python डेवलपर, लाइव एपीआई टूल के इस्तेमाल से जुड़ी नोटबुक में इसे आज़मा सकते हैं.
एक से ज़्यादा टूल का इस्तेमाल
Gemini 2.0 की मदद से, एक साथ कई टूल चालू किए जा सकते हैं. साथ ही, मॉडल यह तय करेगा कि उन्हें कब कॉल करना है. यहां एक उदाहरण दिया गया है, जिसमें Multimodal Live API का इस्तेमाल करके किए गए अनुरोध में, Google Search की मदद से ग्राउंडिंग और कोड को लागू करने वाले दो टूल चालू किए गए हैं.
prompt = """
Hey, I need you to do three things for me.
1. Turn on the lights.
2. Then compute the largest prime palindrome under 100000.
3. Then use Google Search to look up information about the largest earthquake in California the week of Dec 5 2024.
Thanks!
"""
tools = [
{'google_search': {}},
{'code_execution': {}},
{'function_declarations': [turn_on_the_lights_schema, turn_off_the_lights_schema]}
]
await run(prompt, tools=tools, modality="AUDIO")
Python डेवलपर, लाइव एपीआई टूल के इस्तेमाल से जुड़ी नोटबुक में इसे आज़मा सकते हैं.
बाउंडिंग बॉक्स का पता लगाना
इस एक्सपेरिमेंट के तौर पर लॉन्च किए गए टूल की मदद से, डेवलपर इमेज और वीडियो में ऑब्जेक्ट का पता लगा सकते हैं. साथ ही, ऑब्जेक्ट की जगह की जानकारी भी पा सकते हैं. बॉउंडिंग बॉक्स की मदद से ऑब्जेक्ट की सटीक पहचान करके और उन्हें अलग-अलग दिखाकर, डेवलपर कई तरह के ऐप्लिकेशन बना सकते हैं. साथ ही, अपने प्रोजेक्ट को ज़्यादा बेहतर बना सकते हैं.
मुख्य फ़ायदे:
- आसान: अपने ऐप्लिकेशन में ऑब्जेक्ट की पहचान करने की सुविधाओं को आसानी से इंटिग्रेट करें. भले ही, आपके पास कंप्यूटर विज़न की विशेषज्ञता न हो.
- पसंद के मुताबिक बनाया जा सकता है: कस्टम निर्देशों (उदाहरण के लिए, "मुझे इस इमेज में हरे रंग के सभी ऑब्जेक्ट के बॉउंडिंग बॉक्स देखने हैं") के आधार पर बॉउंडिंग बॉक्स बनाए जा सकते हैं. इसके लिए, आपको कस्टम मॉडल को ट्रेन करने की ज़रूरत नहीं है.
तकनीकी जानकारी:
- इनपुट: आपका प्रॉम्प्ट और उससे जुड़ी इमेज या वीडियो फ़्रेम.
- आउटपुट:
[y_min, x_min, y_max, x_max]
फ़ॉर्मैट में बॉउंडिंग बॉक्स. सबसे ऊपर बाईं ओर ऑरिजिन होता है.x
औरy
ऐक्सिस, क्रमशः हॉरिज़ॉन्टल और वर्टिकल होते हैं. हर इमेज के लिए, कोऑर्डिनेट वैल्यू को 0 से 1,000 के बीच सामान्य किया जाता है. - विज़ुअलाइज़ेशन: AI Studio के उपयोगकर्ताओं को यूज़र इंटरफ़ेस में प्लॉट किए गए बॉर्डर बॉक्स दिखेंगे. Vertex AI के उपयोगकर्ताओं को कस्टम विज़ुअलाइज़ेशन कोड की मदद से, अपने बाउंडिंग बॉक्स को विज़ुअलाइज़ करना चाहिए.
Python डेवलपर के लिए, 2D स्पेसियल समझने वाली नोटबुक या एक्सपेरिमेंट के तौर पर उपलब्ध 3D पॉइंटिंग वाली नोटबुक आज़माएं.
लिखाई को बोली में बदलने की सुविधा (रिलीज़ होने से पहले इस्तेमाल करने की सुविधा/अनुमति वाली सूची)
Gemini 2.0 में, टेक्स्ट को बोली में बदलने की सुविधा है.
टेक्स्ट को बोली में बदलने की सुविधा का इस्तेमाल करके, मॉडल को ऐसी अच्छी क्वालिटी का ऑडियो आउटपुट जनरेट करने के लिए कहा जा सकता है जो इंसान की आवाज़ (say "hi everyone"
) जैसा लगे. साथ ही, आवाज़ को बेहतर बनाने के लिए, उसमें बदलाव भी किया जा सकता है.
इमेज जनरेट करने की सुविधा (रिलीज़ होने से पहले इस्तेमाल करने की सुविधा/अनुमति वाली सूची)
Gemini 2.0, इन-लाइन इमेज के साथ टेक्स्ट आउटपुट करने की सुविधा देता है. इससे, Gemini का इस्तेमाल करके बातचीत के ज़रिए इमेज में बदलाव किया जा सकता है या अलग-अलग तरह के आउटपुट जनरेट किए जा सकते हैं. उदाहरण के लिए, एक ही बार में टेक्स्ट और इमेज वाली ब्लॉग पोस्ट. पहले, ऐसा करने के लिए कई मॉडल को एक साथ जोड़ना पड़ता था.
इमेज जनरेट करने की सुविधा, निजी तौर पर एक्सपेरिमेंट के तौर पर उपलब्ध है. यह इन तरीकों और सुविधाओं के साथ काम करता है:
- टेक्स्ट से इमेज जनरेट करने की प्रोसेस
- प्रॉम्प्ट का उदाहरण: "आइफ़िल टावर की ऐसी इमेज जनरेट करें जिसके बैकग्राउंड में आतिशबाजी हो."
- टेक्स्ट को इमेज और टेक्स्ट में बदलना (इंटरलीव किया गया)
- प्रॉम्प्ट का उदाहरण: "पेल्हा की इमेज वाली रेसिपी जनरेट करें."
- इमेज और टेक्स्ट को इमेज और टेक्स्ट (इंटरलीव) में बदलना
- प्रॉम्प्ट का उदाहरण: (फ़र्निश किए गए कमरे की इमेज के साथ) "मेरे कमरे में किस रंग के सोफ़े अच्छे लगेंगे? क्या इमेज को अपडेट किया जा सकता है?"
- इमेज में बदलाव करना (टेक्स्ट और इमेज को इमेज में बदलना)
- प्रॉम्प्ट का उदाहरण: "इस इमेज में बदलाव करके, उसे कार्टून जैसा बनाएं"
- प्रॉम्प्ट का उदाहरण: [बिल्ली की इमेज] + [तकिए की इमेज] + "इस तकिए पर मेरी बिल्ली की क्रॉस सिलाई वाली इमेज बनाओ."
- एक से ज़्यादा बार इमेज में बदलाव करना (चैट)
- प्रॉम्प्ट के उदाहरण: [नीली कार की इमेज अपलोड करें.] "इस कार को कन्वर्टिबल में बदलें." "अब रंग को पीले में बदलें."
- वॉटरमार्क जोड़ने की सुविधा (synthID)
सीमाएं:
- लोगों की इमेज जनरेट करने और अपलोड की गई लोगों की इमेज में बदलाव करने की अनुमति नहीं है.
- बेहतर परफ़ॉर्मेंस के लिए, इन भाषाओं का इस्तेमाल करें: EN, es-MX, ja-JP, zh-CN, hi-IN.
- इमेज जनरेशन में ऑडियो या वीडियो इनपुट का इस्तेमाल नहीं किया जा सकता.
- ऐसा हो सकता है कि इमेज जनरेट करने की सुविधा हमेशा ट्रिगर न हो:
- मॉडल सिर्फ़ टेक्स्ट आउटपुट कर सकता है. इमेज के आउटपुट के लिए साफ़ तौर पर पूछें. उदाहरण के लिए, "इमेज जनरेट करें", "आगे बढ़ते समय इमेज दें", "इमेज अपडेट करें".
- मॉडल, डेटा जनरेट करने की प्रोसेस बीच में ही रोक सकता है. फिर से कोशिश करें या कोई दूसरा प्रॉम्प्ट आज़माएं.