फ़ाइल एपीआई

Gemini, एक ही समय में टेक्स्ट, इमेज, और ऑडियो जैसे अलग-अलग तरह के इनपुट डेटा को प्रोसेस कर सकता है.

इस गाइड में, Files API का इस्तेमाल करके मीडिया फ़ाइलों के साथ काम करने का तरीका बताया गया है. ऑडियो फ़ाइलों, इमेज, वीडियो, दस्तावेज़ों, और इस्तेमाल किए जा सकने वाले अन्य फ़ाइल टाइप के लिए, बुनियादी कार्रवाइयां एक जैसी होती हैं.

फ़ाइल प्रॉम्प्ट से जुड़े दिशा-निर्देशों के लिए, फ़ाइल प्रॉम्प्ट से जुड़ी गाइड सेक्शन देखें.

फ़ाइल अपलोड करें

मीडिया फ़ाइल अपलोड करने के लिए, Files API का इस्तेमाल किया जा सकता है. जब अनुरोध का कुल साइज़ (फ़ाइलें, टेक्स्ट प्रॉम्प्ट, सिस्टम के निर्देश वगैरह) 100 एमबी से ज़्यादा हो, तो हमेशा Files API का इस्तेमाल करें. PDF फ़ाइलों के लिए, साइज़ की सीमा 50 एमबी है.

यहां दिया गया कोड, एक फ़ाइल अपलोड करता है. इसके बाद, interactions.create को किए गए कॉल में उस फ़ाइल का इस्तेमाल करता है.

Python

from google import genai

client = genai.Client()

myfile = client.files.upload(file="path/to/sample.mp3")

interaction = client.interactions.create(
    model="gemini-3.8-flash",
    input=[
        {"type": "text", "text": "Describe this audio clip"},
        {"type": "audio", "uri": myfile.uri, "mime_type": myfile.mime_type}
    ]
)

print(interaction.output_text)

JavaScript

import { GoogleGenAI } from "@google/genai";

const client = new GoogleGenAI({});

async function main() {
  const myfile = await client.files.upload({
    file: "path/to/sample.mp3",
    config: { mime_type: "audio/mpeg" },
  });

  const interaction = await client.interactions.create({
    model: "gemini-3.8-flash",
    input: [
      { type: "text", text: "Describe this audio clip" },
      { type: "audio", uri: myfile.uri, mime_type: myfile.mimeType }
    ]
  });
  console.log(interaction.output_text);
}

await main();

Java

import com.google.genai.Client;
import com.google.genai.gaos.models.interactions.AudioContent;
import com.google.genai.gaos.models.interactions.AudioContentMimeType;
import com.google.genai.gaos.models.interactions.Content;
import com.google.genai.gaos.models.interactions.CreateModelInteraction;
import com.google.genai.gaos.models.interactions.Interaction;
import com.google.genai.gaos.models.interactions.InteractionsInput;
import com.google.genai.gaos.models.interactions.Model;
import com.google.genai.gaos.models.interactions.TextContent;
import com.google.genai.gaos.models.operations.CreateInteractionRequestBody;
import com.google.genai.types.File;
import com.google.genai.types.UploadFileConfig;
import java.util.Arrays;
import java.util.List;

Client client = new Client();

File myFile =
    client.files.upload(
        new java.io.File("path/to/sample.mp3"),
        UploadFileConfig.builder().mimeType("audio/mp3").build());

Content textContent = TextContent.builder().text("Describe this audio clip").build();
Content audioContent =
    AudioContent.builder()
        .uri(myFile.uri().orElse(""))
        .mimeType(AudioContentMimeType.of(myFile.mimeType().orElse("audio/mp3")))
        .build();

List<Content> contents = Arrays.asList(textContent, audioContent);

CreateModelInteraction params =
    CreateModelInteraction.builder()
        .model(Model.of("gemini-3.8-flash"))
        .input(InteractionsInput.ofContent(contents))
        .build();

Interaction interaction =
    client.interactions.create(CreateInteractionRequestBody.of(params)).interaction().get();

System.out.println(interaction.outputText().orElse(""));

ऐप पर जाएं

package main

import (
    "context"
    "fmt"
    "log"

    "google.golang.org/genai"
    "google.golang.org/genai/interactions/models/interactions"
    "google.golang.org/genai/interactions/models/operations"
)

func main() {
    ctx := context.Background()
    client, err := genai.NewClient(ctx, nil)
    if err != nil {
        log.Fatal(err)
    }

    myFile, err := client.Files.UploadFromPath(ctx, "path/to/sample.mp3", &genai.UploadFileConfig{
        MIMEType: "audio/mp3",
    })
    if err != nil {
        log.Fatal(err)
    }

    res, err := client.Interactions.Create(ctx, operations.CreateInteractionRequest{
        Body: operations.NewCreateInteractionRequestBody(interactions.CreateModelInteraction{
            Model: interactions.Model("gemini-3.8-flash"),
            Input: interactions.NewInteractionsInput([]interactions.Content{
                interactions.NewContent(interactions.TextContent{
                    Text: "Describe this audio clip",
                }),
                interactions.NewContent(interactions.AudioContent{
                    URI:      genai.Ptr(myFile.URI),
                    MimeType: interactions.AudioContentMimeType(myFile.MIMEType).ToPointer(),
                }),
            }),
        }),
    })
    if err != nil {
        log.Fatal(err)
    }
    if res.Interaction.OutputText != nil {
        fmt.Println(*res.Interaction.OutputText)
    }
}

