इनपुट के तौर पर टेक्स्ट, इमेज, वीडियो, और ऑडियो देने पर, Gemini API टेक्स्ट आउटपुट जनरेट कर सकता है.
इस गाइड में, generateContent
और streamGenerateContent
तरीकों का इस्तेमाल करके टेक्स्ट जनरेट करने का तरीका बताया गया है. Gemini के विज़न और ऑडियो क्षमताओं के साथ काम करने के बारे में जानने के लिए, विज़न और ऑडियो गाइड देखें.
शुरू करने से पहले: अपना प्रोजेक्ट और एपीआई पासकोड सेट अप करें
Gemini API को कॉल करने से पहले, आपको अपना प्रोजेक्ट सेट अप करना होगा और अपनी एपीआई पासकोड को कॉन्फ़िगर करना होगा.
सिर्फ़ टेक्स्ट वाले इनपुट से टेक्स्ट जनरेट करना
Gemini API का इस्तेमाल करके, टेक्स्ट जनरेट करने का सबसे आसान तरीका यह है कि मॉडल को सिर्फ़ एक टेक्स्ट वाला इनपुट दें, जैसा कि इस उदाहरण में दिखाया गया है:
// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const prompt = "Write a story about a magic backpack.";
const result = await model.generateContent(prompt);
console.log(result.response.text());
इस मामले में, प्रॉम्प्ट ("मैजिक बैकपैक के बारे में कहानी लिखें") में, आउटपुट के उदाहरण, सिस्टम के निर्देश या फ़ॉर्मैटिंग की जानकारी शामिल नहीं होती. यह ज़ीरो-शॉट तरीका है. कुछ इस्तेमाल के उदाहरणों के लिए, एक-शॉट या कुछ-शॉट प्रॉम्प्ट से ऐसा आउटपुट मिल सकता है जो उपयोगकर्ता की उम्मीदों के मुताबिक हो. कुछ मामलों में, मॉडल को टास्क समझने या खास दिशा-निर्देशों का पालन करने में मदद करने के लिए, सिस्टम के निर्देश भी दिए जा सकते हैं.
टेक्स्ट और इमेज के इनपुट से टेक्स्ट जनरेट करना
Gemini API के साथ मल्टीमोडल इनपुट इस्तेमाल किए जा सकते हैं. इनकी मदद से, टेक्स्ट और मीडिया फ़ाइलों को एक साथ जोड़ा जा सकता है. यहां दिए गए उदाहरण में, टेक्स्ट और इमेज इनपुट से टेक्स्ट जनरेट करने का तरीका बताया गया है:
// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
function fileToGenerativePart(path, mimeType) {
return {
inlineData: {
data: Buffer.from(fs.readFileSync(path)).toString("base64"),
mimeType,
},
};
}
const prompt = "Describe how this product might be manufactured.";
// Note: The only accepted mime types are some image types, image/*.
const imagePart = fileToGenerativePart(
`${mediaPath}/jetpack.jpg`,
"image/jpeg",
);
const result = await model.generateContent([prompt, imagePart]);
console.log(result.response.text());
सिर्फ़ टेक्स्ट वाले प्रॉम्प्ट की तरह ही, मल्टीमोडल प्रॉम्प्ट में अलग-अलग तरीके और रिफ़ाइनमेंट का इस्तेमाल किया जा सकता है. इस उदाहरण के आउटपुट के आधार पर, हो सकता है कि आप प्रॉम्प्ट में चरण जोड़ना चाहें या अपने निर्देशों में ज़्यादा सटीक जानकारी दें. ज़्यादा जानने के लिए, फ़ाइल प्रॉम्प्ट भेजने से जुड़ी रणनीतियां देखें.
टेक्स्ट स्ट्रीम जनरेट करना
डिफ़ॉल्ट रूप से, टेक्स्ट जनरेट करने की पूरी प्रोसेस पूरी होने के बाद मॉडल जवाब देता है. पूरे नतीजे का इंतज़ार किए बिना तेज़ी से इंटरैक्शन किया जा सकता है. इसके बजाय, आंशिक नतीजों को मैनेज करने के लिए स्ट्रीमिंग का इस्तेमाल करें.
यहां दिए गए उदाहरण में, सिर्फ़ टेक्स्ट वाले इनपुट प्रॉम्प्ट से टेक्स्ट जनरेट करने के लिए, streamGenerateContent
तरीके का इस्तेमाल करके स्ट्रीमिंग लागू करने का तरीका बताया गया है.
// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const prompt = "Write a story about a magic backpack.";
const result = await model.generateContentStream(prompt);
// Print text as it comes in.
for await (const chunk of result.stream) {
const chunkText = chunk.text();
process.stdout.write(chunkText);
}
इंटरैक्टिव चैट बनाना
अपने उपयोगकर्ताओं के लिए इंटरैक्टिव चैट अनुभव बनाने के लिए, Gemini API का इस्तेमाल किया जा सकता है. एपीआई की चैट सुविधा का इस्तेमाल करके, कई सवालों और जवाबों को इकट्ठा किया जा सकता है. इससे उपयोगकर्ताओं को जवाब पाने में मदद मिलती है या कई हिस्सों वाली समस्याओं के लिए सहायता मिलती है. यह सुविधा उन ऐप्लिकेशन के लिए सबसे सही है जिनमें लगातार बातचीत की ज़रूरत होती है. जैसे, चैटबॉट, इंटरैक्टिव ट्यूटर या ग्राहक सहायता सहायक.
नीचे दिया गया कोड का उदाहरण, चैट को लागू करने का बुनियादी तरीका दिखाता है:
// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const chat = model.startChat({
history: [
{
role: "user",
parts: [{ text: "Hello" }],
},
{
role: "model",
parts: [{ text: "Great to meet you. What would you like to know?" }],
},
],
});
let result = await chat.sendMessage("I have 2 dogs in my house.");
console.log(result.response.text());
result = await chat.sendMessage("How many paws are in my house?");
console.log(result.response.text());
चैट स्ट्रीमिंग की सुविधा चालू करना
चैट के साथ स्ट्रीमिंग की सुविधा का इस्तेमाल भी किया जा सकता है. इसका उदाहरण यहां दिया गया है:
// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const chat = model.startChat({
history: [
{
role: "user",
parts: [{ text: "Hello" }],
},
{
role: "model",
parts: [{ text: "Great to meet you. What would you like to know?" }],
},
],
});
let result = await chat.sendMessageStream("I have 2 dogs in my house.");
for await (const chunk of result.stream) {
const chunkText = chunk.text();
process.stdout.write(chunkText);
}
result = await chat.sendMessageStream("How many paws are in my house?");
for await (const chunk of result.stream) {
const chunkText = chunk.text();
process.stdout.write(chunkText);
}
टेक्स्ट जनरेशन की सुविधा कॉन्फ़िगर करना
मॉडल को भेजे गए हर प्रॉम्प्ट में ऐसे पैरामीटर शामिल होते हैं जिनसे यह कंट्रोल होता है कि मॉडल जवाब कैसे जनरेट करता है. इन पैरामीटर को कॉन्फ़िगर करने के लिए, GenerationConfig
का इस्तेमाल किया जा सकता है. अगर पैरामीटर कॉन्फ़िगर नहीं किए जाते हैं, तो मॉडल डिफ़ॉल्ट विकल्पों का इस्तेमाल करता है. ये विकल्प, मॉडल के हिसाब से अलग-अलग हो सकते हैं.
नीचे दिए गए उदाहरण में, उपलब्ध कई विकल्पों को कॉन्फ़िगर करने का तरीका बताया गया है.
// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModel({
model: "gemini-1.5-flash",
generationConfig: {
candidateCount: 1,
stopSequences: ["x"],
maxOutputTokens: 20,
temperature: 1.0,
},
});
const result = await model.generateContent(
"Tell me a story about a magic backpack.",
);
console.log(result.response.text());
candidateCount
बताता है कि कितने लोगों को जवाब देना है.
फ़िलहाल, इस वैल्यू को सिर्फ़ 1 पर सेट किया जा सकता है. अगर यह सेट नहीं है, तो यह डिफ़ॉल्ट रूप से 1 पर सेट हो जाएगा.
stopSequences
, वर्ण क्रम (ज़्यादा से ज़्यादा पांच) का सेट तय करता है, जो आउटपुट जनरेट होना बंद कर देगा. अगर बताया गया है, तो एपीआई स्टॉपवॉच के पहली बार दिखने पर रुक जाएगा. जवाब के हिस्से के तौर पर, स्टॉप का क्रम शामिल नहीं किया जाएगा.
maxOutputTokens
, किसी कैंडिडेट में शामिल करने के लिए ज़्यादा से ज़्यादा टोकन सेट करता है.
temperature
, आउटपुट की रैंडमनेस को कंट्रोल करता है. ज़्यादा क्रिएटिव जवाबों के लिए ज़्यादा वैल्यू का इस्तेमाल करें. वहीं, ज़्यादा तय जवाबों के लिए कम वैल्यू का इस्तेमाल करें. वैल्यू [0.0, 2.0] के बीच हो सकती हैं.
आप अलग-अलग कॉल को generateContent
पर भी कॉन्फ़िगर कर सकते हैं:
const result = await model.generateContent({
contents: [
{
role: 'user',
parts: [
{
text: prompt,
}
],
}
],
generationConfig: {
maxOutputTokens: 1000,
temperature: 0.1,
},
});
console.log(result.response.text());
अलग-अलग कॉल पर सेट की गई कोई भी वैल्यू, मॉडल कंस्ट्रक्टर की वैल्यू को बदल देती है.
आगे क्या करना है
Gemini API के बारे में बुनियादी बातें जानने के बाद, ये काम किए जा सकते हैं:
- विज़न को समझना: इमेज और वीडियो को प्रोसेस करने के लिए, Gemini के नेटिव विज़न को समझने की सुविधा का इस्तेमाल करने का तरीका जानें.
- सिस्टम के निर्देश: सिस्टम के निर्देशों की मदद से, अपनी ज़रूरतों और इस्तेमाल के उदाहरणों के आधार पर, मॉडल के व्यवहार को कंट्रोल किया जा सकता है.
- ऑडियो की समझ: ऑडियो फ़ाइलों को प्रोसेस करने के लिए, Gemini की ऑडियो रिकॉर्डिंग का इस्तेमाल करने का तरीक़ा जानें.