ফাইল ইনপুট পদ্ধতি

Gemini API-তে অনুরোধ করার সময় আপনি কীভাবে ছবি, অডিও, ভিডিও ও ডকুমেন্টের মতো মিডিয়া ফাইল যোগ করতে পারেন, তা এই গাইড থেকে জানতে পারবেন। নতুন পদ্ধতিগুলি ব্যাচ, ইন্টার‍্যাকশন ও Live API সহ সব Gemini API এন্ডপয়েন্টে কাজ করে। সঠিক পদ্ধতি বেছে নেওয়া নির্ভর করে আপনার ফাইলের সাইজ, ডেটা বর্তমানে কোথায় স্টোর করা আছে এবং আপনি কত ঘনঘন ফাইল ব্যবহার করার পরিকল্পনা করেছেন তার উপর।

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

Python

from google import genai
from google.genai import types
import pathlib

client = genai.Client()

filepath = pathlib.Path('my_local_file.pdf')

prompt = "Summarize this document"
response = client.models.generate_content(
  model="gemini-3.8-flash",
  contents=[
      types.Part.from_bytes(
        data=filepath.read_bytes(),
        mime_type='application/pdf',
      ),
      prompt
  ]
)
print(response.text)

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

import { GoogleGenAI } from "@google/genai";
import * as fs from 'node:fs';

const ai = new GoogleGenAI({});
const prompt = "Summarize this document";

async function main() {
    const filePath = path.join('content', 'my_local_file.pdf'); // Adjust path as needed

    const contents = [
        { text: prompt },
        {
            inlineData: {
                mimeType: 'application/pdf',
                data: fs.readFileSync(filePath).toString("base64")
            }
        }
    ];

    const response = await ai.models.generateContent({
        model: "gemini-3.8-flash",
        contents: contents
    });
    console.log(response.text);
}

main();

REST

# Encode the local file to base64
B64_CONTENT=$(base64 -w 0 my_local_file.pdf)

curl -X POST "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.8-flash:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "contents": [
      {
        "parts": [
          {"text": "Summarize this document"}
        ]
      },
      {
        "parts": [
          {
            "inlineData": {
              "mimeType": "application/pdf",
              "data": "'"${B64_CONTENT}"'"
            }
          }
        ]
      }
    ]
  }'

ইনপুট পদ্ধতির তুলনা

নিচের সারণীতে প্রতিটি ইনপুট পদ্ধতির সাথে ফাইল সীমা এবং সবচেয়ে ভাল ব্যবহার সংক্রান্ত কেস তুলনা করা হয়েছে। মনে রাখবেন, ফাইলের ধরন এবং ফাইল প্রসেস করার জন্য ব্যবহৃত মডেল/টোকেнайজারের উপর নির্ভর করে ফাইলের সাইজ সংক্রান্ত সীমা পরিবর্তিত হতে পারে।

পদ্ধতি এগুলির জন্য সেরা ফাইলের সর্বাধিক সাইজ পারসিস্টেন্স
ইনলাইন ডেটা দ্রুত পরীক্ষা, ছোট ফাইল, রিয়েল-টাইম অ্যাপ্লিকেশন। প্রতিটি অনুরোধ/পে-লোডের জন্য ১০০ এমবি
(PDF-এর জন্য ৫০ এমবি)
কোনওটিই নয় (প্রতিটি অনুরোধের সাথে পাঠানো হয়)
File API আপলোড বড় ফাইল, একাধিকবার ব্যবহার করা ফাইল। প্রতিটি ফাইলের জন্য ২ জিবি,
প্রতিটি প্রোজেক্টের জন্য সর্বাধিক ২০ জিবি
৪৮ ঘণ্টা
File API GCS URI রেজিস্ট্রেশন Google Cloud Storage-এ আগে থেকেই থাকা বড় ফাইল, একাধিকবার ব্যবহার করা ফাইল। প্রতিটি ফাইলের জন্য ২ জিবি, সামগ্রিক স্টোরেজ সীমাহীন কোনওটিই নয় (প্রতিটি অনুরোধের জন্য ফেচ করা হয়)। একবার রেজিস্ট্রেশন করলে ৩০ দিন পর্যন্ত অ্যাক্সেস পাওয়া যায়।
এক্সটার্নাল URL আবার আপলোড না করেই ক্লাউড বাকেটে (AWS, Azure, GCS) থাকা সর্বজনীন ডেটা বা ডেটা। প্রতিটি ফাইলের জন্য ১৫ এমবি কোনওটিই নয় (প্রতিটি অনুরোধের জন্য ফেচ করা হয়)