आराम का समय

AUDIO_PATH="path/to/sample.mp3"
MIME_TYPE=$(file -b --mime-type "${AUDIO_PATH}")
NUM_BYTES=$(wc -c < "${AUDIO_PATH}")
DISPLAY_NAME=AUDIO

tmp_header_file=upload-header.tmp

# Initial resumable request defining metadata.
# The upload url is in the response headers dump them to a file.
curl "${BASE_URL}/upload/v1beta/files" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -D "${tmp_header_file}" \
  -H "X-Goog-Upload-Protocol: resumable" \
  -H "X-Goog-Upload-Command: start" \
  -H "X-Goog-Upload-Header-Content-Length: ${NUM_BYTES}" \
  -H "X-Goog-Upload-Header-Content-Type: ${MIME_TYPE}" \
  -H "Content-Type: application/json" \
  -d "{'file': {'display_name': '${DISPLAY_NAME}'}}" 2> /dev/null

upload_url=$(grep -i "x-goog-upload-url: " "${tmp_header_file}" | cut -d" " -f2 | tr -d "\r")
rm "${tmp_header_file}"

# Upload the actual bytes.
curl "${upload_url}" \
  -H "Content-Length: ${NUM_BYTES}" \
  -H "X-Goog-Upload-Offset: 0" \
  -H "X-Goog-Upload-Command: upload, finalize" \
  --data-binary "@${AUDIO_PATH}" 2> /dev/null > file_info.json

file_uri=$(jq ".file.uri" file_info.json)
echo file_uri=$file_uri

# Now create an interaction using the Interactions API
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
    -H "x-goog-api-key: $GEMINI_API_KEY" \
    -H 'Content-Type: application/json' \
    -d '{
      "model": "gemini-3.8-flash",
      "input": [
        {"type": "text", "text": "Describe this audio clip"},
        {"type": "audio", "uri": '$file_uri', "mime_type": "'${MIME_TYPE}'"}
      ]
    }' 2> /dev/null > response.json

cat response.json
echo

jq ".outputs[] | select(.type == \"text\") | .text" response.json

किसी फ़ाइल का मेटाडेटा पाना

files.get को कॉल करके, यह पुष्टि की जा सकती है कि एपीआई ने अपलोड की गई फ़ाइल को सही तरीके से सेव किया है या नहीं. साथ ही, उसका मेटाडेटा भी पाया जा सकता है.

Python

from google import genai

client = genai.Client()

myfile = client.files.upload(file='path/to/sample.mp3')
file_name = myfile.name
myfile = client.files.get(name=file_name)
print(myfile)

JavaScript

import {
  GoogleGenAI,
} from "@google/genai";

const client = new GoogleGenAI({});

async function main() {
  const myfile = await client.files.upload({
    file: "path/to/sample.mp3",
    config: { mime_type: "audio/mpeg" },
  });

  const fileName = myfile.name;
  const fetchedFile = await client.files.get({ name: fileName });
  console.log(fetchedFile);
}

await main();

Java

import com.google.genai.Client;
import com.google.genai.types.File;
import com.google.genai.types.UploadFileConfig;

Client client = new Client();

File myFile =
    client.files.upload(
        new java.io.File("path/to/sample.mp3"),
        UploadFileConfig.builder().mimeType("audio/mp3").build());

String fileName = myFile.name().orElse("");
File fileMetadata = client.files.get(fileName, null);
System.out.println(fileMetadata);

ऐप पर जाएं

package main

import (
    "context"
    "fmt"
    "log"

    "google.golang.org/genai"
)

func main() {
    ctx := context.Background()
    client, err := genai.NewClient(ctx, nil)
    if err != nil {
        log.Fatal(err)
    }

    myFile, err := client.Files.UploadFromPath(ctx, "path/to/sample.mp3", &genai.UploadFileConfig{
        MIMEType: "audio/mp3",
    })
    if err != nil {
        log.Fatal(err)
    }

    fileMetadata, err := client.Files.Get(ctx, myFile.Name, nil)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(fileMetadata)
}

आराम का समय

# file_info.json was created in the upload example
name=$(jq -r ".file.name" file_info.json)
# Get the file of interest to check state
curl https://generativelanguage.googleapis.com/v1beta/$name \
-H "x-goog-api-key: $GEMINI_API_KEY" > file_info.json
# Print some information about the file you got
name=$(jq -r ".name" file_info.json)
echo name=$name
file_uri=$(jq -r ".uri" file_info.json)
echo file_uri=$file_uri

अपलोड की गई फ़ाइलों की सूची देखना

नीचे दिए गए कोड से, अपलोड की गई सभी फ़ाइलों की सूची मिलती है:

Python

from google import genai

client = genai.Client()

print('My files:')
for f in client.files.list():
    print(' ', f.name)

JavaScript

import {
  GoogleGenAI,
} from "@google/genai";

const client = new GoogleGenAI({});

async function main() {
  const listResponse = await client.files.list({ config: { pageSize: 10 } });
  for await (const file of listResponse) {
    console.log(file.name);
  }
}

await main();

Java

import com.google.genai.Client;
import com.google.genai.types.File;

Client client = new Client();

