Gemini API की खास जानकारी

Gemini API से आपको Google के नए जनरेटिव मॉडल का ऐक्सेस मिलता है. एपीआई में उपलब्ध सामान्य सुविधाओं के बारे में जानने के बाद, अपनी पसंद की भाषा के लिए ट्यूटोरियल देखें, ताकि उसे डेवलप करना शुरू किया जा सके.

मॉडल

Gemini, मल्टीमोडल जनरेटिव एआई मॉडल की एक सीरीज़ है. इन्हें Google ने बनाया है. Gemini मॉडल, प्रॉम्प्ट में टेक्स्ट और इमेज को स्वीकार कर सकते हैं. यह इस बात पर निर्भर करता है कि आपने कौनसा मॉडल चुना है और आउटपुट टेक्स्ट रिस्पॉन्स क्या हैं.

मॉडल की ज़्यादा जानकारी पाने के लिए, Gemini मॉडल पेज पर जाएं. सभी उपलब्ध मॉडल की सूची बनाने के लिए, list_models तरीके का इस्तेमाल किया जा सकता है. इसके बाद, किसी खास मॉडल का मेटाडेटा पाने के लिए, get_model तरीके का इस्तेमाल किया जा सकता है.

प्रॉम्प्ट से जुड़ा डेटा और डिज़ाइन

कुछ खास Gemini मॉडल, टेक्स्ट डेटा और मीडिया फ़ाइल, दोनों को इनपुट के तौर पर इस्तेमाल कर सकते हैं. इस क्षमता से कॉन्टेंट जनरेट करने, डेटा का विश्लेषण करने, और समस्याओं को हल करने की कई अतिरिक्त संभावनाएं मिलती हैं. कुछ सीमाएं और ज़रूरी शर्तें हैं, जिन पर ध्यान दिया जाना चाहिए. इनमें इस्तेमाल किए जा रहे मॉडल के लिए, सामान्य इनपुट टोकन की सीमा भी शामिल है. कुछ खास मॉडल के लिए टोकन की सीमाओं के बारे में जानने के लिए, Gemini मॉडल देखें.

Gemini API का इस्तेमाल करने वाले प्रॉम्प्ट का साइज़ 20 एमबी से ज़्यादा नहीं होना चाहिए. Gemini API, फ़ाइल एपीआई की सुविधा देता है. इसकी मदद से, प्रॉम्प्ट में इस्तेमाल करने के लिए मीडिया फ़ाइलों को कुछ समय के लिए सेव किया जा सकता है. इसकी मदद से, 20 एमबी की तय सीमा से ज़्यादा प्रॉम्प्ट डेटा उपलब्ध कराया जा सकता है. प्रॉम्प्ट देने के लिए काम करने वाले फ़ाइल फ़ॉर्मैट और Files API के इस्तेमाल के बारे में ज़्यादा जानकारी के लिए, मीडिया फ़ाइलों से अनुरोध करना देखें.

प्रॉम्प्ट डिज़ाइन और टेक्स्ट इनपुट

असरदार प्रॉम्प्ट बनाना या प्रॉम्प्ट इंजीनियरिंग में मदद करना, कला और विज्ञान का मिला-जुला रूप है. प्रॉम्प्ट भेजने का तरीका जानने के लिए, प्रॉम्प्ट करने की जानकारी पर जाएं और प्रॉम्प्ट के अलग-अलग तरीकों के बारे में जानने के लिए, प्रॉम्प्ट 101 गाइड देखें.

कॉन्टेंट जनरेट करें

Gemini API की मदद से आपको प्रॉम्प्ट के लिए, टेक्स्ट और इमेज, दोनों का डेटा मिल सकता है. हालांकि, यह इस बात पर निर्भर करता है कि आपने कौनसा मॉडल वैरिएशन इस्तेमाल किया है. उदाहरण के लिए, gemini-pro मॉडल वाले टेक्स्ट प्रॉम्प्ट का इस्तेमाल करके टेक्स्ट जनरेट किया जा सकता है. साथ ही, gemini-pro-vision मॉडल का अनुरोध करने के लिए, टेक्स्ट और इमेज डेटा, दोनों का इस्तेमाल किया जा सकता है. इस सेक्शन में, सभी तरीकों के आसान उदाहरण दिए गए हैं. सभी पैरामीटर को कवर करने वाले ज़्यादा जानकारी के लिए, generateContent एपीआई का रेफ़रंस देखें.

