Files API

Gemini একই সাথে টেক্সট, ছবি ও অডিও সহ বিভিন্ন ধরনের ইনপুট ডেটা ম্যানেজ করতে পারে।

Files API ব্যবহার করে কীভাবে মিডিয়া ফাইল নিয়ে কাজ করতে হয় তা এই নির্দেশিকা থেকে জানতে পারবেন। অডিও ফাইল, ছবি, ভিডিও, ডকুমেন্ট এবং অন্যান্য কাজ করে এমন ফাইলের ধরনের জন্য প্রাথমিক অপারেশনগুলি একই।

ফাইল প্রম্পট সংক্রান্ত নির্দেশিকার জন্য, ফাইল প্রম্পট গাইড বিভাগটি দেখুন।

একটি ফাইল আপলোড করুন

মিডিয়া ফাইল আপলোড করতে আপনি Files API ব্যবহার করতে পারবেন। মোট অনুরোধের সাইজ (ফাইল, টেক্সট প্রম্পট, সিস্টেম নির্দেশাবলী ইত্যাদি সহ) ১০০ এমবির বেশি হলে, সবসময় Files API ব্যবহার করুন। পিডিএফ ফাইলের ক্ষেত্রে, সীমা হল ৫০ এমবি।

নিম্নলিখিত কোডটি একটি ফাইল আপলোড করে এবং তারপরে 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)

জাভাস্ক্রিপ্ট

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

কোনও ফাইলের মেটাডেটা পাওয়া

API আপলোড করা ফাইলটি সফলভাবে স্টোর করেছে কিনা তা আপনি যাচাই করতে পারবেন এবং 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)

জাভাস্ক্রিপ্ট

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)

জাভাস্ক্রিপ্ট

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"

আপলোড করা ফাইল মুছে দিন

৪৮ ঘণ্টা পরে ফাইল অটোমেটিক মুছে যায়। এছাড়াও, আপনি আপলোড করা ফাইল ম্যানুয়ালি মুছতে পারবেন:

Python

from google import genai

client = genai.Client()

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

জাভাস্ক্রিপ্ট

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 আপনাকে প্রতিটি প্রোজেক্টে ২০ জিবি পর্যন্ত ফাইল স্টোর করতে দেয়, যার মধ্যে প্রতিটি ফাইলের সর্বোচ্চ সাইজ ২ জিবি। ফাইল ৪৮ ঘণ্টার জন্য স্টোর করা হয়।

সেই সময়, আপনি ফাইল সম্পর্কে মেটাডেটা পেতে API ব্যবহার করতে পারবেন। তবে, ব্যবহারকারীর আপলোড করা ফাইল আপনি ডাউনলোড করতে পারবেন না। আপনি files.download পদ্ধতি ব্যবহার করে মডেলের মাধ্যমে জেনারেট করা ফাইল, যেমন ভিডিও ডাউনলোড করতে পারবেন। Gemini API উপলভ্য এমন সব অঞ্চলে Files API ফ্রিতে উপলভ্য।

ফাইল প্রম্পটিং স্ট্র্যাটেজি

এই বিভাগে Gemini API-এর জন্য প্রম্পটের সাথে মিডিয়া ফাইল ব্যবহার করার ব্যাপারে নির্দেশিকা ও পেশাদার পদ্ধতি দেওয়া হয়েছে।

আপনার প্রম্পটে বিভিন্ন ধরনের ডেটা ব্যবহার করতে পারলে, Gemini API-এর সাহায্যে আপনি কী কী টাস্ক সম্পূর্ণ করতে পারবেন, সেই বিষয়ে আরও বেশি নমনীয়তা পাবেন। যেমন, আপনি মডেলকে একটি সুস্বাদু খাবারের ফটো পাঠাতে পারেন এবং খাবারটি সম্পর্কে একটি ছোট ব্লগ লিখতে বলতে পারেন।

প্রম্পট প্রতিক্রিয়া

এই ছবির উপর ভিত্তি করে একটি ছোট, আকর্ষণীয় ব্লগ পোস্ট লেখো। এতে ফটোতে দেখানো খাবারের বিবরণ এবং খাবার তৈরির ব্যাপারে আমার অভিজ্ঞতার কথা থাকতে হবে।


কুকিজ

