Gemini API, इनपुट के तौर पर टेक्स्ट, इमेज, वीडियो, और ऑडियो दिए जाने पर टेक्स्ट आउटपुट जनरेट कर सकता है.
इस गाइड में, generateContent
और streamGenerateContent
तरीकों का इस्तेमाल करके टेक्स्ट जनरेट करने का तरीका बताया गया है. Gemini की विज़न और ऑडियो की सुविधाओं के साथ काम करने के बारे में जानने के लिए, Vision और ऑडियो से जुड़ी गाइड देखें.
सिर्फ़ टेक्स्ट वाले इनपुट से टेक्स्ट जनरेट करना
Gemini API का इस्तेमाल करके टेक्स्ट जनरेट करने का सबसे आसान तरीका यह है कि मॉडल को सिर्फ़ टेक्स्ट वाला एक इनपुट दिया जाए, जैसा कि इस उदाहरण में दिखाया गया है:
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const prompt = "Explain how AI works";
const result = await model.generateContent(prompt);
console.log(result.response.text());
इस मामले में, प्रॉम्प्ट ("एआई कैसे काम करता है, इसकी जानकारी दें") में, आउटपुट के उदाहरण, सिस्टम के निर्देश या फ़ॉर्मैटिंग की जानकारी शामिल नहीं होती. यह ज़ीरो-शॉट वाला तरीका है. कुछ इस्तेमाल के उदाहरणों के लिए, एक-शॉट या कुछ-शॉट प्रॉम्प्ट से ऐसा आउटपुट मिल सकता है जो उपयोगकर्ता की उम्मीदों के मुताबिक हो. कुछ मामलों में, मॉडल को टास्क समझने या खास दिशा-निर्देशों का पालन करने में मदद करने के लिए, सिस्टम के निर्देश भी दिए जा सकते हैं.
टेक्स्ट और इमेज के इनपुट से टेक्स्ट जनरेट करना
Gemini API, अलग-अलग तरह के इनपुट के साथ काम करता है. इनमें टेक्स्ट और मीडिया फ़ाइलें शामिल होती हैं. यहां दिए गए उदाहरण में, टेक्स्ट और इमेज इनपुट से टेक्स्ट जनरेट करने का तरीका बताया गया है:
import { GoogleGenerativeAI } from "@google/generative-ai";
import * as fs from 'node:fs';
const genAI = new GoogleGenerativeAI("GEMINI_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.";
const imagePart = fileToGenerativePart("/path/to/image.png", "image/png");
const result = await model.generateContent([prompt, imagePart]);
console.log(result.response.text());
टेक्स्ट स्ट्रीम जनरेट करना
डिफ़ॉल्ट रूप से, टेक्स्ट जनरेट करने की पूरी प्रोसेस पूरी होने के बाद मॉडल जवाब देता है. पूरे नतीजे का इंतज़ार किए बिना, तेज़ी से इंटरैक्शन किया जा सकता है. इसके लिए, कुछ नतीजों को हैंडल करने के लिए स्ट्रीमिंग का इस्तेमाल करें.
इस उदाहरण में, सिर्फ़ टेक्स्ट वाले इनपुट प्रॉम्प्ट से टेक्स्ट जनरेट करने के लिए, streamGenerateContent
तरीके का इस्तेमाल करके स्ट्रीमिंग को लागू करने का तरीका बताया गया है.
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const prompt = "Explain how AI works";
const result = await model.generateContentStream(prompt);
for await (const chunk of result.stream) {
const chunkText = chunk.text();
process.stdout.write(chunkText);
}
चैट बातचीत बनाना
Gemini SDK की मदद से, सवालों और जवाबों के कई राउंड इकट्ठा किए जा सकते हैं. इससे उपयोगकर्ताओं को जवाब पाने में मदद मिलती है या कई हिस्सों वाली समस्याओं को हल करने में मदद मिलती है. SDK टूल की इस सुविधा से, बातचीत के इतिहास को ट्रैक करने के लिए इंटरफ़ेस मिलता है. हालांकि, जवाब देने के लिए, यह सुविधा भी उसी generateContent
तरीके का इस्तेमाल करती है जिसका इस्तेमाल SDK टूल करता है.
यहां दिए गए कोड के उदाहरण में, चैट को लागू करने का बुनियादी तरीका बताया गया है:
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_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());
let result2 = await chat.sendMessage("How many paws are in my house?");
console.log(result2.response.text());
चैट के साथ स्ट्रीमिंग की सुविधा का इस्तेमाल भी किया जा सकता है. इसका उदाहरण यहां दिया गया है:
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_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);
}
let result2 = await chat.sendMessageStream("How many paws are in my house?");
for await (const chunk of result2.stream) {
const chunkText = chunk.text();
process.stdout.write(chunkText);
}
टेक्स्ट जनरेशन की सुविधा कॉन्फ़िगर करना
मॉडल को भेजे गए हर प्रॉम्प्ट में ऐसे पैरामीटर शामिल होते हैं जिनसे यह कंट्रोल होता है कि मॉडल जवाब कैसे जनरेट करता है. इन पैरामीटर को कॉन्फ़िगर करने के लिए, GenerationConfig
का इस्तेमाल किया जा सकता है. अगर पैरामीटर कॉन्फ़िगर नहीं किए जाते हैं, तो मॉडल डिफ़ॉल्ट विकल्पों का इस्तेमाल करता है. ये विकल्प, मॉडल के हिसाब से अलग-अलग हो सकते हैं.
यहां दिए गए उदाहरण में, उपलब्ध कई विकल्पों को कॉन्फ़िगर करने का तरीका बताया गया है.
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("GEMINI_API_KEY");
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
const result = await model.generateContent({
contents: [
{
role: 'user',
parts: [
{
text: "Explain how AI works",
}
],
}
],
generationConfig: {
maxOutputTokens: 1000,
temperature: 0.1,
}
});
console.log(result.response.text());
सिस्टम के निर्देश जोड़ना
सिस्टम के निर्देशों की मदद से, अपनी ज़रूरतों और इस्तेमाल के उदाहरणों के आधार पर, मॉडल के व्यवहार को कंट्रोल किया जा सकता है.
मॉडल सिस्टम को निर्देश देने पर, मॉडल को टास्क को समझने के लिए ज़्यादा जानकारी मिलती है. इससे, मॉडल उपयोगकर्ता के हिसाब से ज़्यादा जवाब जनरेट कर पाता है. साथ ही, मॉडल के साथ उपयोगकर्ता के पूरे इंटरैक्शन के दौरान, खास दिशा-निर्देशों का पालन भी किया जा सकता है. सिस्टम के निर्देशों को सेट करके, प्रॉडक्ट-लेवल पर व्यवहार के बारे में भी बताया जा सकता है. ये निर्देश, असली उपयोगकर्ताओं के दिए गए प्रॉम्प्ट से अलग होते हैं.
मॉडल को शुरू करते समय, सिस्टम के निर्देश सेट किए जा सकते हैं:
// Set the system instruction during model initialization
const model = genAI.getGenerativeModel({
model: "gemini-1.5-flash",
systemInstruction: "You are a cat. Your name is Neko.",
});
इसके बाद, मॉडल को हमेशा की तरह अनुरोध भेजे जा सकते हैं.
आगे क्या करना है
Gemini API के बुनियादी कामों के बारे में जानने के बाद, ये काम आज़माए जा सकते हैं:
- विज़न को समझना: इमेज और वीडियो को प्रोसेस करने के लिए, Gemini के नेटिव विज़न को समझने की सुविधा का इस्तेमाल करने का तरीका जानें.
- ऑडियो समझने की सुविधा: ऑडियो फ़ाइलों को प्रोसेस करने के लिए, Gemini की ऑडियो समझने की सुविधा का इस्तेमाल करने का तरीका जानें.