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

REST

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 পদ্ধতি ব্যবহার করে মডেলের মাধ্যমে জেনারেট করা ফাইল, যেমন ভিডিও ডাউনলোড করতে পারবেন। Files API, Gemini 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 = ৪ বসিয়ে পাই:

      $$ 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) = ১৩৫ * (-৩) = -৪০৫.

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

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

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

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

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

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

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

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

    একটি ছবির প্রম্পটের ক্ষেত্রে প্রথমে আপনার ছবি যোগ করুন

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

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

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

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

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

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

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

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

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

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

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

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

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

    এই ওজনের রেঞ্জে থাকা বাচ্চাদের গড় বয়স ১ থেকে ২ বছরের মধ্যে।

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    এই ছবি সম্পর্কে আমাকে একটি কবিতা লিখে দিতে পারবে?

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

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

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

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

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

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

    ছোট্ট খরগোশ, সত্যি করে বলো তো,
    কী এমন আছে যা তোমার মন কেড়ে নেয়?
    লবণাক্ত বাতাস,
    নাকি গাংচিলের ডাক, কোনটি তোমার মন জয় করে?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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