System.out.println("My files:");
for (File f : client.files.list(null)) {
  System.out.println("  " + f.name().orElse(""));
}

ऐप पर जाएं

package main

import (
    "context"
    "fmt"
    "log"

    "google.golang.org/genai"
)

func main() {
    ctx := context.Background()
    client, err := genai.NewClient(ctx, nil)
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println("My files:")
    for f, err := range client.Files.All(ctx) {
        if err != nil {
            log.Fatal(err)
        }
        fmt.Println(" ", f.Name)
    }
}

आराम का समय

echo "My files: "

curl "https://generativelanguage.googleapis.com/v1beta/files" \
  -H "x-goog-api-key: $GEMINI_API_KEY"

अपलोड की गई फ़ाइलें मिटाना

फ़ाइलें 48 घंटों के बाद अपने-आप मिट जाती हैं. अपलोड की गई फ़ाइल को मैन्युअल तरीके से भी मिटाया जा सकता है:

Python

from google import genai

client = genai.Client()

myfile = client.files.upload(file='path/to/sample.mp3')
client.files.delete(name=myfile.name)

JavaScript

import {
  GoogleGenAI,
} from "@google/genai";

const client = new GoogleGenAI({});

async function main() {
  const myfile = await client.files.upload({
    file: "path/to/sample.mp3",
    config: { mime_type: "audio/mpeg" },
  });

  const fileName = myfile.name;
  await client.files.delete({ name: fileName });
}

await main();

Java

import com.google.genai.Client;
import com.google.genai.types.File;
import com.google.genai.types.UploadFileConfig;

Client client = new Client();

File myFile =
    client.files.upload(
        new java.io.File("path/to/sample.mp3"),
        UploadFileConfig.builder().mimeType("audio/mp3").build());

client.files.delete(myFile.name().orElse(""), null);

ऐप पर जाएं

package main

import (
    "context"
    "log"

    "google.golang.org/genai"
)

func main() {
    ctx := context.Background()
    client, err := genai.NewClient(ctx, nil)
    if err != nil {
        log.Fatal(err)
    }

    myFile, err := client.Files.UploadFromPath(ctx, "path/to/sample.mp3", &genai.UploadFileConfig{
        MIMEType: "audio/mp3",
    })
    if err != nil {
        log.Fatal(err)
    }

    if _, err := client.Files.Delete(ctx, myFile.Name, nil); err != nil {
        log.Fatal(err)
    }
}

आराम का समय

curl --request "DELETE" https://generativelanguage.googleapis.com/v1beta/$name \
  -H "x-goog-api-key: $GEMINI_API_KEY"

इस्तेमाल के बारे में जानकारी

Files API का इस्तेमाल करके, मीडिया फ़ाइलें अपलोड की जा सकती हैं और उनके साथ इंटरैक्ट किया जा सकता है. Files API की मदद से, हर प्रोजेक्ट में 20 जीबी तक की फ़ाइलें सेव की जा सकती हैं. हर फ़ाइल का साइज़ ज़्यादा से ज़्यादा 2 जीबी हो सकता है. फ़ाइलें 48 घंटों तक सेव रहती हैं.

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

फ़ाइल प्रॉम्प्ट करने की रणनीतियां

इस सेक्शन में, Gemini API के लिए प्रॉम्प्ट के साथ मीडिया फ़ाइलों का इस्तेमाल करने के बारे में दिशा-निर्देश और सबसे सही तरीके बताए गए हैं.

अपने प्रॉम्प्ट में अलग-अलग तरह के डेटा का इस्तेमाल करने से, आपको Gemini API की मदद से कई तरह के टास्क पूरे करने में मदद मिलती है. उदाहरण के लिए, मॉडल को किसी स्वादिष्ट खाने की फ़ोटो भेजकर, उसके बारे में एक छोटा ब्लॉग लिखने के लिए कहा जा सकता है.

प्रॉम्प्ट जवाब

इस तस्वीर के आधार पर, एक छोटी और दिलचस्प ब्लॉग पोस्ट लिखो. इसमें फ़ोटो में मौजूद खाने के बारे में जानकारी होनी चाहिए. साथ ही, खाना बनाने की मेरी यात्रा के बारे में भी बताना चाहिए.


कुकी

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

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

इस डिश को बनाना भी आसान है. बस ब्राउन राइस को पकाएं, सब्ज़ियों को भूनें, और चिकन टेरियाकी को पकाएं. सब कुछ पक जाने के बाद, उसे मील प्रेप कंटेनर में बांटें और रेफ़्रिजरेटर में स्टोर करें. इसके बाद, सुबह की भागदौड़ में भी इसे आसानी से खाया जा सकता है!

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

सेहतमंद और स्वादिष्ट खाना बनाने के लिए शुभकामनाएं!

अगर आपको मीडिया फ़ाइलों का इस्तेमाल करने वाले प्रॉम्प्ट से मनमुताबिक़ जवाब पाने में समस्या आ रही है, तो यहाँ कुछ तरीक़े दिए गए हैं. इनकी मदद से, आपको मनमुताबिक़ जवाब मिल सकते हैं. यहां दिए गए सेक्शन में, मल्टीमोडल इनपुट का इस्तेमाल करने वाले प्रॉम्ट को बेहतर बनाने के लिए, डिज़ाइन के तरीके और समस्या हल करने के बारे में सलाह दी गई है.