ইনলাইন ডেটা

ছোট ফাইলের (১০০ এমবির কম অথবা PDF-এর ক্ষেত্রে ৫০ এমবি) জন্য, আপনি সরাসরি অনুরোধের পেলোডে ডেটা পাস করতে পারবেন। দ্রুত পরীক্ষা বা রিয়েল-টাইম, ক্ষণস্থায়ী ডেটা ম্যানেজ করা অ্যাপ্লিকেশনের জন্য এটি সবচেয়ে সহজ পদ্ধতি। আপনি ডেটা base64 এনকোড করা স্ট্রিং হিসেবে প্রদান করতে পারেন অথবা সরাসরি লোকাল ফাইল রিড করে নিতে পারেন।

লোকাল ফাইল থেকে রিড করার উদাহরণের জন্য, এই পৃষ্ঠার শুরুতে দেওয়া উদাহরণ দেখুন।

URL থেকে ফেচ করা

এছাড়াও, আপনি কোনও URL থেকে ফাইল ফেচ করতে, এটিকে বাইটে কনভার্ট করতে এবং ইনপুটে অন্তর্ভুক্ত করতে পারবেন।

Python

from google import genai
from google.genai import types
import httpx

client = genai.Client()

doc_url = "https://discovery.ucl.ac.uk/id/eprint/10089234/1/343019_3_art_0_py4t4l_convrt.pdf"
doc_data = httpx.get(doc_url).content

prompt = "Summarize this document"

response = client.models.generate_content(
  model="gemini-3.8-flash",
  contents=[
      types.Part.from_bytes(
        data=doc_data,
        mime_type='application/pdf',
      ),
      prompt
  ]
)
print(response.text)

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

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

const ai = new GoogleGenAI({});
const docUrl = 'https://discovery.ucl.ac.uk/id/eprint/10089234/1/343019_3_art_0_py4t4l_convrt.pdf';
const prompt = "Summarize this document";

async function main() {
    const pdfResp = await fetch(docUrl)
      .then((response) => response.arrayBuffer());

    const contents = [
        { text: prompt },
        {
            inlineData: {
                mimeType: 'application/pdf',
                data: Buffer.from(pdfResp).toString("base64")
            }
        }
    ];

    const response = await ai.models.generateContent({
        model: "gemini-3.8-flash",
        contents: contents
    });
    console.log(response.text);
}

main();

REST

DOC_URL="https://discovery.ucl.ac.uk/id/eprint/10089234/1/343019_3_art_0_py4t4l_convrt.pdf"
PROMPT="Summarize this document"
DISPLAY_NAME="base64_pdf"

# Download the PDF
wget -O "${DISPLAY_NAME}.pdf" "${DOC_URL}"

# Check for FreeBSD base64 and set flags accordingly
if [[ "$(base64 --version 2>&1)" = *"FreeBSD"* ]]; then
  B64FLAGS="--input"
else
  B64FLAGS="-w0"
fi

# Base64 encode the PDF
ENCODED_PDF=$(base64 $B64FLAGS "${DISPLAY_NAME}.pdf")

# Generate content using the base64 encoded PDF
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.8-flash:generateContent" \
    -H "x-goog-api-key: $GEMINI_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [{
        "parts":[
          {"inline_data": {"mime_type": "application/pdf", "data": "'"$ENCODED_PDF"'"}},
          {"text": "'$PROMPT'"}
        ]
      }]
    }' 2> /dev/null > response.json

cat response.json
echo

jq ".candidates[].content.parts[].text" response.json

Gemini File API