टेक्स्ट और इमेज इनपुट

आंखों की रोशनी से जुड़ा कोई टास्क पूरा करने के लिए, gemini-pro-vision मॉडल पर इमेज के साथ टेक्स्ट प्रॉम्प्ट भेजा जा सकता है. उदाहरण के लिए, इमेज को कैप्शन देना या इमेज में मौजूद लोगों की पहचान करना.

कोड के इन उदाहरणों में, इस्तेमाल की जा सकने वाली हर भाषा के लिए टेक्स्ट और इमेज प्रॉम्प्ट को आसानी से लागू करने का तरीका बताया गया है:

Python

model = genai.GenerativeModel('gemini-pro-vision')

cookie_picture = [{
    'mime_type': 'image/png',
    'data': pathlib.Path('cookie.png').read_bytes()
}]
prompt = "Do these look store-bought or homemade?"

response = model.generate_content(
    model="gemini-pro-vision",
    content=[prompt, cookie_picture]
)
print(response.text)

पूरा कोड स्निपेट देखने के लिए, Python ट्यूटोरियल देखें.

शुरू करें

vmodel := client.GenerativeModel("gemini-pro-vision")

data, err := os.ReadFile(filepath.Join("path-to-image", imageFile))
if err != nil {
  log.Fatal(err)
}
resp, err := vmodel.GenerateContent(ctx, genai.Text("Do these look store-bought or homemade?"), genai.ImageData("jpeg", data))
if err != nil {
  log.Fatal(err)
}

पूरे उदाहरण के लिए ट्यूटोरियल देखें.

Node.js

const model = genAI.getGenerativeModel({ model: "gemini-pro-vision" });

const prompt = "Do these look store-bought or homemade?";
const image = {
  inlineData: {
    data: Buffer.from(fs.readFileSync("cookie.png")).toString("base64"),
    mimeType: "image/png",
  },
};

const result = await model.generateContent([prompt, image]);
console.log(result.response.text());

पूरे उदाहरण के लिए, Node.js ट्यूटोरियल देखें.

वेब

const model = genAI.getGenerativeModel({ model: "gemini-pro-vision" });

const prompt = "Do these look store-bought or homemade?";
const image = {
  inlineData: {
    data: base64EncodedImage /* see JavaScript quickstart for details */,
    mimeType: "image/png",
  },
};

const result = await model.generateContent([prompt, image]);
console.log(result.response.text());

पूरे उदाहरण के लिए वेब ट्यूटोरियल देखें.

डार्ट (फ़्लटर)

final model = GenerativeModel(model: 'gemini-pro-vision', apiKey: apiKey);
final prompt = 'Do these look store-bought or homemade?';
final imageBytes = await File('cookie.png').readAsBytes();
final content = [
  Content.multi([
    TextPart(prompt),
    DataPart('image/png', imageBytes),
  ])
];

final response = await model.generateContent(content);
print(response.text);

उदाहरण के लिए, Dart (Flutter) ट्यूटोरियल देखें.

Swift

let model = GenerativeModel(name: "gemini-pro-vision", apiKey: "API_KEY")
let cookieImage = UIImage(...)
let prompt = "Do these look store-bought or homemade?"

let response = try await model.generateContent(prompt, cookieImage)

पूरे उदाहरण के लिए Swift ट्यूटोरियल देखें.

Android

val generativeModel = GenerativeModel(
    modelName = "gemini-pro-vision",
    apiKey = BuildConfig.apiKey
)

val cookieImage: Bitmap = // ...
val inputContent = content() {
  image(cookieImage)
  text("Do these look store-bought or homemade?")
}

val response = generativeModel.generateContent(inputContent)
print(response.text)

पूरे उदाहरण के लिए Android ट्यूटोरियल देखें.