সময় ও অর্থ সাশ্রয় করার জন্য খাবার প্রস্তুত করা একটি দুর্দান্ত উপায় এবং এটি আপনাকে স্বাস্থ্যকর খাবার খেতেও সাহায্য করতে পারে। এই খাবারটি স্বাস্থ্যকর এবং সুস্বাদু খাবারের একটি দুর্দান্ত উদাহরণ যা সময়ের আগেই প্রস্তুত করা যেতে পারে।

এই খাবারে ব্রাউন রাইস, রোস্ট করা সবজি ও চিকেন তেরিয়াকি আছে। ব্রাউন রাইস হল একটি স্বাস্থ্যকর এবং জটিল কার্বোহাইড্রেট যা আপনাকে দীর্ঘস্থায়ী শক্তি দেবে। রোস্ট করা সবজি হল আপনার দৈনিক ভিটামিন ও মিনারেলের ডোজ পাওয়ার একটি দুর্দান্ত উপায় এবং চিকেন তেরিয়াকি হল একটি সুস্বাদু ও প্রোটিন-সমৃদ্ধ বিকল্প।

এই খাবারটি তৈরি করাও সহজ। শুধু ব্রাউন রাইস রান্না করুন, সবজি রোস্ট করুন এবং চিকেন তেরিয়াকি রান্না করুন। সবকিছু রান্না হয়ে গেলে, খাবার প্রস্তুত করার পাত্রে ভাগ করে নিন এবং ফ্রিজে স্টোর করুন। তারপর আপনি একটি কন্টেনার নিয়ে ব্যস্ত সকালে বেরিয়ে পড়তে পারেন!

আপনি যদি এমন স্বাস্থ্যকর ও সুস্বাদু খাবার খুঁজছেন যা আগে থেকেই প্রস্তুত করে রাখা যায়, তাহলে এই খাবারটি একটি দুর্দান্ত বিকল্প। এটি পুষ্টি ও স্বাদে ভরপুর এবং এটি খেলে আপনার পেট ভরে যাবে ও আপনি তৃপ্তি পাবেন।

স্বাস্থ্যকর ও সুস্বাদু খাবার তৈরি করার জন্য শুভেচ্ছা!

মিডিয়া ফাইল ব্যবহার করে এমন প্রম্পট থেকে আপনার কাঙ্ক্ষিত আউটপুট পেতে সমস্যা হলে, কিছু কৌশল আছে যা আপনাকে কাঙ্ক্ষিত ফলাফল পেতে সাহায্য করতে পারে। নিচের বিভাগগুলিতে মাল্টিমোডাল ইনপুট ব্যবহার করে এমন প্রম্পট উন্নত করার জন্য ডিজাইন পদ্ধতি এবং সমস্যার সমাধানকরণ পরামর্শ প্রদান করা হয়েছে।