File API বড় ফাইল (২ জিবি পর্যন্ত) বা একাধিক অনুরোধে ব্যবহার করার জন্য উদ্দেশ্যপূর্ণ ফাইলের জন্য ডিজাইন করা হয়েছে।

স্ট্যান্ডার্ড ফাইল আপলোড

Gemini API-তে একটি লোকাল ফাইল আপলোড করুন। এইভাবে আপলোড করা ফাইল সাময়িকভাবে (৪৮ ঘণ্টা) স্টোর করা হয় এবং মডেলের মাধ্যমে দক্ষতার সাথে রিট্রিভ করার জন্য প্রসেস করা হয়।

Python

from google import genai
client = genai.Client()

# Upload the file
audio_file = client.files.upload(file="path/to/your/sample.mp3")
prompt = "Describe this audio clip"

# Use the uploaded file in a prompt
response = client.models.generate_content(
    model="gemini-3.8-flash",
    contents=[prompt, audio_file]
)
print(response.text)

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

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

const ai = new GoogleGenAI({});
const prompt = "Describe this audio clip";

async function main() {
  const filePath = "path/to/your/sample.mp3"; // Adjust path as needed

  const myfile = await ai.files.upload({
    file: filePath,
    config: { mimeType: "audio/mpeg" },
  });

  const response = await ai.models.generateContent({
    model: "gemini-3.8-flash",
    contents: createUserContent([
      prompt,
      createPartFromUri(myfile.uri, myfile.mimeType),
    ]),
  });
  console.log(response.text);

}
await main();

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 generate content using that file
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.8-flash:generateContent" \
    -H "x-goog-api-key: $GEMINI_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [{
        "parts":[
          {"text": "Describe this audio clip"},
          {"file_data":{"mime_type": "${MIME_TYPE}", "file_uri": '$file_uri'}}]
        }]
      }' 2> /dev/null > response.json

cat response.json
echo

jq ".candidates[].content.parts[].text" response.json

Google Cloud Storage ফাইল রেজিস্টার করা