cURL

curl https://generativelanguage.googleapis.com/v1/models/gemini-pro-vision:generateContent?key=${API_KEY} \
    -H 'Content-Type: application/json' \
    -X POST \
    -d @<(echo'{
          "contents":[
            { "parts":[
                {"text": "Do these look store-bought or homemade?"},
                { "inlineData": {
                    "mimeType": "image/png",
                    "data": "'$(base64 -w0 cookie.png)'"
                  }
                }
              ]
            }
          ]
         }')

ज़्यादा जानकारी के लिए, REST API का ट्यूटोरियल देखें.

सिर्फ़ टेक्स्ट इनपुट

Gemini API, सिर्फ़ टेक्स्ट वाले इनपुट को भी मैनेज कर सकता है. इस सुविधा की मदद से, नैचुरल लैंग्वेज प्रोसेसिंग (एनएलपी) से जुड़े टास्क किए जा सकते हैं. जैसे, टेक्स्ट पूरा करना और खास जानकारी देना.

यहां दिए गए कोड के उदाहरणों में, इस्तेमाल की जा सकने वाली हर भाषा के लिए, सिर्फ़ टेक्स्ट वाले प्रॉम्प्ट को आसानी से लागू करने का तरीका बताया गया है:

Python

model = genai.GenerativeModel('gemini-pro-vision')

prompt = "Write a story about a magic backpack."

response = model.generate_content(prompt)

पूरे उदाहरण के लिए Python ट्यूटोरियल देखें.

शुरू करें

ctx := context.Background()
client, err := genai.NewClient(ctx, option.WithAPIKey(os.Getenv("API_KEY")))
if err != nil {
  log.Fatal(err)
}
defer client.Close()

model := client.GenerativeModel("gemini-pro")
resp, err := model.GenerateContent(ctx, genai.Text("Write a story about a magic backpack."))
if err != nil {
  log.Fatal(err)
}

पूरे उदाहरण के लिए ट्यूटोरियल देखें.

Node.js

const model = genAI.getGenerativeModel({ model: "gemini-pro" });
const prompt = "Write a story about a magic backpack.";

const result = await model.generateContent(prompt);
console.log(result.response.text());

पूरे उदाहरण के लिए, Node.js ट्यूटोरियल देखें.

वेब

const model = genAI.getGenerativeModel({ model: "gemini-pro" });
const prompt = "Write a story about a magic backpack.";

const result = await model.generateContent(prompt);
console.log(result.response.text());

पूरे उदाहरण के लिए वेब ट्यूटोरियल देखें.

डार्ट (फ़्लटर)

final model = GenerativeModel(model: 'gemini-pro', apiKey: apiKey);
final prompt = 'Write a story about a magic backpack.';
final content = [Content.text(prompt)];
final response = await model.generateContent(content);
print(response.text);

उदाहरण के लिए, Dart (Flutter) ट्यूटोरियल देखें.

Swift

let model = GenerativeModel(name: "gemini-pro", apiKey: "API_KEY")
let prompt = "Write a story about a magic backpack."

let response = try await model.generateContent(prompt)

पूरे उदाहरण के लिए Swift ट्यूटोरियल देखें.

Android

val generativeModel = GenerativeModel(
    modelName = "gemini-pro",
    apiKey = BuildConfig.apiKey
)

val prompt = "Write a story about a magic backpack."
val response = generativeModel.generateContent(prompt)
print(response.text)

पूरे उदाहरण के लिए Android ट्यूटोरियल देखें.

cURL

curl https://generativelanguage.googleapis.com/v1/models/gemini-pro:generateContent?key=$API_KEY \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{ "contents":[
      { "parts":[{"text": "Write a story about a magic backpack"}]}
    ]
}'

ज़्यादा जानकारी के लिए, REST API का ट्यूटोरियल देखें.

एक से ज़्यादा टर्न वाली बातचीत (चैट)

