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

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

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

পাইথন

from google import genai
import pathlib
import base64

client = genai.Client()

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

prompt = "Summarize this document"
interaction = client.interactions.create(
    model="gemini-3.8-flash",
    input=[
        {"type": "text", "text": prompt},
        {"type": "document", "data": base64.b64encode(filepath.read_bytes()).decode('utf-8'), "mime_type": "application/pdf"}
    ]
)
print(interaction.output_text)

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

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

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

async function main() {
    const filePath = 'my_local_file.pdf';

    const interaction = await client.interactions.create({
        model: "gemini-3.8-flash",
        input: [
            { type: "text", text: prompt },
            {
                type: "document",
                data: fs.readFileSync(filePath).toString("base64"),
                mime_type: "application/pdf"
            }
        ]
    });
    console.log(interaction.output_text);
}

main();

জাভা

import com.google.genai.Client;
import com.google.genai.gaos.models.interactions.Content;
import com.google.genai.gaos.models.interactions.CreateModelInteraction;
import com.google.genai.gaos.models.interactions.DocumentContent;
import com.google.genai.gaos.models.interactions.DocumentContentMimeType;
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 java.util.Arrays;
import java.util.List;

Client client = new Client();

Content textContent = TextContent.builder().text("Summarize this document.").build();
Content docContent =
    DocumentContent.builder()
        .uri("gs://cloud-samples-data/generative-ai/pdf/sample.pdf")
        .mimeType(DocumentContentMimeType.APPLICATION_PDF)
        .build();

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

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(""));

বিশ্রাম

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

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": "Summarize this document"},
      {
        "type": "document",
        "data": "'${B64_CONTENT}'",
        "mime_type": "application/pdf"
      }
    ]
  }'

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

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

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

ইনলাইন ডেটা

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

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

একটি URL থেকে আনুন

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

পাইথন

from google import genai
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"

interaction = client.interactions.create(
    model="gemini-3.8-flash",
    input=[
        {"type": "document", "data": base64.b64encode(doc_data).decode('utf-8'), "mime_type": "application/pdf"},
        {"type": "text", "text": prompt}
    ]
)
print(interaction.output_text)

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

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

const client = 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 interaction = await client.interactions.create({
        model: "gemini-3.8-flash",
        input: [
            { type: "text", text: prompt },
            {
                type: "document",
                data: Buffer.from(pdfResp).toString("base64"),
                mime_type: "application/pdf"
            }
        ]
    });
    console.log(interaction.output_text);
}

main();

জাভা

import com.google.genai.Client;
import com.google.genai.gaos.models.interactions.Content;
import com.google.genai.gaos.models.interactions.CreateModelInteraction;
import com.google.genai.gaos.models.interactions.DocumentContent;
import com.google.genai.gaos.models.interactions.DocumentContentMimeType;
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 java.util.Arrays;
import java.util.List;

Client client = new Client();

Content textContent = TextContent.builder().text("Summarize this document.").build();
Content docContent =
    DocumentContent.builder()
        .uri("gs://cloud-samples-data/generative-ai/pdf/sample.pdf")
        .mimeType(DocumentContentMimeType.APPLICATION_PDF)
        .build();

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

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(""));

বিশ্রাম

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

# Create JSON payload file
cat <<EOF > payload.json
{
"model": "gemini-3.8-flash",
"input": [
{"type": "document", "data": "${ENCODED_PDF}", "mime_type": "application/pdf"},
{"type": "text", "text": "${PROMPT}"}
]
}
EOF

# Generate content using interactions
curl -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
    -H "x-goog-api-key: $GEMINI_API_KEY" \
    -H 'Content-Type: application/json' \
    -d @payload.json 2> /dev/null > response.json

cat response.json
echo

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

জেমিনি ফাইল এপিআই

ফাইল এপিআইটি বড় ফাইল (২ জিবি পর্যন্ত) অথবা এমন ফাইলের জন্য ডিজাইন করা হয়েছে যা আপনি একাধিক অনুরোধে ব্যবহার করতে চান।

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

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

পাইথন

from google import genai

client = genai.Client()

doc_file = client.files.upload(file="path/to/your/sample.pdf")
prompt = "Summarize this document"

interaction = client.interactions.create(
    model="gemini-3.8-flash",
    input=[
        {"type": "text", "text": prompt},
        {"type": "document", "uri": doc_file.uri, "mime_type": doc_file.mime_type}
    ]
)
print(interaction.output_text)

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

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

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

async function main() {
  const filePath = "path/to/your/sample.pdf";

  const myfile = await client.files.upload({
    file: filePath,
    config: { mime_type: "application/pdf" },
  });

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

await main();

জাভা

import com.google.genai.Client;
import com.google.genai.gaos.models.interactions.Content;
import com.google.genai.gaos.models.interactions.CreateModelInteraction;
import com.google.genai.gaos.models.interactions.DocumentContent;
import com.google.genai.gaos.models.interactions.DocumentContentMimeType;
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 java.util.Arrays;
import java.util.List;

Client client = new Client();

Content textContent = TextContent.builder().text("Summarize this document.").build();
Content docContent =
    DocumentContent.builder()
        .uri("gs://cloud-samples-data/generative-ai/pdf/sample.pdf")
        .mimeType(DocumentContentMimeType.APPLICATION_PDF)
        .build();

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

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