আপনার ডেটা আগে থেকেই Google Cloud Storage-এ থাকলে, আপনাকে এটি ডাউনলোড করে আবার আপলোড করতে হবে না। আপনি এটি সরাসরি File API-এর সাথে রেজিস্টার করতে পারবেন।

  1. প্রতিটি বাকেটে পরিষেবা এজেন্ট-কে অ্যাক্সেস দিন

    1. আপনার Google Cloud প্রোজেক্টে Gemini API চালু করুন।

    2. পরিষেবা এজেন্ট তৈরি করুন:

      gcloud beta services identity create --service=generativelanguage.googleapis.com --project=<your_project>

    3. আপনার স্টোরেজ বাকেট পড়ার জন্য Gemini API পরিষেবা এজেন্টকে অনুমতি দিন।

      ব্যবহারকারীকে এই পরিষেবা এজেন্টের জন্য নির্দিষ্ট স্টোরেজ বাকেটে Storage Object Viewer IAM ভূমিকা অ্যাসাইন করতে হবে।

    এই অ্যাক্সেসের মেয়াদ ডিফল্ট হিসেবে শেষ হয় না, তবে যেকোনও সময় পরিবর্তন করা যায়। অনুমতি দেওয়ার জন্য আপনি Google Cloud Storage IAM SDK কমান্ডও ব্যবহার করতে পারেন।

  2. আপনার পরিষেবা যাচাই করা

    পূর্বশর্ত

    • এপিআই চালু করুন
    • উপযুক্ত অনুমতি সহ একটি পরিষেবা অ্যাকাউন্ট/এজেন্ট তৈরি করুন।

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

    Google Cloud-এর বাইরে

    আপনার কোড Google Cloud-এর বাইরে, যেমন আপনার ডেস্কটপ থেকে রান করলে, নিচের ধাপগুলি অনুসরণ করে Google Cloud Console থেকে অ্যাকাউন্ট ক্রেডেনশিয়াল ডাউনলোড করুন:

    1. পরিষেবা অ্যাকাউন্ট কনসোলে ব্রাউজ করুন
    2. প্রাসঙ্গিক পরিষেবা অ্যাকাউন্ট বেছে নিন
    3. কী ট্যাব বেছে নিন এবং কী যোগ করুন, নতুন কী তৈরি করুন বিকল্প বেছে নিন
    4. JSON কীয়ের ধরন বেছে নিন এবং আপনার মেশিনে ফাইলটি কোথায় ডাউনলোড করা হয়েছে তা নোট করুন।

    আরও বিবরণের জন্য, পরিষেবা অ্যাকাউন্ট কী ম্যানেজমেন্ট সংক্রান্ত অফিসিয়াল Google Cloud ডকুমেন্টেশন দেখুন।

    তারপর যাচাই করার জন্য নিম্নলিখিত কমান্ড ব্যবহার করুন। এইসব কমান্ড ধরে নেয় যে আপনার সার্ভিস অ্যাকাউন্ট ফাইল বর্তমান ডিরেক্টরিতে আছে এবং এর নাম service-account.json।

    Python

    from google.oauth2.service_account import Credentials
    
    GCS_READ_SCOPES = [       
      'https://www.googleapis.com/auth/devstorage.read_only',
      'https://www.googleapis.com/auth/cloud-platform'
    ]
    
    SERVICE_ACCOUNT_FILE = 'service-account.json'
    
    credentials = Credentials.from_service_account_file(
        SERVICE_ACCOUNT_FILE,
        scopes=GCS_READ_SCOPES
    )
    

    Javascript

    const { GoogleAuth } = require('google-auth-library');
    
    const GCS_READ_SCOPES = [
      'https://www.googleapis.com/auth/devstorage.read_only',
      'https://www.googleapis.com/auth/cloud-platform'
    ];
    
    const SERVICE_ACCOUNT_FILE = 'service-account.json';
    
    const auth = new GoogleAuth({
      keyFile: SERVICE_ACCOUNT_FILE,
      scopes: GCS_READ_SCOPES
    });
    

    CLI

    gcloud auth application-default login \
      --client-id-file=service-account.json \
      --scopes='https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/devstorage.read_only'
    

    Google Cloud-এ

    আপনি যদি সরাসরি Google Cloud-এ রান করেন, যেমন Cloud Run ফাংশন বা Compute Engine ইনস্ট্যান্স ব্যবহার করে, তাহলে আপনার কাছে অন্তর্নিহিত ক্রেডেনশিয়াল থাকবে, কিন্তু উপযুক্ত স্কোপ দেওয়ার জন্য আপনাকে আবার যাচাই করতে হবে।

    Python

    এই কোড আশা করে যে পরিষেবাটি এমন একটি এনভায়রনমেন্টে চলছে যেখানে অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল অটোমেটিক পাওয়া যেতে পারে, যেমন Cloud Run বা Compute Engine।

    import google.auth
    
    GCS_READ_SCOPES = [       
      'https://www.googleapis.com/auth/devstorage.read_only',
      'https://www.googleapis.com/auth/cloud-platform'
    ]
    
    credentials, project = google.auth.default(scopes=GCS_READ_SCOPES)
    

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

    এই কোড আশা করে যে পরিষেবাটি এমন একটি এনভায়রনমেন্টে চলছে যেখানে অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল অটোমেটিক পাওয়া যেতে পারে, যেমন Cloud Run বা Compute Engine।

    const { GoogleAuth } = require('google-auth-library');
    
    const auth = new GoogleAuth({
      scopes: [
        'https://www.googleapis.com/auth/devstorage.read_only',
        'https://www.googleapis.com/auth/cloud-platform'
      ]
    });
    

    CLI

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

    gcloud auth application-default login \
    --scopes="https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/devstorage.read_only"
    
  3. ফাইল রেজিস্ট্রেশন (Files API)

    Files API ব্যবহার করে ফাইল রেজিস্টার করুন এবং Files API পাথ তৈরি করুন যা Gemini API-তে সরাসরি ব্যবহার করা যাবে।

    Python

    from google import genai
    from google.genai.types import Part
    
    # Note that you must provide an API key in the GEMINI_API_KEY
    # environment variable, but it is unused for the registration endpoint.
    client = genai.Client()
    
    registered_gcs_files = client.files.register_files(
        uris=["gs://my_bucket/some_object.pdf", "gs://bucket2/object2.txt"],
        # Use the credentials obtained in the previous step.
        auth=credentials
    )
    prompt = "Summarize this file."
    
    # call generateContent for each file
    for f in registered_gcs_files.files:
      print(f.name)
      response = client.models.generate_content(
        model="gemini-3.8-flash",
        contents=[Part.from_uri(
          file_uri=f.uri,
          mime_type=f.mime_type,
        ),
        prompt],
      )
      print(response.text)
    

    CLI

    access_token=$(gcloud auth application-default print-access-token)
    project_id=$(gcloud config get-value project)
    curl -X POST https://generativelanguage.googleapis.com/v1beta/files:register \
        -H 'Content-Type: application/json' \
        -H "Authorization: Bearer ${access_token}" \
        -H "x-goog-user-project: ${project_id}" \
        -d '{"uris": ["gs://bucket/object1", "gs://bucket/object2"]}'
    

