Gemini एपीआई कोड को लागू करने की सुविधा की मदद से, मॉडल Python कोड जनरेट और चला सकता है. साथ ही, नतीजों से बार-बार सीखकर, आखिरी आउटपुट तक पहुंच सकता है. कोड लागू करने की इस सुविधा का इस्तेमाल करके, ऐसे ऐप्लिकेशन बनाए जा सकते हैं जो कोड के आधार पर तर्क करने की सुविधा का फ़ायदा लेते हैं और टेक्स्ट आउटपुट देते हैं. उदाहरण के लिए, कोड लागू करने की सुविधा का इस्तेमाल ऐसे ऐप्लिकेशन में किया जा सकता है जो इक्वेशन हल करता है या टेक्स्ट को प्रोसेस करता है.
कोड को लागू करने की सुविधा, AI Studio और Gemini API, दोनों में उपलब्ध है. AI Studio में, टूल में जाकर, दाएं पैनल में कोड को लागू करने की सुविधा चालू की जा सकती है. Gemini API, फ़ंक्शन कॉल की तरह ही, कोड एक्ज़ीक्यूशन को टूल के तौर पर उपलब्ध कराता है. टूल के तौर पर कोड को लागू करने की सुविधा जोड़ने के बाद, मॉडल यह तय करता है कि इसका इस्तेमाल कब किया जाए.
कोड को चलाने के लिए इस्तेमाल किए जाने वाले एनवायरमेंट में ये लाइब्रेरी शामिल हैं:
altair
, chess
, cv2
, matplotlib
, mpmath
, numpy
, pandas
,
pdfminer
, reportlab
, seaborn
, sklearn
, statsmodels
, striprtf
,
sympy
, और tabulate
. अपनी लाइब्रेरी इंस्टॉल नहीं की जा सकतीं.
कोड को लागू करने की सुविधा का इस्तेमाल शुरू करना
कोड चलाने की नोटबुक भी उपलब्ध है:
इस सेक्शन में यह माना गया है कि आपने क्विकस्टार्ट में दिखाए गए सेटअप और कॉन्फ़िगरेशन के चरण पूरे कर लिए हैं.
मॉडल पर कोड चलाने की सुविधा चालू करना
मॉडल पर कोड को लागू करने की सुविधा चालू की जा सकती है, जैसा कि यहां दिखाया गया है:
from google import genai
from google.genai import types
client = genai.Client(api_key="GEMINI_API_KEY ")
response = client.models.generate_content(
model='gemini-2.0-flash',
contents='What is the sum of the first 50 prime numbers? '
'Generate and run code for the calculation, and make sure you get all 50.',
config=types.GenerateContentConfig(
tools=[types.Tool(
code_execution=types.ToolCodeExecution
)]
)
)
नोटबुक में, इस हेल्पर फ़ंक्शन की मदद से, सभी चीज़ों को Markdown फ़ॉर्मैट में दिखाया जा सकता है:
def display_code_execution_result(response):
for part in response.candidates[0].content.parts:
if part.text is not None:
display(Markdown(part.text))
if part.executable_code is not None:
code_html = f'<pre style="background-color: #BBBBEE;">{part.executable_code.code}</pre>' # Change code color
display(HTML(code_html))
if part.code_execution_result is not None:
display(Markdown(part.code_execution_result.output))
if part.inline_data is not None:
display(Image(data=part.inline_data.data, format="png"))
display(Markdown("---"))
display_code_execution_result(response)
आउटपुट कुछ ऐसा दिख सकता है:
ठीक है, मुझे शुरुआती 50 प्राइम नंबरों का जोड़ निकालना है. मैं पहले 50 प्राइम नंबर जनरेट करने के लिए, Python स्क्रिप्ट का इस्तेमाल करूंगा. इसके बाद, उनका योग निकालूंगा.
```python def is_prime(n): """Checks if a number is prime.""" if n <= 1: return False for i in range(2, int(n**0.5) + 1): if n % i == 0: return False return True def sum_of_primes(n): """Calculates the sum of the first n prime numbers.""" primes = [] i = 2 while len(primes) < n: if is_prime(i): primes.append(i) i += 1 return sum(primes) # Calculate the sum of the first 50 prime numbers sum_of_first_50_primes = sum_of_primes(50) print(f"The sum of the first 50 prime numbers is: {sum_of_first_50_primes}") ``` **Output:** ``` The sum of the first 50 prime numbers is: 5117 ```
Chat में कोड चलाने की सुविधा का इस्तेमाल करना
कोड को चैट के हिस्से के तौर पर भी चलाया जा सकता है.
from google import genai
from google.genai import types
client = genai.Client(api_key="GEMINI_API_KEY ")
chat = client.chats.create(
model='gemini-2.0-flash',
config=types.GenerateContentConfig(
tools=[types.Tool(
code_execution=types.ToolCodeExecution
)]
)
)
response = chat.send_message("Can you run some code to bogo-sort this list of numbers?: [2,34,1,65,4]")
display_code_execution_result(response)
बातचीत इस तरह जारी रह सकती है:
हमें पता है कि आपको सूची [2, 34, 1, 65, 4] को बोगो-क्रम में लगाना है. बोगो-सॉर्ट, क्रम से लगाने का एक ऐसा एल्गोरिदम है जो बहुत ही खराब तरीके से काम करता है. यह सुविधा, सूची को तब तक बार-बार शफ़ल करती है, जब तक कि उसे क्रम से नहीं लगाया जाता. इसकी परफ़ॉर्मेंस बहुत खराब है. इसलिए, इसे किसी भी बड़े साइज़ की सूचियों के लिए इस्तेमाल नहीं किया जा सकता.
हालांकि, डेमो के मकसद से, मैं प्रोसेस दिखाने के लिए, कुछ ही बार दोहराए जाने वाले आसान वर्शन को चला सकता हूं. क्या मुझे ऐसा करना चाहिए?
response = chat.send_message("Yes, please create the code.")
display_code_execution_result(response)
ठीक है,मैं एक फ़ंक्शन का इस्तेमाल करके सूची को शफ़ल करूँगी और देखूँगी कि वह क्रम से है या नहीं. मैं इसे ज़्यादा से ज़्यादा 10 बार चलाऊंगा. ...
इनपुट/आउटपुट (I/O)
Gemini 2.0 Flash से, कोड को चलाने की सुविधा में फ़ाइल इनपुट और ग्राफ़ आउटपुट का इस्तेमाल किया जा सकता है. इनपुट और आउटपुट की इन नई सुविधाओं का इस्तेमाल करके, CSV और टेक्स्ट फ़ाइलें अपलोड की जा सकती हैं. साथ ही, इन फ़ाइलों के बारे में सवाल पूछे जा सकते हैं. जवाब के तौर पर, Matplotlib ग्राफ़ जनरेट किए जा सकते हैं.
I/O की कीमत
कोड एक्सीक्यूशन I/O का इस्तेमाल करने पर, आपसे इनपुट टोकन और आउटपुट टोकन के लिए शुल्क लिया जाता है:
इनपुट टोकन:
- उपयोगकर्ता प्रॉम्प्ट
आउटपुट टोकन:
- मॉडल से जनरेट किया गया कोड
- कोड एनवायरमेंट में कोड चलाने का आउटपुट
- मॉडल से जनरेट की गई खास जानकारी
इनपुट/आउटपुट की जानकारी
कोड को लागू करने के I/O के साथ काम करते समय, इन तकनीकी जानकारी के बारे में पता होना चाहिए:
- कोड एनवायरमेंट का रनटाइम ज़्यादा से ज़्यादा 30 सेकंड हो सकता है.
- अगर कोड एनवायरमेंट में कोई गड़बड़ी होती है, तो मॉडल कोड आउटपुट को फिर से जनरेट कर सकता है. ऐसा पांच बार तक हो सकता है.
- फ़ाइल का ज़्यादा से ज़्यादा इनपुट साइज़, मॉडल टोकन विंडो से सीमित होता है. Gemini Flash 2.0 का इस्तेमाल करके, AI Studio में ज़्यादा से ज़्यादा एक करोड़ टोकन की इनपुट फ़ाइल अपलोड की जा सकती है. साथ ही, काम करने वाले इनपुट टाइप की टेक्स्ट फ़ाइलों के लिए, करीब 2 एमबी की इनपुट फ़ाइल अपलोड की जा सकती है. अगर आपने बहुत बड़ी फ़ाइल अपलोड की है, तो AI Studio उसे भेजने की अनुमति नहीं देगा.
एक बार मुड़ना | दोतरफ़ा (मल्टीमोडल लाइव एपीआई) | |
---|---|---|
काम करने वाले मॉडल | Gemini 2.0 के सभी मॉडल | सिर्फ़ फ़्लैश के एक्सपेरिमेंटल मॉडल |
इस्तेमाल किए जा सकने वाले फ़ाइल इनपुट टाइप | .png, .jpeg, .csv, .xml, .cpp, .java, .py, .js, .ts | .png, .jpeg, .csv, .xml, .cpp, .java, .py, .js, .ts |
प्लॉट करने के लिए काम करने वाली लाइब्रेरी | Matplotlib | Matplotlib |
एक से ज़्यादा टूल इस्तेमाल करना | नहीं | हां |
बिलिंग
Gemini API से कोड को लागू करने की सुविधा चालू करने के लिए, कोई अतिरिक्त शुल्क नहीं लिया जाता. आपके इस्तेमाल किए जा रहे Gemini मॉडल के आधार पर, इनपुट और आउटपुट टोकन की मौजूदा दर के हिसाब से आपसे शुल्क लिया जाएगा.
कोड लागू करने के लिए बिलिंग के बारे में यहां कुछ और बातें बताई गई हैं:
- मॉडल को भेजे गए इनपुट टोकन के लिए, आपसे सिर्फ़ एक बार शुल्क लिया जाता है. साथ ही, मॉडल से मिले फ़ाइनल आउटपुट टोकन के लिए भी आपसे शुल्क लिया जाता है.
- जनरेट किए गए कोड को दिखाने वाले टोकन को आउटपुट टोकन के तौर पर गिना जाता है. जनरेट किए गए कोड में टेक्स्ट और मल्टीमोडल आउटपुट, जैसे कि इमेज शामिल हो सकती हैं.
- कोड चलाने के नतीजों को भी आउटपुट टोकन के तौर पर गिना जाता है.
बिलिंग मॉडल इस डायग्राम में दिखाया गया है:
- आपके इस्तेमाल किए जा रहे Gemini मॉडल के आधार पर, इनपुट और आउटपुट टोकन की मौजूदा दर के हिसाब से आपसे शुल्क लिया जाता है.
- अगर Gemini आपका जवाब जनरेट करते समय, कोड को लागू करने की सुविधा का इस्तेमाल करता है, तो ओरिजनल प्रॉम्प्ट, जनरेट किया गया कोड, और लागू किए गए कोड का नतीजा, इंटरमीडिएट टोकन के तौर पर लेबल किया जाता है. साथ ही, इन्हें इनपुट टोकन के तौर पर बिल किया जाता है.
- इसके बाद, Gemini खास जानकारी जनरेट करता है और जनरेट किया गया कोड, चलाए गए कोड का नतीजा, और आखिरी खास जानकारी दिखाता है. इन्हें आउटपुट टोकन के तौर पर बिल किया जाता है.
- Gemini API, एपीआई रिस्पॉन्स में इंटरमीडिएट टोकन की संख्या शामिल करता है, ताकि आपको पता चल सके कि शुरुआती प्रॉम्प्ट के अलावा, आपको अतिरिक्त इनपुट टोकन क्यों मिल रहे हैं.
सीमाएं
- मॉडल सिर्फ़ कोड जनरेट और उसे लागू कर सकता है. यह मीडिया फ़ाइलों जैसे अन्य आर्टफ़ैक्ट नहीं दिखा सकता.
- कुछ मामलों में, कोड को लागू करने से मॉडल के आउटपुट के दूसरे हिस्सों में गिरावट आ सकती है. उदाहरण के लिए, कहानी लिखना.
- अलग-अलग मॉडल, कोड को सही तरीके से लागू करने की सुविधा का इस्तेमाल अलग-अलग तरीके से करते हैं.