फ़ाइल एपीआई

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

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

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

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

मीडिया फ़ाइल अपलोड करने के लिए, Files API का इस्तेमाल किया जा सकता है. जब अनुरोध का कुल साइज़ (इसमें फ़ाइलें, टेक्स्ट प्रॉम्प्ट, सिस्टम के निर्देश वगैरह शामिल हैं) 100 एमबी से ज़्यादा हो, तब हमेशा Files API का इस्तेमाल करें. पीडीएफ़ फ़ाइलों के लिए, यह सीमा 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)
}

REST

# 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)
    }
}

REST

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 बजे
  • दोपहर 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) में होना चाहिए. ऐसा खास तौर पर तब होता है, जब मॉडल आउटपुट को किसी डाउनस्ट्रीम टास्क में इस्तेमाल करना हो. प्रॉम्प्ट में मॉडल को निर्देश देकर, उस फ़ॉर्मैट में आउटपुट जनरेट करने की कोशिश की जा सकती है. यहां दो उदाहरण दिए गए हैं:

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

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

    ```none | Subject | Status | Time | Start date | Due on | | ------- | ------ | ---- | ---------- | ------ | | Math | Done | 1.5 hrs | 11/29/2023 | 12/1/2023 | | Geography | Done | 30 min | 12/2/2023 | 12/4/2023 | | Physics | In progress | 2 hrs | 12/3/2023 | 12/5/2023 | | Biology | Not started | 6 hrs | 11/2/2016 | 12/6/2023 | ```
    प्रॉम्प्ट मॉडल का जवाब

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

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

    ```json { "ingredients": [ "rice", "shrimp", "clams", "mussels", "peas", "tomatoes", "onions", "garlic", "olive oil", "paprika", "salt", "pepper" ], "type of cuisine": "Spanish", "vegetarian": false } ```

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

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

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

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

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

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

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

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

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

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

    मेरे पास मौजूद डायपर कब तक चलेंगे?

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

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

    बॉक्स में 198 डायपर हैं. बॉक्स पर लिखा है कि ये डायपर, 10 से 17 किलोग्राम वज़न वाले बच्चे के लिए हैं.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    इसके साथ खाने के लिए, एक मिनट में कौनसा स्नैक बनाया जा सकता है?

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

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

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

    इसके साथ खाने के लिए, एक मिनट में कौनसा स्नैक बनाया जा सकता है?

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

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

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