এক্সটার্নাল HTTP / সাইন-ইন করা URL

আপনি জেনারেশন অনুরোধে সরাসরি সর্বজনীনভাবে অ্যাক্সেস করা যায় এমন HTTPS URL বা আগে থেকে সাইন করা URL (যা S3 Presigned URLs ও Azure SAS-এর সাথে মানানসই) পাস করতে পারবেন। প্রসেসিং চলাকালীন Gemini API নিরাপদে কন্টেন্ট ফেচ করবে। আপনি আবার আপলোড করতে চান না এমন ফাইলের জন্য এটি আদর্শ। প্রতিটি ফাইল সর্বাধিক ১৫ এমবি হতে পারে। বড় ফাইলের জন্য, File API ব্যবহার করুন।

আপনি file_uri ফিল্ডে URL ব্যবহার করে ইনপুট হিসেবে সর্বজনীন বা সাইন করা URL ব্যবহার করতে পারবেন।

Python

from google import genai
from google.genai.types import Part

uri = "https://ontheline.trincoll.edu/images/bookdown/sample-local-pdf.pdf"
prompt = "Summarize this file"

client = genai.Client()

response = client.models.generate_content(
    model="gemini-3.8-flash",
    contents=[
        Part.from_uri(
            file_uri=uri,
            mime_type="application/pdf",
        ),
        prompt
    ],
)
print(response.text)

Javascript

import { GoogleGenAI, createPartFromUri } from '@google/genai';

const client = new GoogleGenAI({});

const uri = "https://ontheline.trincoll.edu/images/bookdown/sample-local-pdf.pdf";

async function main() {
  const response = await client.models.generateContent({
    model: 'gemini-3.8-flash',
    contents: [
      // equivalent to Part.from_uri(file_uri=uri, mime_type="...")
      createPartFromUri(uri, "application/pdf"),
      "summarize this file",
    ],
  });

  console.log(response.text);
}

main();

REST

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.8-flash:generateContent \
      -H 'x-goog-api-key: $GEMINI_API_KEY' \
      -H 'Content-Type: application/json' \
      -d '{
          "contents":[
            {
              "parts":[
                {"text": "Summarize this pdf"},
                {
                  "file_data": {
                    "mime_type":"application/pdf",
                    "file_uri": "https://ontheline.trincoll.edu/images/bookdown/sample-local-pdf.pdf"
                  }
                }
              ]
            }
          ]
        }'

অ্যাক্সেসিবিলিটি

আপনি যেসব URL দিয়েছেন সেগুলি যেন লগ-ইন করতে হয় এমন পৃষ্ঠায় বা পেওয়ালের পিছনে না থাকে তা নিশ্চিত করুন। প্রাইভেট ডেটাবেসের ক্ষেত্রে, সঠিক অ্যাক্সেস অনুমতি ও মেয়াদ সহ স্বাক্ষরিত URL তৈরি করেছেন কিনা তা নিশ্চিত করুন।