टेक्स्ट, इमेज वग़ैरह का एक साथ इस्तेमाल करके प्रॉम्प्ट डालने की सुविधा को बेहतर बनाने के लिए, यहां दिए गए सबसे सही तरीके अपनाए जा सकते हैं:

  • प्रॉम्प्ट डिज़ाइन करने से जुड़ी बुनियादी बातें

    • निर्देशों में साफ़ तौर पर बताएँ कि आपको क्या चाहिए: साफ़ और कम शब्दों में निर्देश दें, ताकि ग़लत जानकारी मिलने की गुंजाइश कम से कम हो.
    • अपने प्रॉम्प्ट में कुछ उदाहरण जोड़ें: कुछ इनपुट-आउटपुट उदाहरणों के साथ दिए गए प्रॉम्प्ट का इस्तेमाल करके, यह बताएं कि आपको क्या चाहिए.
    • टास्क को सिलसिलेवार तरीके से बांटें: मुश्किल टास्क को छोटे-छोटे सब-टास्क में बांटें. इससे मॉडल को प्रोसेस समझने में मदद मिलती है.
    • आउटपुट का फ़ॉर्मैट तय करें: अपने प्रॉम्प्ट में, आउटपुट को अपनी पसंद के फ़ॉर्मैट में देने के लिए कहें. जैसे, Markdown, JSON, HTML वगैरह.
    • एक इमेज वाले प्रॉम्प्ट के लिए, इमेज को पहले रखें: Gemini, इमेज और टेक्स्ट इनपुट को किसी भी क्रम में प्रोसेस कर सकता है. हालांकि, एक इमेज वाले प्रॉम्प्ट के लिए, अगर इमेज (या वीडियो) को टेक्स्ट प्रॉम्प्ट से पहले रखा जाए, तो Gemini बेहतर तरीके से काम कर सकता है. हालांकि, ऐसे प्रॉम्प्ट के लिए जिनमें इमेज और टेक्स्ट को एक साथ इस्तेमाल करना ज़रूरी है, उस क्रम का इस्तेमाल करें जो सबसे सही लगे.
  • टेक्स्ट, इमेज वग़ैरह का एक साथ इस्तेमाल करके प्रॉम्प्ट डालने से जुड़ी समस्या हल करना

    • अगर मॉडल, इमेज के काम के हिस्से से जानकारी नहीं ले रहा है, तो: प्रॉम्प्ट में इमेज के उन पहलुओं के बारे में बताएं जिनसे आपको जानकारी चाहिए.
    • अगर मॉडल आउटपुट बहुत सामान्य है (इनपुट के तौर पर दी गई इमेज/वीडियो के हिसाब से नहीं है): प्रॉम्प्ट की शुरुआत में, मॉडल से इमेज या वीडियो के बारे में बताने के लिए कहें. इसके बाद, टास्क से जुड़े निर्देश दें. इसके अलावा, मॉडल से इमेज में मौजूद कॉन्टेंट का रेफ़रंस देने के लिए कहें.
    • यह पता लगाने के लिए कि किस हिस्से में गड़बड़ी हुई है: मॉडल से इमेज के बारे में बताने या अपनी रीजनिंग समझाने के लिए कहें. इससे मॉडल की शुरुआती समझ का आकलन किया जा सकता है.
    • अगर आपके प्रॉम्प्ट से गलत जानकारी वाला कॉन्टेंट जनरेट होता है: तापमान की सेटिंग को कम करके देखें या मॉडल से कम शब्दों में जानकारी देने के लिए कहें. इससे मॉडल, अतिरिक्त जानकारी देने की संभावना कम कर देता है.
    • सैंपलिंग पैरामीटर को ट्यून करना: मॉडल की क्रिएटिविटी को अडजस्ट करने के लिए, अलग-अलग टेंपरेचर सेटिंग और टॉप-k सिलेक्शन के साथ एक्सपेरिमेंट करें.

निर्देशों में सटीक जानकारी दें

प्रॉम्प्ट साफ़ तौर पर और ज़्यादा जानकारी के साथ लिखे जाने पर, सबसे अच्छे नतीजे मिलते हैं. अगर आपको कोई खास आउटपुट चाहिए, तो प्रॉम्प्ट में उस ज़रूरत को शामिल करना बेहतर होगा. इससे आपको अपनी पसंद का आउटपुट मिलेगा.

एयरपोर्ट बोर्ड की इस इमेज के लिए, मॉडल से सिर्फ़ "इस इमेज के बारे में बताओ" कहने पर, सामान्य जानकारी जनरेट हो सकती है. अगर आपको मॉडल से इमेज में मौजूद समय और शहर की जानकारी पार्स करानी है, तो उस अनुरोध को सीधे अपने प्रॉम्प्ट में शामिल किया जा सकता है.

प्रॉम्प्ट मॉडल का जवाब

इस इमेज के बारे में बताएं.

इमेज में, हवाई अड्डे पर आने और जाने वाली फ़्लाइट की जानकारी देने वाला बोर्ड दिख रहा है.

अपडेट किया गया प्रॉम्प्ट बेहतर जवाब
यात्रा का टाइमटेबल