Gemini API का इस्तेमाल करके, लोगों को इंटरैक्टिव चैट का अनुभव दिया जा सकता है. एपीआई की चैट सुविधा का इस्तेमाल करके, कई राउंड में सवाल और जवाब इकट्ठा किए जा सकते हैं. इससे, उपयोगकर्ता धीरे-धीरे जवाब की ओर जा सकते हैं या कई हिस्सों में होने वाली समस्याओं को हल करने में मदद पा सकते हैं. यह सुविधा उन ऐप्लिकेशन के लिए बहुत काम की है जिन पर लगातार बातचीत की ज़रूरत होती है. जैसे, चैटबॉट, इंटरैक्टिव ट्यूटर या ग्राहक सहायता असिस्टेंट.

नीचे दिए गए कोड के उदाहरणों में, इस्तेमाल की जा सकने वाली हर भाषा के लिए चैट इंटरैक्शन को आसानी से लागू करने का तरीका बताया गया है:

Python

  model = genai.GenerativeModel('gemini-pro')
  chat = model.start_chat(history=[])

  response = chat.send_message(
      "Pretend you\'re a snowman and stay in character for each response.")
  print(response.text)

  response = chat.send_message(
      "What\'s your favorite season of the year?")
  print(response.text)

उदाहरण के लिए, Python ट्यूटोरियल में चैट डेमो देखें.

शुरू करें

model := client.GenerativeModel("gemini-pro")
cs := model.StartChat()
cs.History = []*genai.Content{
  &genai.Content{
    Parts: []genai.Part{
      genai.Text("Pretend you're a snowman and stay in character for each response."),
    },
    Role: "user",
  },
  &genai.Content{
    Parts: []genai.Part{
      genai.Text("Hello! It's cold! Isn't that great?"),
    },
    Role: "model",
  },
}

resp, err := cs.SendMessage(ctx, genai.Text("What's your favorite season of the year?"))
if err != nil {
  log.Fatal(err)
}

पूरे उदाहरण के लिए ट्यूटोरियल में चैट डेमो देखें.

Node.js

const model = genAI.getGenerativeModel({ model: "gemini-pro"});

const chat = model.startChat({
  history: [
    {
      role: "user",
      parts: "Pretend you're a snowman and stay in character for each response.",
    },
    {
      role: "model",
      parts: "Hello! It's cold! Isn't that great?",
    },
  ],
  generationConfig: {
    maxOutputTokens: 100,
  },
});

const msg = "What's your favorite season of the year?";
const result = await chat.sendMessage(msg);
console.log(result.response.text());

पूरे उदाहरण के लिए, Node.js ट्यूटोरियल में चैट डेमो देखें.

वेब

const model = genAI.getGenerativeModel({ model: "gemini-pro"});

const chat = model.startChat({
  history: [
    {
      role: "user",
      parts: "Pretend you're a snowman and stay in character for each response.",
    },
    {
      role: "model",
      parts: "Hello! It's so cold! Isn't that great?",
    },
  ],
  generationConfig: {
    maxOutputTokens: 100,
  },
});

const msg = "What's your favorite season of the year?";
const result = await chat.sendMessage(msg);
console.log(result.response.text());

पूरे उदाहरण के लिए वेब ट्यूटोरियल में चैट डेमो देखें.

डार्ट (फ़्लटर)

final model = GenerativeModel(model: 'gemini-pro', apiKey: apiKey);
final chat = model.startChat(history: [
  Content.text(
      "Pretend you're a snowman and stay in character for each response."),
  Content.model([TextPart("Hello! It's cold! Isn't that great?")]),
]);
final content = Content.text("What's your favorite season of the year?");
final response = await chat.sendMessage(content);
print(response.text);

पूरे उदाहरण के लिए Dart (Flutter) ट्यूटोरियल में चैट डेमो देखें.

Swift

let model = GenerativeModel(name: "gemini-pro", apiKey: "API_KEY")
let chat = model.startChat()

var message = "Pretend you're a snowman and stay in character for each response."
var response = try await chat.sendMessage(message)

message = "What\'s your favorite season of the year?"
response = try await chat.sendMessage(message)

उदाहरण के लिए, Swift ट्यूटोरियल में चैट डेमो देखें.

Android