নিরাপত্তা সংক্রান্ত পরীক্ষা

URL-এ কন্টেন্ট মডারেশন চেক করে সিস্টেম নিশ্চিত করে যে সেটি নিরাপত্তা ও নীতি সংক্রান্ত স্ট্যান্ডার্ড (যেমন, অপ্ট-আউট না করা ও পেওয়াল কন্টেন্ট) মেনে চলছে। আপনার দেওয়া URL এই চেক করতে না পারলে, আপনি একটি url_retrieval_status URL_RETRIEVAL_STATUS_UNSAFE পাবেন।

যে ধরনের কন্টেন্ট কাজ করে

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

টেক্সট ফাইলের ধরন

  • text/html
  • text/css
  • text/plain
  • text/xml
  • text/csv
  • text/rtf
  • text/javascript

অ্যাপ্লিকেশন ফাইলের ধরন

  • application/json
  • application/pdf

ইমেজ ফাইলের ধরন

  • image/bmp
  • image/jpeg
  • image/png
  • image/webp

ভিডিও ফাইলের ধরন

  • video/mp4
  • video/mpeg
  • video/quicktime
  • video/avi
  • video/x-flv
  • video/mpg
  • video/webm
  • video/wmv
  • video/3gpp

পেশাদার পদ্ধতি

  • সঠিক পদ্ধতি বেছে নিন: ছোট, ক্ষণস্থায়ী ফাইলের জন্য ইনলাইন ডেটা ব্যবহার করুন। বড় বা প্রায়শই ব্যবহার করা ফাইলের জন্য File API ব্যবহার করুন। আগে থেকেই অনলাইনে হোস্ট করা ডেটার জন্য এক্সটার্নাল URL ব্যবহার করুন।
  • MIME-এর ধরন নির্দিষ্ট করুন: সঠিক প্রসেসিং নিশ্চিত করতে, সবসময় ফাইল ডেটার জন্য সঠিক MIME-এর ধরন দিন।
  • সমস্যা সমাধান করা: নেটওয়ার্ক কাজ না করা, ফাইল অ্যাক্সেস সংক্রান্ত সমস্যা বা API সংক্রান্ত সমস্যার মতো সম্ভাব্য সমস্যা ম্যানেজ করতে আপনার কোডে সমস্যা সমাধান করার সুবিধা প্রয়োগ করুন।
  • GCS অনুমতি ম্যানেজ করা: GCS রেজিস্ট্রেশন ব্যবহার করার সময়, Gemini API পরিষেবা এজেন্টকে শুধুমাত্র নির্দিষ্ট Storage Object Viewer বাকেটের প্রয়োজনীয় ভূমিকা দিন।
  • স্বাক্ষরিত URL-এর নিরাপত্তা: নিশ্চিত করুন যে স্বাক্ষরিত URL-এর উপযুক্ত মেয়াদ শেষ হওয়ার সময় এবং সীমিত অনুমতি আছে।

সীমাবদ্ধতা

  • পদ্ধতি (তুলনামূলক সারণী দেখুন) ও ফাইলের ধরন অনুযায়ী ফাইলের সাইজ সংক্রান্ত সীমা আলাদা আলাদা হয়।
  • ইনলাইন ডেটা অনুরোধের পেলোড সাইজ বাড়িয়ে দেয়।
  • File API-এর মাধ্যমে আপলোড করা ফাইল সাময়িক এবং ৪৮ ঘণ্টা পরে সেটির মেয়াদ শেষ হয়ে যায়।
  • এক্সটার্নাল URL থেকে ডেটা আনা, প্রতিটি ফাইলের জন্য ১৫ এমবি পর্যন্ত সীমাবদ্ধ এবং নির্দিষ্ট কন্টেন্টের ধরন কাজ করে।
  • Google Cloud Storage-এ রেজিস্ট্রেশনের জন্য সঠিক IAM সেট-আপ ও OAuth টোকেন ম্যানেজমেন্ট প্রয়োজন।

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

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