इनपुट के तौर पर टेक्स्ट, इमेज, वीडियो, और ऑडियो देने पर, Gemini API टेक्स्ट आउटपुट जनरेट कर सकता है.
इस गाइड में, generateContent
और streamGenerateContent
तरीकों का इस्तेमाल करके टेक्स्ट जनरेट करने का तरीका बताया गया है. Gemini के विज़न और ऑडियो क्षमताओं के साथ काम करने के बारे में जानने के लिए, विज़न और ऑडियो गाइड देखें.
शुरू करने से पहले: अपना प्रोजेक्ट और एपीआई पासकोड सेट अप करना
Gemini API को कॉल करने से पहले, आपको अपना प्रोजेक्ट सेट अप करना होगा और अपनी एपीआई पासकोड को कॉन्फ़िगर करना होगा.
सिर्फ़ टेक्स्ट वाले इनपुट से टेक्स्ट जनरेट करना
Gemini API का इस्तेमाल करके, टेक्स्ट जनरेट करने का सबसे आसान तरीका यह है कि मॉडल को सिर्फ़ एक टेक्स्ट वाला इनपुट दें, जैसा कि इस उदाहरण में दिखाया गया है:
model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Write a story about a magic backpack.")
print(response.text)
इस मामले में, प्रॉम्प्ट ("मैजिक बैकपैक के बारे में कहानी लिखें") में, आउटपुट के उदाहरण, सिस्टम के निर्देश या फ़ॉर्मैटिंग की जानकारी शामिल नहीं होती. यह ज़ीरो-शॉट वाला तरीका है. कुछ इस्तेमाल के उदाहरणों के लिए, एक-शॉट या कुछ-शॉट प्रॉम्प्ट से ऐसा आउटपुट मिल सकता है जो उपयोगकर्ता की उम्मीदों के मुताबिक हो. कुछ मामलों में, आपको सिस्टम से जुड़े निर्देश भी देने चाहिए, ताकि मॉडल को टास्क समझने या खास दिशा-निर्देशों का पालन करने में मदद मिल सके.
टेक्स्ट और इमेज के इनपुट से टेक्स्ट जनरेट करना
Gemini API के साथ मल्टीमोडल इनपुट इस्तेमाल किए जा सकते हैं. इनकी मदद से, टेक्स्ट और मीडिया फ़ाइलों को एक साथ जोड़ा जा सकता है. यहां दिए गए उदाहरण में, टेक्स्ट और इमेज इनपुट से टेक्स्ट जनरेट करने का तरीका बताया गया है:
import PIL.Image
model = genai.GenerativeModel("gemini-1.5-flash")
organ = PIL.Image.open(media / "organ.jpg")
response = model.generate_content(["Tell me about this instrument", organ])
print(response.text)
टेक्स्ट के ज़रिए पूछे जाने वाले सवालों की तरह ही, कई तरीकों से पूछे जाने वाले सवालों में भी कई तरह के तरीके और बेहतर बनाने के सुझाव शामिल हो सकते हैं. इस उदाहरण के आउटपुट के आधार पर, हो सकता है कि आप प्रॉम्प्ट में चरण जोड़ना चाहें या अपने निर्देशों में ज़्यादा सटीक जानकारी दें. ज़्यादा जानने के लिए, फ़ाइल प्रॉम्प्ट भेजने से जुड़ी रणनीतियां देखें.
टेक्स्ट स्ट्रीम जनरेट करना
डिफ़ॉल्ट रूप से, टेक्स्ट जनरेट करने की पूरी प्रोसेस पूरी होने के बाद मॉडल रिस्पॉन्स दिखाता है. पूरे नतीजे का इंतज़ार किए बिना, तेज़ी से इंटरैक्शन किया जा सकता है. इसके लिए, कुछ नतीजों को हैंडल करने के लिए स्ट्रीमिंग का इस्तेमाल करें.
इस उदाहरण में, सिर्फ़ टेक्स्ट वाले इनपुट प्रॉम्प्ट से टेक्स्ट जनरेट करने के लिए, streamGenerateContent
तरीके का इस्तेमाल करके स्ट्रीमिंग को लागू करने का तरीका बताया गया है.
model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Write a story about a magic backpack.", stream=True)
for chunk in response:
print(chunk.text)
print("_" * 80)
एक इंटरैक्टिव चैट बनाएं
अपने उपयोगकर्ताओं के लिए इंटरैक्टिव चैट अनुभव बनाने के लिए, Gemini API का इस्तेमाल किया जा सकता है. एपीआई की चैट सुविधा का इस्तेमाल करके, कई सवालों और जवाबों को इकट्ठा किया जा सकता है. इससे उपयोगकर्ताओं को जवाब पाने में मदद मिलती है या कई हिस्सों वाली समस्याओं के लिए सहायता मिलती है. यह सुविधा उन ऐप्लिकेशन के लिए सबसे सही है जिनमें लगातार बातचीत की ज़रूरत होती है. जैसे, चैटबॉट, इंटरैक्टिव ट्यूटर या ग्राहक सहायता सहायक.
नीचे दिया गया कोड का उदाहरण, चैट को लागू करने का बुनियादी तरीका दिखाता है:
model = genai.GenerativeModel("gemini-1.5-flash")
chat = model.start_chat(
history=[
{"role": "user", "parts": "Hello"},
{"role": "model", "parts": "Great to meet you. What would you like to know?"},
]
)
response = chat.send_message("I have 2 dogs in my house.")
print(response.text)
response = chat.send_message("How many paws are in my house?")
print(response.text)
चैट स्ट्रीमिंग की सुविधा चालू करना
चैट के साथ स्ट्रीमिंग की सुविधा का इस्तेमाल भी किया जा सकता है. इसका उदाहरण यहां दिया गया है:
model = genai.GenerativeModel("gemini-1.5-flash")
chat = model.start_chat(
history=[
{"role": "user", "parts": "Hello"},
{"role": "model", "parts": "Great to meet you. What would you like to know?"},
]
)
response = chat.send_message("I have 2 dogs in my house.", stream=True)
for chunk in response:
print(chunk.text)
print("_" * 80)
response = chat.send_message("How many paws are in my house?", stream=True)
for chunk in response:
print(chunk.text)
print("_" * 80)
print(chat.history)
टेक्स्ट जनरेट करने की सुविधा कॉन्फ़िगर करें
मॉडल को भेजे गए हर प्रॉम्प्ट में ऐसे पैरामीटर शामिल होते हैं जिनसे यह कंट्रोल होता है कि मॉडल जवाब कैसे जनरेट करता है. इन पैरामीटर को कॉन्फ़िगर करने के लिए, GenerationConfig
का इस्तेमाल किया जा सकता है. अगर पैरामीटर कॉन्फ़िगर नहीं किए जाते हैं, तो मॉडल डिफ़ॉल्ट विकल्पों का इस्तेमाल करता है. ये विकल्प, मॉडल के हिसाब से अलग-अलग हो सकते हैं.
नीचे दिए गए उदाहरण में, उपलब्ध कई विकल्पों को कॉन्फ़िगर करने का तरीका बताया गया है.
model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content(
"Tell me a story about a magic backpack.",
generation_config=genai.types.GenerationConfig(
# Only one candidate for now.
candidate_count=1,
stop_sequences=["x"],
max_output_tokens=20,
temperature=1.0,
),
)
print(response.text)
candidateCount
बताता है कि कितने लोगों को जवाब देना है.
फ़िलहाल, इस वैल्यू को सिर्फ़ 1 पर सेट किया जा सकता है. अगर यह सेट नहीं है, तो यह डिफ़ॉल्ट रूप से 1 पर सेट हो जाएगा.
stopSequences
, कैरेक्टर क्रम के सेट (ज़्यादा से ज़्यादा पांच) के बारे में बताता है, जो आउटपुट जनरेशन को रोक देगा. अगर एपीआई को stop_sequence
के दिखने पर रोकना है, तो एपीआई को stop_sequence
के दिखने पर रोक दिया जाएगा. जवाब में स्टॉप का क्रम शामिल नहीं किया जाएगा.
maxOutputTokens
, किसी कैंडिडेट में शामिल करने के लिए ज़्यादा से ज़्यादा टोकन सेट करता है.
temperature
, आउटपुट की रैंडमनेस को कंट्रोल करता है. ज़्यादा क्रिएटिव जवाबों के लिए ज़्यादा वैल्यू का इस्तेमाल करें. वहीं, ज़्यादा तय जवाबों के लिए कम वैल्यू का इस्तेमाल करें. वैल्यू [0.0, 2.0] के बीच हो सकती हैं.
आप अलग-अलग कॉल को generateContent
पर भी कॉन्फ़िगर कर सकते हैं:
response = model.generate_content(
'Write a story about a magic backpack.',
generation_config = genai.GenerationConfig(
max_output_tokens=1000,
temperature=0.1,
)
)
अलग-अलग कॉल पर सेट की गई कोई भी वैल्यू, मॉडल कंस्ट्रक्टर की वैल्यू को बदल देती है.
आगे क्या करना है
Gemini API के बारे में बुनियादी बातें जानने के बाद, ये काम किए जा सकते हैं:
- विज़न को समझना: इमेज और वीडियो को प्रोसेस करने के लिए, Gemini के नेटिव विज़न को समझने की सुविधा का इस्तेमाल करने का तरीका जानें.
- सिस्टम के निर्देश: सिस्टम के निर्देशों की मदद से, अपनी ज़रूरतों और इस्तेमाल के उदाहरणों के आधार पर, मॉडल के व्यवहार को कंट्रोल किया जा सकता है.
- ऑडियो की समझ: ऑडियो फ़ाइलों को प्रोसेस करने के लिए, Gemini की ऑडियो रिकॉर्डिंग का इस्तेमाल करने का तरीक़ा जानें.