এইসব পেশাদার পদ্ধতি অনুসরণ করে আপনি মাল্টিমোডাল প্রম্পট উন্নত করতে পারবেন:

  • প্রম্পট ডিজাইনের মূল কথা

    • আপনার নির্দেশাবলীতে সুনির্দিষ্ট হোন: স্পষ্ট এবং সংক্ষিপ্ত নির্দেশাবলী তৈরি করুন যাতে ভুল ব্যাখ্যার জন্য ন্যূনতম সুযোগ থাকে।
    • আপনার প্রম্পটে কয়েকটি উদাহরণ যোগ করুন: আপনি কী অর্জন করতে চান তা বোঝাতে বাস্তবসম্মত কয়েকটা-শট উদাহরণ ব্যবহার করুন।
    • ধাপে ধাপে ভেঙে নিন: জটিল টাস্ককে ম্যানেজ করা যায় এমন সাব-গোলে ভাগ করে নিন, প্রসেসের মাধ্যমে মডেলকে গাইড করুন।
    • আউটপুট ফর্ম্যাট নির্দিষ্ট করুন: আপনার প্রম্পটে, Markdown, JSON, HTML এবং আরও অনেক কিছুর মতো আপনি যে ফর্ম্যাটে আউটপুট চান তা জিজ্ঞাসা করুন।
    • সিঙ্গেল-ইমেজ প্রম্পটের ক্ষেত্রে প্রথমে ছবি দিন: Gemini যেকোনও ক্রমে ছবি ও টেক্সট ইনপুট ম্যানেজ করতে পারলেও, সিঙ্গেল-ইমেজ প্রম্পটের ক্ষেত্রে টেক্সট প্রম্পটের আগে ছবি (বা ভিডিও) দিলে সেটি আরও ভালো পারফর্ম করতে পারে। তবে, যেসব প্রম্পটের ক্ষেত্রে অর্থপূর্ণ হওয়ার জন্য ছবি ও টেক্সটকে অত্যন্ত ইন্টারলিভড হতে হয়, সেগুলির ক্ষেত্রে সবচেয়ে স্বাভাবিক ক্রম ব্যবহার করুন।
  • আপনার মাল্টিমোডাল প্রম্পট সংক্রান্ত সমস্যার সমাধান করা

    • মডেল যদি ছবির প্রাসঙ্গিক অংশ থেকে তথ্য না নেয়: ছবির কোন কোন দিক থেকে প্রম্পট তথ্য নেবে সেই বিষয়ে ইঙ্গিত দিন।
    • মডেল আউটপুট খুব সাধারণ হলে (ইমেজ/ভিডিও ইনপুটের সাথে যথেষ্ট মানানসই না হলে): প্রম্পটের শুরুতে, টাস্কের নির্দেশাবলী দেওয়ার আগে মডেলকে ইমেজ বা ভিডিও বর্ণনা করতে বলুন অথবা ইমেজে কী আছে তা উল্লেখ করতে বলুন।
    • কোন অংশটি ব্যর্থ হয়েছে তা সমাধান করতে: মডেলটিকে ছবি বর্ণনা করতে বলুন, অথবা মডেলটিকে তার যুক্তি ব্যাখ্যা করতে বলুন, যাতে মডেলের প্রাথমিক বোঝাপড়া পরিমাপ করা যায়।
    • আপনার প্রম্পটের ফলে হ্যালুসিনেটেড কন্টেন্ট তৈরি হলে: টেম্পারেচার সেটিং কমিয়ে দেখুন বা মডেলকে আরও ছোট বিবরণ দিতে বলুন যাতে অতিরিক্ত বিবরণ এক্সট্রাপোলেট করার সম্ভাবনা কম থাকে।
    • স্যাম্পেলিং প্যারামিটার টিউন করা: মডেলের ক্রিয়েটিভিটি অ্যাডজাস্ট করতে বিভিন্ন টেম্পারেচার সেটিংস ও টপ-k সিলেকশন নিয়ে এক্সপেরিমেন্ট করুন।

আপনার নির্দেশাবলী সুনির্দিষ্ট করুন

স্পষ্ট ও বিস্তারিত প্রম্পট সবচেয়ে বেশি সফল হয়। আপনার মনে যদি কোনও নির্দিষ্ট আউটপুট থাকে, তাহলে আপনি যে আউটপুট চান তা নিশ্চিত করতে প্রম্পটে সেই প্রয়োজনীয়তা অন্তর্ভুক্ত করা ভাল।

এয়ারপোর্ট বোর্ডের এই ছবির জন্য, মডেলকে শুধু "এই ছবির বিবরণ দাও" বললে, এটি একটি সাধারণ বিবরণ জেনারেট করতে পারে। আপনি যদি চান যে মডেলটি ছবি থেকে সময় এবং শহর পার্স করুক, তাহলে আপনি সরাসরি আপনার প্রম্পটে সেই অনুরোধ অন্তর্ভুক্ত করতে পারেন।

প্রম্পট মডেলের উত্তর

এই ছবিটির বিবরণ দিন।

ছবিতে বিমানবন্দরে আগমন ও প্রস্থানের বোর্ড দেখানো হয়েছে।

আপডেট করা প্রম্পট উন্নত উত্তর
ভ্রমণের সময়সূচি