इस इमेज में दिखाए गए एयरपोर्ट बोर्ड से, समय और शहर की जानकारी को एक सूची में पार्स करो.

  • मॉस्को में सुबह 10:50 बजे
  • 11:05 एडिनबरा
  • लंदन में सुबह 11:05 बजे
  • 11:10 बुखारेस्ट
  • कीव के समयानुसार सुबह 11:30 बजे
  • 11:35 डब्लिन
  • 11:45 ईस्ट मिडलैंड्स
  • 12:15 सोफ़िया
  • 12:30 London
  • 12:30 न्यूकैसल
  • 12:40 सेंट पीटर्सबर्ग
  • लंदन में दोपहर 12:40 बजे
  • 12:45 मैनचेस्टर
  • कुछ उदाहरण जोड़ें

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

    नीचे दिए गए उदाहरण में, शुरुआती आउटपुट को वाक्य के तौर पर लिखा गया है. इसमें देश (ब्राज़ील) का नाम भी शामिल है. मान लें कि आपको आउटपुट किसी दूसरे फ़ॉर्मैट या स्टाइल में चाहिए. साथ ही, आपको सिर्फ़ शहर का नाम चाहिए, देश का नहीं. अपने प्रॉम्प्ट में कुछ इनपुट-आउटपुट उदाहरणों को शामिल करके, मॉडल को अपनी पसंद के मुताबिक जवाब देने के लिए तैयार किया जा सकता है.

    प्रॉम्प्ट मॉडल का जवाब
    यात्रा का टाइमटेबल

    लैंडमार्क के साथ-साथ शहर का नाम तय करें.

    यह लैंडमार्क, ब्राज़ील के रियो डी जेनेरो में मौजूद क्राइस्ट द रिडीमर की मूर्ति है.

    अपडेट किया गया प्रॉम्प्ट बेहतर जवाब

    लैंडमार्क के साथ-साथ शहर का नाम तय करें.

    कॉलसियम

    शहर: रोम, लैंडमार्क: कॉलोसियम.

    फ़ॉर्बिडन सिटी

    city: Beijing, landmark: Forbidden City

    forbidden-city

    शहर: रियो डि जेनेरो, लैंडमार्क: क्राइस्ट द रिडीमर की मूर्ति

    सिलसिलेवार तरीके से समझाना

    मुश्किल टास्क के लिए, जैसे कि विज़ुअल को समझने और तर्क करने की ज़रूरत वाले टास्क के लिए, टास्क को छोटे और आसान चरणों में बांटना मददगार हो सकता है. इसके अलावा, अपने प्रॉम्प्ट में मॉडल को सीधे तौर पर "सिलसिलेवार तरीक़े से सोचने" के लिए कहना भी असरदार हो सकता है.

    प्रॉम्प्ट मॉडल का जवाब

    टॉयलेट पेपर कब खत्म होगा?

    जल्द ही, आपके पास सिर्फ़ तीन रोल बचेंगे.

    अपडेट किया गया प्रॉम्प्ट बेहतर जवाब
    1. सबसे पहले, गिनें कि इस तस्वीर में कितने टॉयलेट पेपर रोल हैं.
    2. इसके बाद, यह तय करें कि एक व्यक्ति हर दिन औसतन कितना टॉयलेट पेपर इस्तेमाल करता है.
    3. यह हिसाब लगाएं कि टॉयलेट पेपर के ये रोल कितने समय तक चलेंगे.
    1. इस तस्वीर में टॉयलेट पेपर के तीन रोल हैं.
    2. आम तौर पर, एक व्यक्ति हर दिन करीब 20 शीट टॉयलेट पेपर इस्तेमाल करता है.
    3. अगर हर रोल में 200 शीट हैं, तो हर रोल करीब 10 दिन तक चलेगा. इसलिए, तीन रोल करीब एक महीने तक चलेंगे.

    गणित के सवाल या अन्य तरह के इबारती सवाल, मॉडल से सिलसिलेवार तरीके से सोचने के लिए कहने के बेहतरीन उदाहरण हैं.

    प्रॉम्प्ट जवाब

    इस क्रम में चौथा पद क्या है?

    -135

    मॉडल का जवाब गलत है. इसे बेहतर बनाने के लिए, मॉडल से प्रॉम्प्ट का जवाब देने से पहले समस्या को पार्स करने के लिए कहें.

    प्रॉम्प्ट जवाब

    सबसे पहले, इमेज में मौजूद फ़ॉर्मूला पार्स करें.

    इसके बाद, फ़ॉर्मूले के आधार पर इस सवाल का जवाब दें, "इस क्रम में चौथा पद क्या है?".

    नतीजे को बड़ा करने के लिए क्लिक करें

    $$ b(n) = b(n-1) * (-3) $$

    $$ b(1) = 15 $$

    1. फ़ॉर्मूले में n = 4 डालें:

      $$ b(4) = b(4-1) * (-3) $$

      $$ b(4) = b(3) * (-3) $$

    2. हमें b(3) की वैल्यू नहीं पता है. इसलिए, फ़ॉर्मूले में n = 3 रखें:

      $$ b(3) = b(3-1) * (-3) $$

      $$ b(3) = b(2) * (-3) $$

    3. हमें b(2) की वैल्यू नहीं पता है. इसलिए, फ़ॉर्मूले में n = 2 रखें:

      $$ b(2) = b(2-1) * (-3) $$

      $$ b(2) = b(1) * (-3) $$

    4. हमें पता है कि b(1) की वैल्यू 15 है. इसलिए, इसे फ़ॉर्मूले में डालें:

      $$ b(2) = 15 * (-3) $$

      $$ b(2) = -45 $$

    5. अब हमें b(2) की वैल्यू पता है. इसे b(3) के फ़ॉर्मूले में डालें:

      $$ b(3) = b(2) * (-3) $$

      $$ b(3) = -45 * (-3) $$

      $$ b(3) = 135 $$

    6. अब हमें b(3) की वैल्यू पता है, इसलिए इसे b(4) के फ़ॉर्मूले में डालें:

      $$ b(4) = b(3) * (-3) $$

      $$ b(4) = 135 * (-3) $$

      $$ b(4) = -405 $$

    इसलिए, इस क्रम में चौथा पद -405 है.

    मॉडल का यह जवाब सही है - अब जवाब को और बेहतर बनाने के लिए, मॉडल को सिलसिलेवार तरीक़े से सोचने के लिए कहें.

    अपडेट किया गया प्रॉम्प्ट बेहतर जवाब

    इस क्रम में चौथा पद क्या है? सिलसिलेवार तरीके से सोचें.

    पहला पद 15 है.

    दूसरा पद b(1) * (-3) = 15 * (-3) = -45 है.

    तीसरा पद b(2) * (-3) = -45 * (-3) = 135 है.

    चौथा पद b(3) * (-3) = 135 * (-3) = -405 है.

    आउटपुट का फ़ॉर्मैट तय करना

    एक आम समस्या यह है कि मॉडल आउटपुट को किसी खास फ़ॉर्मैट (जैसे, Markdown, JSON, HTML) में होना चाहिए. ऐसा खास तौर पर तब होता है, जब मॉडल आउटपुट को किसी डाउनस्ट्रीम टास्क में इस्तेमाल करना हो. प्रॉम्प्ट में मॉडल को निर्देश देकर, उस फ़ॉर्मैट में आउटपुट जनरेट करने की कोशिश की जा सकती है. यहां दो उदाहरण दिए गए हैं:

    प्रॉम्प्ट मॉडल का जवाब

    इस इमेज में मौजूद टेबल को Markdown फ़ॉर्मैट में पार्स करो

    ```none | विषय | स्थिति | समय | शुरू होने की तारीख | पूरा करने की तारीख | | ------- | ------ | ---- | ---------- | ------ | | गणित | पूरा हो गया | 1.5 घंटे | 11/29/2023 | 12/1/2023 | | भूगोल | पूरा हो गया | 30 मिनट | 12/2/2023 | 12/4/2023 | | भौतिक विज्ञान | जारी है | 2 घंटे | 12/3/2023 | 12/5/2023 | | जीव विज्ञान | शुरू नहीं हुआ | 6 घंटे | 11/2/2016 | 12/6/2023 | ```
    प्रॉम्प्ट मॉडल का जवाब

    इन सभी एट्रिब्यूट की सूची दें:

    JSON फ़ॉर्मैट में, पकवान में इस्तेमाल होने वाली सामग्री, पकवान का टाइप, और पकवान शाकाहारी है या नहीं

    ```json { "ingredients": [ "चावल", "झींगा", "क्लैम", "मसल", "मटर", "टमाटर", "प्याज", "लहसुन", "जैतून का तेल", "पपरीका", "नमक", "काली मिर्च" ], "type of cuisine": "स्पैनिश", "vegetarian": false } ```

    एक इमेज वाले प्रॉम्प्ट के लिए, पहले इमेज अपलोड करें

    Gemini, प्रॉम्प्ट में मौजूद इमेज और टेक्स्ट को किसी भी क्रम में समझ सकता है. हालाँकि, टेक्स्ट प्रॉम्प्ट से पहले एक इमेज डालने से बेहतर नतीजे मिल सकते हैं. यहां दिए गए सैंपल में, आपको दिखेगा कि हर प्रॉम्प्ट में टेक्स्ट से पहले इमेज दी गई है.

    टेक्स्ट, इमेज वग़ैरह का एक साथ इस्तेमाल करके प्रॉम्प्ट डालने से जुड़ी समस्या हल करना

    अगर आपको मददगार जवाब नहीं मिल रहा है, तो आपको अपने प्रॉम्प्ट से जुड़ी समस्या हल करनी पड़ सकती है. यहां कुछ रणनीतियां दी गई हैं, जिन्हें आज़माया जा सकता है.

    अगर मॉडल, इमेज के काम के हिस्से से जानकारी नहीं ले रहा है

    ज़्यादा सटीक जवाब पाने के लिए, यह बताया जा सकता है कि आपको इमेज के किन पहलुओं से जानकारी चाहिए.

    प्रॉम्प्ट मॉडल का जवाब

    ये डायपर, बच्चे के लिए कितने दिनों तक चलेंगे?

    डायपर 198 दिनों तक चलेंगे.

    अपडेट किया गया प्रॉम्प्ट बेहतर जवाब

    ये डायपर कितने दिन चलेंगे?

    बच्चे की उम्र का पता लगाने के लिए, बॉक्स पर दिखाया गया वज़न इस्तेमाल करें. साथ ही, बॉक्स में मौजूद डायपर की कुल संख्या का इस्तेमाल करें.

    कुल संख्या को, बच्चे के लिए रोज़ाना इस्तेमाल होने वाले डायपर की संख्या से भाग दें.

    बॉक्स में 198 डायपर हैं. बॉक्स पर लिखा है कि डायपर 22 से 37 पाउंड वज़न वाले बच्चे के लिए हैं.

    इस वज़न रेंज में आने वाले बच्चे की उम्र, आम तौर पर एक से दो साल के बीच होती है.

    आम तौर पर, दो साल के बच्चे को हर दिन छह डायपर की ज़रूरत होती है. इसलिए, 198 डायपर करीब 33 दिन (198/6) चलेंगे.

    अगर मॉडल आउटपुट बहुत सामान्य है और इनपुट के तौर पर दी गई इमेज के हिसाब से नहीं है

    मॉडल से इमेज के बारे में बताने के लिए कहें. इससे मॉडल को इमेज के हिसाब से जवाब देने में मदद मिलेगी. इसके बाद, उससे इमेज के बारे में तर्क करने के लिए कहें.

    प्रॉम्प्ट मॉडल का जवाब

    इन इमेज में क्या कॉमन है?

    ये चारों इमेज, लैंडस्केप फ़ोटोग्राफ़ी के उदाहरण हैं.

    अपडेट किया गया प्रॉम्प्ट बेहतर जवाब

    सबसे पहले, हर इमेज के बारे में पूरी जानकारी दो. इन इमेज में क्या समानता है?

    पहली इमेज में, एक व्यक्ति सूटकेस पैक करते हुए दिख रहा है. दूसरी इमेज में, शॉपिंग मॉल का खाली हॉलवे दिखाया गया है. तीसरी इमेज में टॉयलेट पेपर का रोल दिखाया गया है. चौथी इमेज में, तूफ़ान के दौरान समुद्र का गहरा रंग दिख रहा है.

    इन इमेज में एक बात कॉमन है. ये सभी इमेज, लिमिनल स्पेस के उदाहरण हैं. लिमिनल स्पेस, ऐसी जगहें या स्थितियां होती हैं जो दो अन्य जगहों या स्थितियों के बीच में होती हैं. इनमें अक्सर अनिश्चितता या अस्पष्टता होती है.

    पहली इमेज में, एक व्यक्ति को घर पर और यात्रा के दौरान दिखाया गया है. दूसरी इमेज में, दो स्टोर के बीच का हॉलवे दिखाया गया है. तीसरी इमेज टॉयलेट पेपर की है, जो बाथरूम को दिखा सकती है. बाथरूम, निजी और सार्वजनिक जगहों के बीच की जगह है. यह एक ऐसी जगह है जहां हम खुद को बाहरी दुनिया में जाने या वहां से वापस आने के लिए तैयार करते हैं.

    चौथी इमेज में, समुद्र को शांत और तूफ़ानी के बीच की स्थिति में दिखाया गया है.

    लिमनल स्पेस, रोमांचक और परेशान करने वाले, दोनों तरह के हो सकते हैं. ये नई शुरुआत या किसी चीज़ के खत्म होने की जगह हो सकते हैं. ये जगहें, सोच-विचार करने या कुछ करने के लिए हो सकती हैं.

    आपके पास मॉडल से साफ़ तौर पर यह कहने का विकल्प भी है कि वह इमेज में मौजूद जानकारी का इस्तेमाल करे.

    अपडेट किया गया प्रॉम्प्ट बेहतर जवाब

    इन इमेज में क्या कॉमन है? जवाब में मौजूद इमेज के बारे में जानकारी दें.

    सभी इमेज, यात्रा से जुड़ी हैं. पहली इमेज में एक व्यक्ति सूटकेस पैक करते हुए दिख रहा है, दूसरी इमेज में शॉपिंग मॉल का खाली हॉलवे दिख रहा है, तीसरी इमेज में टॉयलेट पेपर का ढेर दिख रहा है, और चौथी इमेज में अंधेरा और तूफ़ानी समुद्र दिख रहा है.

    ये सभी इमेज यात्रा से जुड़ी हैं, क्योंकि ये ऐसी चीज़ें हैं जिनकी ज़रूरत लोगों को यात्रा के दौरान पड़ती है या जिनका इस्तेमाल वे यात्रा के दौरान करते हैं. पहली इमेज में एक व्यक्ति सूटकेस पैक करते हुए दिख रहा है. लोग ऐसा तब करते हैं, जब वे किसी यात्रा पर जा रहे होते हैं. दूसरी इमेज में, शॉपिंग मॉल का एक खाली हॉलवे दिखाया गया है. यह एक ऐसी जगह है जहां लोग अक्सर अपनी यात्राओं के लिए चीज़ें खरीदने जाते हैं. तीसरी इमेज में टॉयलेट पेपर का एक बंडल दिखाया गया है. यह एक ऐसी चीज़ है जिसका इस्तेमाल लोग अक्सर यात्रा के दौरान करते हैं. चौथी इमेज में, तूफ़ान से घिरा हुआ एक गहरा समुद्र दिखाया गया है. यात्रा के दौरान, लोगों को अक्सर ऐसी चीज़ों का सामना करना पड़ता है.

    इमेज से क्रिएटिव आउटपुट पाने के लिए भी यही सलाह काम आती है. खरगोश वाले इस उदाहरण में, मॉडल से इमेज के पहलुओं को शामिल करने के लिए साफ़ तौर पर कहने से, आउटपुट को बेहतर बनाया जा सकता है.

    प्रॉम्प्ट मॉडल का जवाब

    क्या तुम इस इमेज के बारे में एक कविता लिख सकती हो?

    छोटा सा खरगोश, बहुत ही प्यारा और भूरा,
    खेत में उछल-कूद करता हुआ, ऊपर और नीचे.
    तुम्हारे कान इतने लंबे हैं, तुम्हारी पूंछ इतनी छोटी है,
    तुम सबसे प्यारे जीव हो.

    तुम हरी और मीठी घास कुतरते हो,
    और मुझे देखते ही कूदकर भाग जाते हो.
    लेकिन मैं हमेशा तुम्हारा दोस्त रहूंगा,
    छोटे खरगोश, हमेशा के लिए.

    अपडेट किया गया प्रॉम्प्ट बेहतर जवाब

    क्या इस इमेज की जानकारी के बारे में, मुझे एक ड्रामैटिक कविता लिखकर दी जा सकती है? इसमें इमेज की जगह की जानकारी भी शामिल करें.

    घास पर बैठा छोटा खरगोश,
    लंबे कान, तेज़ दिमाग़.
    तुम्हें वहां क्या दिख रहा है,
    जहां तुम दूर तक देख रहे हो?

    क्या यह समुद्र का नीला रंग है,
    जो सूरज की रोशनी में चमक रहा है?
    या फिर, लहरों की आवाज़,
    जो आपको पसंद है?

    छोटे खरगोश, मुझे सच बताओ,
    तुम्हारा ध्यान किस चीज़ ने खींचा है?
    क्या यह नमकीन हवा है,
    या सीगल की आवाज़ें जो खुश करती हैं?

    शायद यह इसकी विशालता है,
    एक ऐसी दुनिया जो बहुत बड़ी और छोटी है.
    एक ऐसी जगह जहां सपने सच हो सकते हैं,
    और रोमांच की शुरुआत हो सकती है.

    छोटे खरगोश, मुझे लगता है कि तुम क्या सपना देखते हो,
    जब तुम घास पर बैठते हो, तो बहुत शांत होते हो.
    क्या आपको गहरे पानी में जाना पसंद है
    या ज़मीन पर रहना, जहां आप छलांग लगा सकें?

    चाहे जो भी हो, नन्हे खरगोश,
    अपने अंदर की जिज्ञासा को हमेशा ज़िंदा रखो.
    क्योंकि आपके सपनों और आकांक्षाओं में,
    एक ऐसी दुनिया छिपी है जो आपके बनाए जाने का इंतज़ार कर रही है.

    प्रॉम्प्ट के किस हिस्से में गड़बड़ी हुई, यह पता लगाना

    यह जानना मुश्किल हो सकता है कि कोई प्रॉम्प्ट क्यों काम नहीं कर रहा है. ऐसा हो सकता है कि मॉडल को शुरुआत में इमेज समझ न आई हो या इमेज समझ आने के बाद, उसने रीज़निंग के सही चरणों का पालन न किया हो. इन वजहों के बीच अंतर करने के लिए, मॉडल से इमेज में मौजूद चीज़ों के बारे में बताने के लिए कहें.

    यहां दिए गए उदाहरण में, अगर मॉडल चाय के साथ खाने के लिए किसी ऐसे स्नैक का सुझाव देता है जो चाय के साथ खाने के लिए सही नहीं है (जैसे, पॉपकॉर्न), तो पहले यह पता लगाएं कि मॉडल ने इमेज में मौजूद चाय को सही तरीके से पहचाना है या नहीं.

    प्रॉम्प्ट समस्या हल करने के लिए प्रॉम्प्ट

    एक मिनट में ऐसा कौनसा स्नैक बनाया जा सकता है जो इसके साथ अच्छा लगे?

    इस इमेज में क्या है, इसके बारे में बताओ.

    एक और रणनीति यह है कि मॉडल से उसकी वजह बताने के लिए कहें. इससे आपको यह समझने में मदद मिल सकती है कि तर्क का कौनसा हिस्सा गलत था.

    प्रॉम्प्ट समस्या हल करने के लिए प्रॉम्प्ट

    एक मिनट में ऐसा कौनसा स्नैक बनाया जा सकता है जो इसके साथ अच्छा लगे?

    एक मिनट में ऐसा कौनसा स्नैक बनाया जा सकता है जो इसके साथ अच्छा लगे? कृपया वजह बताएं.

    आगे क्या करना है

    • Google AI Studio का इस्तेमाल करके, टेक्स्ट, इमेज वग़ैरह का एक साथ इस्तेमाल करके प्रॉम्प्ट लिखने की कोशिश करें.
    • मीडिया फ़ाइलें अपलोड करने और उन्हें अपने प्रॉम्प्ट में शामिल करने के लिए, Gemini Files API का इस्तेमाल करने के बारे में जानकारी पाने के लिए, Vision, ऑडियो, और दस्तावेज़ प्रोसेसिंग गाइड देखें.
    • प्रॉम्प्ट डिज़ाइन करने के बारे में ज़्यादा जानकारी पाने के लिए, प्रॉम्प्ट की रणनीतियां पेज देखें. जैसे, सैंपलिंग पैरामीटर को ट्यून करना.