val generativeModel = GenerativeModel(
    modelName = "gemini-pro",
    apiKey = BuildConfig.apiKey
)

val chat = generativeModel.startChat()
val response = chat.sendMessage("Pretend you're a snowman and stay in
        character for each response.")
print(response.text)

पूरे उदाहरण के लिए Android ट्यूटोरियल देखें.

cURL

curl https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=$API_KEY \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [
        {"role":"user",
         "parts":[{
           "text": "Pretend you're a snowman and stay in character for each
        {"role": "model",
            response."}]},
         "parts":[{
           "text": "Hello! It's so cold! Isn't that great?"}]},
        {"role": "user",
         "parts":[{
           "text": "What\'s your favorite season of the year?"}]},
       ]
    }' 2> /dev/null | grep "text"
# response example:
"text": "Winter, of course!"

ज़्यादा जानकारी के लिए, REST API का ट्यूटोरियल देखें.

स्ट्रीम किए गए जवाब

Gemini API की मदद से आपको जनरेटिव एआई मॉडल से रिस्पॉन्स पाने का एक और तरीका मिलेगा: डेटा स्ट्रीम के तौर पर. स्ट्रीम किया गया रिस्पॉन्स, डेटा के बढ़ते हुए हिस्सों को आपके ऐप्लिकेशन में वापस भेज देता है, क्योंकि यह मॉडल से जनरेट होता है. इस सुविधा से, उपयोगकर्ता के अनुरोध का तुरंत जवाब दिया जा सकता है, ताकि वह अपनी प्रोग्रेस दिखा सके और ज़्यादा इंटरैक्टिव अनुभव दे सके.

स्ट्रीम किए गए जवाबों के लिए, फ़्री फ़ॉर्म में प्रॉम्प्ट दें और Gemini मॉडल के साथ चैट करें. कोड के यहां दिए गए उदाहरणों में, इस्तेमाल की जा सकने वाली हर भाषा के लिए प्रॉम्प्ट के लिए, स्ट्रीम किए गए जवाब का अनुरोध करने का तरीका बताया गया है:

Python

prompt = "Write a story about a magic backpack."

response = genai.stream_generate_content(
    model="models/gemini-pro",
    prompt=prompt
)

पूरा कोड स्निपेट देखने के लिए, Python ट्यूटोरियल देखें.

शुरू करें

ctx := context.Background()
client, err := genai.NewClient(ctx, option.WithAPIKey(os.Getenv("API_KEY")))
if err != nil {
  log.Fatal(err)
}
defer client.Close()

model := client.GenerativeModel("gemini-pro")

iter := model.GenerateContentStream(ctx, genai.Text("Write a story about a magic backpack."))
for {
  resp, err := iter.Next()
  if err == iterator.Done {
    break
  }
  if err != nil {
    log.Fatal(err)
  }

  // print resp
}

पूरे उदाहरण के लिए ट्यूटोरियल देखें.

Node.js

const model = genAI.getGenerativeModel({ model: "gemini-pro" });
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();
  console.log(chunkText);
}

पूरे उदाहरण के लिए, Node.js ट्यूटोरियल देखें.

वेब

const model = genAI.getGenerativeModel({ model: "gemini-pro" });
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();
  console.log(chunkText);
}

पूरे उदाहरण के लिए वेब ट्यूटोरियल देखें.

डार्ट (फ़्लटर)

final model = GenerativeModel(model: 'gemini-pro', apiKey: apiKey);
final prompt = 'Write a story about a magic backpack.';
final content = [Content.text(prompt)];
final response = model.generateContentStream(content);
await for (final chunk in response) {
  print(chunk.text);
}

उदाहरण के लिए, Dart (Flutter) ट्यूटोरियल देखें.

Swift

let model = GenerativeModel(name: "gemini-pro", apiKey: "API_KEY")
let prompt = "Write a story about a magic backpack."

let stream = model.generateContentStream(prompt)
for try await chunk in stream {
  print(chunk.text ?? "No content")
}

पूरे उदाहरण के लिए Swift ट्यूटोरियल देखें.

Android

val generativeModel = GenerativeModel(
    modelName = "gemini-pro",
    apiKey = BuildConfig.apiKey
)

val inputContent = content {
  text("Write a story about a magic backpack.")
}

var fullResponse = ""
generativeModel.generateContentStream(inputContent).collect { chunk ->
  print(chunk.text)
  fullResponse += chunk.text
}

पूरे उदाहरण के लिए Android ट्यूटोरियल देखें.

cURL

curl https://generativelanguage.googleapis.com/v1/models/gemini-pro:streamGenerateContent?key=${API_KEY} \
    -H 'Content-Type: application/json' \
    --no-buffer \
    -d '{ "contents":[
            {"role": "user",
              "parts":[{"text": "Write a story about a magic backpack."}]
            }
          ]
        }' > response.json