এই ছবিতে দেখানো বিমানবন্দরের বোর্ড থেকে সময় এবং শহরের নাম একটি তালিকায় পার্স করুন।

  • ১০:৫০ মস্কো
  • ১১:০৫ এডিনবার্গ
  • ১১:০৫ লন্ডন
  • ১১:১০ বুখারেস্ট
  • ১১:৩০ কিয়েভ
  • ১১:৩৫ ডাবলিন
  • ১১:৪৫ পূর্ব মিডল্যান্ডস
  • ১২:১৫ সোফিয়া
  • ১২:৩০ লন্ডন
  • ১২:৩০ নিউক্যাসল
  • ১২:৪০ সেন্ট পিটার্সবার্গ
  • ১২:৪০ লন্ডন
  • ১২:৪৫ ম্যানচেস্টার
  • কিছু উদাহরণ যোগ করুন

    Gemini মডেল একাধিক ইনপুট গ্রহণ করতে পারে যা এটি আপনার কাঙ্ক্ষিত আউটপুট বুঝতে উদাহরণ হিসেবে ব্যবহার করতে পারে। এইসব উদাহরণ যোগ করলে, মডেলকে প্যাটার্ন শনাক্ত করতে এবং প্রদত্ত ছবি ও নতুন উদাহরণের উত্তরের মধ্যে সম্পর্ক প্রয়োগ করতে সাহায্য করতে পারে। একে "কয়েকটা-শট" লার্নিংও বলা হয়।

    নিচের উদাহরণে, প্রাথমিক আউটপুটটি বাক্যের আকারে লেখা হয়েছে, এবং এতে দেশের নামও (ব্রাজিল) রয়েছে। ধরুন, আপনি অন্য ফর্ম্যাট বা স্টাইলে আউটপুট চান এবং আপনি শুধু শহরের নাম চান, দেশের নাম নয়। আপনার প্রম্পটে কয়েকটা-শট উদাহরণ যোগ করলে, মডেলটি আপনার পছন্দমতো উত্তর দিতে পারে।

    প্রম্পট মডেলের উত্তর
    ভ্রমণের সময়সূচি

    ল্যান্ডমার্কের সাথে শহরের নাম নির্ধারণ করুন।

    ল্যান্ডমার্কটি হল ব্রাজিলের রিও ডি জেনেইরোতে ক্রাইস্ট দ্য রিডিমারের মূর্তি।

    আপডেট করা প্রম্পট উন্নত উত্তর

    ল্যান্ডমার্কের সাথে শহরের নাম নির্ধারণ করুন।

    কলোসিয়াম

    শহর: রোম, ল্যান্ডমার্ক: কলোসিয়াম।

    নিষিদ্ধ শহর

    শহর: বেজিং, ল্যান্ডমার্ক: ফরবিডেন সিটি

    ফরবিডেন-সিটি

    শহর: রিও ডি জেনেইরো, ল্যান্ডমার্ক: ক্রাইস্ট দ্য রিডিমারের মূর্তি

    ধাপে ধাপে এটি ভেঙে দিন

    জটিল টাস্কের ক্ষেত্রে, যেমন যেগুলির জন্য ভিজ্যুয়াল বোঝা এবং যুক্তি, উভয়েরই প্রয়োজন হয়, সেক্ষেত্রে টাস্কটিকে ছোট ছোট, আরও সহজ ধাপে ভাগ করে নিলে সুবিধা হতে পারে। অন্যথায়, আপনি প্রম্পটে সরাসরি মডেলকে "ধাপে ধাপে চিন্তা করতে" বললে সেটিও কার্যকর হতে পারে।

    প্রম্পট মডেলের উত্তর

    আমার টয়লেট পেপার কখন শেষ হবে?

    শীঘ্রই, আপনার কাছে মাত্র ৩টি রোল বাকি থাকবে।

    আপডেট করা প্রম্পট উন্নত উত্তর
    1. প্রথমে, এই ছবিতে কতগুলি টয়লেট পেপার রোল আছে তা গণনা করো।
    2. তারপর, একজন সাধারণ ব্যক্তি প্রতিদিন কতটা টয়লেট পেপার ব্যবহার করেন তা নির্ধারণ করো।
    3. এই টয়লেট পেপারের রোল কতদিন চলবে তা হিসেব করো।
    1. এই ছবিতে ৩টি টয়লেট পেপারের রোল আছে।
    2. একজন ব্যক্তি সাধারণত দিনে ২০টি টয়লেট পেপার শিট ব্যবহার করেন।
    3. প্রতিটি রোলে ২০০টি শিট থাকলে, প্রতিটি রোল প্রায় ১০ দিন চলবে। তাই, ৩টি রোল প্রায় এক মাস চলবে।

    মডেলকে ধাপে ধাপে চিন্তা করতে বলার জন্য গণিতের সমস্যা বা অন্যান্য ধরনের শব্দ সমস্যাগুলি দারুণ প্রার্থী।

    প্রম্পট প্রতিক্রিয়া

    এই সিকোয়েন্সের চতুর্থ পদটি কী?

    -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)-এর মান হল ১৫, তাই ফর্মুলাতে এটি বসিয়ে পাই:

      $$ 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 $$

    সুতরাং, এই অনুক্রমের চতুর্থ পদ হল -৪০৫।

    এই মডেলের উত্তর সঠিক - এখন উত্তরটিকে আরও স্ট্রিমলাইন করতে, আপনি মডেলটিকে ধাপে ধাপে চিন্তা করতে বলতে পারেন।

    আপডেট করা প্রম্পট উন্নত উত্তর

    এই সিকোয়েন্সের চতুর্থ পদটি কী? ধাপে ধাপে ভাবুন।

    প্রথম পদটি হল ১৫।

    দ্বিতীয় পদটি হল b(1) * (-3) = 15 * (-3) = -45।

    তৃতীয় পদটি হল b(2) * (-3) = -45 * (-3) = ১৩৫।

    চতুর্থ পদটি হল b(3) * (-3) = 135 * (-3) = -405.

    আউটপুট ফর্ম্যাট নির্দিষ্ট করুন

    একটি সাধারণ সমস্যা হল মডেল আউটপুট একটি নির্দিষ্ট ফর্ম্যাটে হতে হবে (যেমন Markdown, JSON, HTML), বিশেষ করে যদি মডেল আউটপুট একটি ডাউনস্ট্রিম টাস্ক দ্বারা ইনজেস্ট করা প্রয়োজন। আপনি প্রম্পটের মধ্যে মডেলকে নির্দেশ দিয়ে সেই ফর্ম্যাটে আউটপুট তৈরি করার চেষ্টা করতে পারেন। নিচে দুটি উদাহরণ দেওয়া হল:

    প্রম্পট মডেলের উত্তর

    এই ছবিতে থাকা টেবিলটি মার্কডাউন ফর্ম্যাটে পার্স করুন

    ```none | বিষয় | স্ট্যাটাস | সময় | শুরুর তারিখ | জমা দেওয়ার তারিখ | | ------- | ------ | ---- | ---------- | ------ | | অঙ্ক | হয়ে গেছে | ১.৫ ঘণ্টা | ২৯/১১/২০২৩ | ১/১২/২০২৩ | | ভূগোল | হয়ে গেছে | ৩০ মিনিট | ২/১২/২০২৩ | ৪/১২/২০২৩ | | ফিজিক্স | চলছে | ২ ঘণ্টা | ৩/১২/২০২৩ | ৫/১২/২০২৩ | | বায়োলজি | শুরু হয়নি | ৬ ঘণ্টা | ২/১১/২০১৬ | ৬/১২/২০২৩ | ```
    প্রম্পট মডেলের উত্তর

    নিম্নলিখিত সব অ্যাট্রিবিউটের তালিকা প্রদান করুন:

    JSON ফর্ম্যাটে উপকরণ, রান্নার ধরন, নিরামিষ নাকি আমিষ

    ```json { "ingredients": [ "ভাত", "চিংড়ি", "ক্ল্যাম", "মাসেল", "মটরশুঁটি", "টমেটো", "পেঁয়াজ", "রসুন", "অলিভ অয়েল", "প্যাপ্রিকা", "নুন", "গোলমরিচ" ], "type of cuisine": "স্প্যানিশ", "vegetarian": false } ```

    সিঙ্গেল-ইমেজ প্রম্পটের জন্য প্রথমে আপনার ছবি রাখুন

    Gemini কোনও প্রম্পটের মধ্যে যেকোনও ক্রমে ছবি ও টেক্সট ব্যাখ্যা করতে পারলেও, টেক্সট প্রম্পটের আগে একটি ছবি রাখলে আরও ভালো ফলাফল পাওয়া যেতে পারে। নিচের স্যাম্পেলে আপনি লক্ষ্য করবেন যে প্রতিটি প্রম্পটে টেক্সটের আগে ছবি দেওয়া হয়েছে।

    আপনার মাল্টিমোডাল প্রম্পট সংক্রান্ত সমস্যার সমাধান করা

    আপনি যদি কোনও সহায়ক উত্তর না পান, তাহলে আপনাকে প্রম্পটের সমস্যার সমাধান করতে হতে পারে। আপনি এগুলি করে দেখতে পারেন।

    মডেল যদি ছবির প্রাসঙ্গিক অংশ থেকে তথ্য না নেয়

    আরও নির্দিষ্ট উত্তর পেতে, আপনি ছবির কোন দিক থেকে তথ্য নিয়ে প্রম্পট উত্তর দেবে তা উল্লেখ করতে পারেন।

    প্রম্পট মডেলের উত্তর

    এই ডায়পারগুলি একটি বাচ্চার কত দিন চলবে?

    ডায়াপার শেষ হতে ১৯৮ দিন লাগবে।

    আপডেট করা প্রম্পট উন্নত উত্তর

    আমার কাছে থাকা ডায়পার কতদিন চলবে?

    বক্সে দেখানো ওজন ব্যবহার করে বাচ্চার বয়স নির্ধারণ করুন এবং বক্সে থাকা ডায়পারের মোট সংখ্যা ব্যবহার করুন।

    মোট সংখ্যাকে ভাগ করুন, বাচ্চাটি প্রতিদিন কতগুলি ডায়াপার ব্যবহার করে তা দিয়ে।

    বক্সে ১৯৮টি ডায়াপার আছে। বক্সে লেখা আছে যে ডায়াপারটি ২২-৩৭ পাউন্ড ওজনের বাচ্চার জন্য।

    এই ওজনের বাচ্চারা সাধারণত ১ থেকে ২ বছর বয়সী হয়।

    ২ বছর বয়সী বাচ্চার সাধারণত দিনে ৬টি ডায়াপার লাগে, তাই ডায়াপারগুলি প্রায় ৩৩ দিন (১৯৮/৬) চলবে।

    মডেল আউটপুট যদি খুব সাধারণ হয় এবং ইমেজ ইনপুটের সাথে যথেষ্ট মানানসই না হয়

    মডেল যাতে ছবি অনুযায়ী উত্তর দিতে পারে, সেই জন্য রিজনিং টাস্ক করার আগে ছবি বর্ণনা করতে বলুন।

    প্রম্পট মডেলের উত্তর

    এইসব ছবির মধ্যে কী মিল আছে?

    চারটি ছবিই ল্যান্ডস্কেপ ফটোগ্রাফির উদাহরণ।

    আপডেট করা প্রম্পট উন্নত উত্তর

    প্রথমে, প্রতিটি ছবিতে কী আছে তা বিস্তারিতভাবে বর্ণনা করো। এইসব ছবির মধ্যে কী মিল আছে?

    প্রথম ছবিতে একজন ব্যক্তিকে সুটকেস প্যাক করতে দেখা যাচ্ছে। দ্বিতীয় ছবিতে শপিং মলের একটি খালি হলওয়ে দেখানো হয়েছে। তৃতীয় ছবিতে টয়লেট পেপারের রোল দেখানো হয়েছে। চতুর্থ ছবিতে অন্ধকার ও ঝোড়ো সমুদ্র দেখানো হয়েছে।

    এইসব ছবির মধ্যে সাধারণ বিষয় হল যে এগুলি সবই লিমনাল স্পেসের উদাহরণ। লিমিটিড স্পেস হল এমন জায়গা বা পরিস্থিতি যা অন্য দুটি জায়গা বা পরিস্থিতির মধ্যে থাকে। এগুলি প্রায়শই অনিশ্চয়তা বা অস্পষ্টতার অনুভূতি দ্বারা চিহ্নিত করা হয়।

    প্রথম ছবিতে দেখানো হয়েছে যে ব্যক্তিটি বাড়িতে আছেন এবং ট্রিপে আছেন। দ্বিতীয় ছবিতে দুটি স্টোরের মাঝখানে হলওয়ে দেখানো হয়েছে। তৃতীয় ছবিটি হল টয়লেট পেপারের, যা বাথরুমকে বোঝাতে পারে। বাথরুম হল ব্যক্তিগত এবং সর্বজনীন ক্ষেত্রের মধ্যে একটি ট্রানজিশনাল স্পেস। এটি এমন একটি জায়গা যেখানে আমরা বাইরের জগতে প্রবেশ করার বা সেখান থেকে ফিরে আসার জন্য নিজেদের প্রস্তুত করি।

    চতুর্থ ছবিতে শান্ত ও ঝোড়ো সমুদ্রের মাঝামাঝি অবস্থা দেখানো হয়েছে।

    লিমিটলেস স্পেস একই সাথে উত্তেজনাপূর্ণ ও অস্থির হতে পারে। এটি নতুন শুরুর জায়গা বা শেষ হওয়ার জায়গা হতে পারে। সেগুলি চিন্তাভাবনা বা কাজ করার জায়গা হতে পারে।

    এছাড়াও, আপনি মডেলকে ছবিতে কী আছে তা উল্লেখ করতে স্পষ্টভাবে জিজ্ঞাসা করার চেষ্টা করতে পারেন।

    আপডেট করা প্রম্পট উন্নত উত্তর

    এইসব ছবির মধ্যে কী মিল আছে? আপনার উত্তরে ছবির মধ্যে কী আছে তা উল্লেখ করুন।

    সব ছবিই ভ্রমণের সাথে সম্পর্কিত। প্রথম ছবিতে একজন ব্যক্তিকে স্যুটকেস প্যাক করতে দেখা যাচ্ছে, দ্বিতীয় ছবিতে শপিং মলের একটি খালি হলওয়ে দেখা যাচ্ছে, তৃতীয় ছবিতে টয়লেট পেপারের একটি স্তূপ দেখা যাচ্ছে এবং চতুর্থ ছবিতে একটি অন্ধকার ও ঝোড়ো সমুদ্র দেখা যাচ্ছে।

    এইসব ছবি ভ্রমণের সাথে সম্পর্কিত কারণ এগুলি হল সেইসব জিনিস যা ভ্রমণের সময় লোকজনের প্রয়োজন হয় বা তারা ব্যবহার করেন। প্রথম ছবিতে দেখা যাচ্ছে যে একজন ব্যক্তি সুটকেস প্যাক করছেন, যা মানুষ ট্রিপে যাওয়ার সময় করে থাকেন। দ্বিতীয় ছবিতে একটি শপিং মলের খালি হলওয়ে দেখানো হয়েছে, যেখানে লোকজন প্রায়ই তাদের ট্রিপের জন্য জিনিসপত্র কিনতে যান। তৃতীয় ছবিতে টয়লেট পেপারের একটি স্ট্যাক দেখানো হয়েছে, যা লোকজন প্রায়শই ভ্রমণের সময় ব্যবহার করেন। চতুর্থ ছবিতে একটি অন্ধকার এবং ঝোড়ো সমুদ্র দেখানো হয়েছে, যা ভ্রমণ করার সময় মানুষ প্রায়শই দেখতে পান।

    ছবি থেকে ক্রিয়েটিভ আউটপুট পাওয়ার ক্ষেত্রেও একই পরামর্শ প্রযোজ্য। খরগোশের সাথে নিম্নলিখিত উদাহরণে, মডেলকে স্পষ্টভাবে ছবির দিকগুলি অন্তর্ভুক্ত করতে বলা হলে আউটপুট উন্নত হতে পারে।

    প্রম্পট মডেলের উত্তর

    এই ছবি নিয়ে আমাকে একটি কবিতা লিখে দিতে পারবে?

    ছোট্ট খরগোশ, খুব নরম ও বাদামি,
    মাঠের মধ্যে লাফাচ্ছে, উপরে ও নিচে।
    তোমার কান এত লম্বা, তোমার লেজ এত ছোট,
    তুমি তাদের মধ্যে সবচেয়ে মিষ্টি প্রাণী।

    তুমি সবুজ ও মিষ্টি ঘাস খাও,
    আর আমাকে দেখলেই লাফিয়ে পালাও।
    কিন্তু আমি সবসময় তোমার বন্ধু হয়ে থাকব,
    ছোট্ট খরগোশ, একদম শেষ পর্যন্ত।

    আপডেট করা প্রম্পট উন্নত উত্তর

    এই ছবি সম্পর্কে একটি বর্ণনামূলক এবং নাটকীয় কবিতা লিখতে এবং লোকেশন অন্তর্ভুক্ত করতে পারবেন?

    সবুজ ঘাসে ছোট্ট খরগোশ,
    কান দুটি তার লম্বা, সজাগ।
    ওখানে কী দেখছ,
    দূরে, যেখানে তুমি তাকিয়ে আছ?

    এটা কি সমুদ্রের নীল,
    যা সূর্যের আলোয় ঝিলমিল করে?
    নাকি সমুদ্রের ঢেউয়ের গর্জন,
    যা তোমার মনকে করে হরণ?

    ছোট্ট খরগোশ, সত্যি করে বলো,
    তোমার মনোযোগ কীসে এত আকৃষ্ট হয়?
    নোনা হাওয়া,
    নাকি গাঙচিলের ডাক?

    হয়তো এর বিশালতার জন্যই,
    পৃথিবীটা এত বড় এবং ছোট।
    এমন এক জায়গা যেখানে স্বপ্নরা ঘুরে বেড়ায়,
    আর অ্যাডভেঞ্চাররা বীজ বোনে।

    ছোট্ট খরগোশ, তুমি কী স্বপ্ন দেখছো,
    ঘাসের উপর বসে আছো, শান্ত হয়ে।
    তুমি কি গভীর সমুদ্র এক্সপ্লোর করতে চাও,
    নাকি ডাঙায় থেকে লাফাতে চাও?

    সে যাই হোক না কেন, ছোট্ট খরগোশ,
    তোমার বিস্ময়ের স্ফুলিঙ্গকে উজ্জ্বলভাবে জ্বলতে দাও।
    কারণ আপনার স্বপ্ন ও আকাঙ্ক্ষায়,
    এমন এক পৃথিবী আছে যা আপনার সৃষ্টির অপেক্ষায়।

    প্রম্পটের কোন অংশ কাজ করেনি তা খুঁজে বের করা

    কোনও প্রম্পট ব্যর্থ হয়েছে কিনা তা জানা কঠিন হতে পারে কারণ মডেলটি শুরুতেই ছবিটি বুঝতে পারেনি, অথবা এটি ছবিটি বুঝতে পেরেছে কিন্তু পরে সঠিক যুক্তিপূর্ণ পদক্ষেপ গ্রহণ করেনি। এইসব কারণের মধ্যে অস্পষ্টতা দূর করতে, ছবিতে কী আছে তা বর্ণনা করতে মডেলকে বলুন।

    নিচের উদাহরণে, মডেল যদি চায়ের সাথে মানানসই নয় এমন কোনও স্ন্যাক্স (যেমন, পপকর্ন) সাজেস্ট করে, তাহলে আপনি প্রথমে সমস্যার সমাধান করে দেখতে পারেন যে মডেলটি ছবিতে চা আছে কিনা তা সঠিকভাবে শনাক্ত করেছে কিনা।

    প্রম্পট সমস্যার সমাধান করার প্রম্পট

    আমি ১ মিনিটে কী স্ন্যাক্স তৈরি করতে পারি যা এর সাথে ভালো লাগবে?

    এই ছবিতে কী আছে তা বর্ণনা করুন।

    আরেকটি কৌশল হল মডেলকে তার যুক্তি ব্যাখ্যা করতে বলা। এটি আপনাকে যুক্তি দেওয়ার কোন অংশটি ভেঙে গেছে তা সংকুচিত করতে সাহায্য করতে পারে, যদি থাকে।

    প্রম্পট সমস্যার সমাধান করার প্রম্পট

    আমি ১ মিনিটে কী স্ন্যাক্স তৈরি করতে পারি যা এর সাথে ভালো লাগবে?

    আমি ১ মিনিটে কী স্ন্যাক্স তৈরি করতে পারি যা এর সাথে ভালো লাগবে? কারণ ব্যাখ্যা করুন।

    এর পরে কী করতে হবে

    • Google AI Studio ব্যবহার করে আপনার নিজস্ব মাল্টিমোডাল প্রম্পট লেখার চেষ্টা করুন।
    • মিডিয়া ফাইল আপলোড করা এবং আপনার প্রম্পটে সেগুলি অন্তর্ভুক্ত করার জন্য Gemini Files API ব্যবহার করার বিষয়ে তথ্যের জন্য, Vision, অডিও এবং ডকুমেন্ট প্রসেসিং সংক্রান্ত নির্দেশিকা দেখুন।
    • প্রম্পট ডিজাইন সম্পর্কে আরও নির্দেশিকার জন্য, যেমন টিউনিং স্যাম্পলিং প্যারামিটার, প্রম্পট স্ট্র্যাটেজি পৃষ্ঠা দেখুন।