ज़्यादा जानकारी के लिए, REST API का ट्यूटोरियल देखें.

JSON फ़ॉर्मैट में जवाब

अपने ऐप्लिकेशन के आधार पर, हो सकता है कि आप सवाल के जवाब को स्ट्रक्चर्ड डेटा फ़ॉर्मैट में दिखाना चाहें. खास तौर पर तब, जब आप प्रोग्रामिंग इंटरफ़ेस में अपने-आप जानकारी भरने के लिए रिस्पॉन्स का इस्तेमाल कर रहे हों. Gemini API, JSON फ़ॉर्मैट में जवाब का अनुरोध करने के लिए एक कॉन्फ़िगरेशन पैरामीटर उपलब्ध कराता है.

इस आउटपुट सुविधा का इस्तेमाल करने के लिए, response_mime_type कॉन्फ़िगरेशन के विकल्प को application/json पर सेट करें. साथ ही, अपने अनुरोध के मुख्य हिस्से में JSON फ़ॉर्मैट की खास बातों को शामिल करें. इस कोड के उदाहरण में, किसी प्रॉम्प्ट के लिए JSON रिस्पॉन्स का अनुरोध करने का तरीका बताया गया है:

cURL

curl https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-pro-latest:generateContent?key=$API_KEY \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{ "contents":[{
            "parts":[{"text": "List 5 popular cookie recipes using this JSON schema: \{ \"type\": \"object\", \"properties\": \{ \"recipe_name\": \{ \"type\": \"string\" \},\}\}"}] }],
          "generationConfig": {
            "response_mime_type": "application/json",
          } }'

एम्बेडिंग

Gemini API में एम्बेड करने की सेवा, शब्दों, वाक्यांशों, और वाक्यों के लिए बेहतरीन एम्बेडिंग जनरेट करती है. इसके बाद, एम्बेड किए गए इसका इस्तेमाल एनएलपी के कई कामों के लिए किया जा सकता है. जैसे, सिमैंटिक खोज, टेक्स्ट की कैटगरी तय करना, और क्लस्टरिंग वगैरह. एम्बेड करने की सुविधा क्या होती है और इस सेवा के इस्तेमाल के कुछ मुख्य उदाहरणों के बारे में जानने के लिए, एम्बेड करने की गाइड देखें. इससे आपको शुरुआत करने में मदद मिलेगी.

अगले चरण

  • Google AI Studio क्विकस्टार्ट का इस्तेमाल करके, Google AI Studio के यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल शुरू करें.
  • Python, Go या Node.js के ट्यूटोरियल की मदद से, Gemini API का सर्वर साइड ऐक्सेस आज़माएं.
  • वेब ट्यूटोरियल की मदद से, वेब के लिए कॉन्टेंट बनाना शुरू करें.
  • स्विफ़्ट ट्यूटोरियल या Android ट्यूटोरियल की मदद से, मोबाइल ऐप्लिकेशन बनाने के लिए ऐप्लिकेशन बनाना शुरू करें.
  • अगर आप Google Cloud के मौजूदा उपयोगकर्ता हैं (या आपको Google Cloud के बेहतरीन नेटवर्क का फ़ायदा लेने के लिए, Vertex पर Gemini का इस्तेमाल करना है, तो ज़्यादा जानने के लिए Vertex AI पर जनरेटिव एआई देखें.