জেমিনি API দিয়ে জেমা চালান

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

সমর্থিত মডেল

জেমিনি এপিআই নিম্নলিখিত জেমা ৪ মডেলগুলোকে সমর্থন করে:

  • gemma-4-31b-it
  • gemma-4-26b-a4b-it

নিম্নলিখিত উদাহরণটি দেখায় কিভাবে জেমিনি এপিআই-এর সাথে জেমা ব্যবহার করতে হয়:

পাইথন

from google import genai

client = genai.Client()

response = client.models.generate_content(
    model="gemma-4-26b-a4b-it",
    contents="Roses are red...",
)

print(response.text)

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

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

const ai = new GoogleGenAI();

const response = await ai.models.generateContent({
  model: "gemma-4-26b-a4b-it",
  contents: "Roses are red...",
});
console.log(response.text);

বিশ্রাম

curl "https://generativelanguage.googleapis.com/v1beta/models/gemma-4-26b-a4b-it:generateContent" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
  "contents": [{
    "parts":[{"text": "Roses are red..."}]
    }]
   }'

এপিআই কী পান

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

চিন্তা

জেমা ৪ একটি অভ্যন্তরীণ 'চিন্তন প্রক্রিয়া' ব্যবহার করে যা এর বহু-ধাপের যুক্তিপদ্ধতিকে উন্নত করে, এবং অ্যালগরিদমিক কোডিং ও উন্নত গাণিতিক প্রমাণের মতো যৌক্তিকভাবে চাহিদাপূর্ণ ক্ষেত্রগুলিতে শ্রেষ্ঠতর কর্মক্ষমতা প্রদান করে।

যদিও জেমা ৪-এ এই ফিচারটি শুধুমাত্র চালু বা বন্ধ করা যায়, এপিআই-তে থিংকিং লেভেল "high" তে সেট করে এটি সক্রিয় করতে হয়।

নিম্নলিখিত উদাহরণটি দেখায় কিভাবে চিন্তন প্রক্রিয়া সক্রিয় করতে হয়:

পাইথন

from google import genai
from google.genai import types

client = genai.Client()

response = client.models.generate_content(
    model="gemma-4-26b-a4b-it",
    contents="What is the water formula?",
    config=types.GenerateContentConfig(
        thinking_config=types.ThinkingConfig(thinking_level="high")
    ),
)

print(response.text)

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

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

const ai = new GoogleGenAI();

const response = await ai.models.generateContent({
  model: "gemma-4-26b-a4b-it",
  contents: "What is the water formula?",
  config: {
    thinkingConfig: {
      thinkingLevel: ThinkingLevel.HIGH,
    },
  },
});
console.log(response.text);

বিশ্রাম

curl "https://generativelanguage.googleapis.com/v1beta/models/gemma-4-26b-a4b-it:generateContent" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
  "contents": [{
    "parts":[{"text": "What is the water formula?"}]
    }],
    "generationConfig": {
      "thinkingConfig": {
            "thinkingLevel": "high"
      }
    }
   }'

চিন্তাভাবনা সম্পর্কে আরও জানুন:

চিত্র বোঝা

জেমা ৪ মডেলগুলো ছবি প্রসেস করতে পারে, যা ডেভেলপারদের জন্য এমন অনেক অত্যাধুনিক ব্যবহারের সুযোগ তৈরি করে, যার জন্য ঐতিহাসিকভাবে ডোমেইন-নির্দিষ্ট মডেলের প্রয়োজন হতো।

নিম্নলিখিত উদাহরণটি দেখায় কিভাবে জেমিনি এপিআই (Gemini API)-এর সাথে জেমা ইমেজ ইনপুট (Gemma Image inputs) ব্যবহার করতে হয়:

পাইথন

from google import genai

client = genai.Client()

my_file = client.files.upload(file="path/to/sample.jpg")

response = client.models.generate_content(
    model="gemma-4-26b-a4b-it",
    contents=[my_file, "Caption this image."],
)

print(response.text)

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

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

const ai = new GoogleGenAI();

const myfile = await ai.files.upload({
  file: "path/to/sample.jpg",
  config: { mimeType: "image/jpeg" },
});

const response = await ai.models.generateContent({
  model: "gemma-4-26b-a4b-it",
  contents: createUserContent([
    createPartFromUri(myfile.uri, myfile.mimeType),
    "Caption this image.",
  ]),
});
console.log(response.text);
 ```

বিশ্রাম

IMAGE_PATH="cats-and-dogs.jpg"
MIME_TYPE=$(file -b --mime-type "${IMAGE_PATH}")
NUM_BYTES=$(wc -c < "${IMAGE_PATH}")
DISPLAY_NAME=IMAGE

tmp_header_file=upload-header.tmp

# Initial resumable request defining metadata.
curl "https://generativelanguage.googleapis.com/upload/v1beta/files" \
  -D upload-header.tmp \
  -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 "@${IMAGE_PATH}" 2> /dev/null > file_info.json

file_uri=$(jq -r ".file.uri" file_info.json)
echo file_uri=$file_uri

# Now generate content using that file
curl "https://generativelanguage.googleapis.com/v1beta/models/gemma-4-26b-a4b-it:generateContent" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [{
        "parts":[
          {"file_data":{"mime_type": "'"${MIME_TYPE}"'", "file_uri": "'"${file_uri}"'"}},
          {"text": "Caption this image."}]
        }]
      }' 2> /dev/null > response.json

cat response.json
echo

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

ইমেজ আন্ডারস্ট্যান্ডিং সম্পর্কে আরও জানুন:

সিস্টেম নির্দেশাবলী

মডেলটির আচরণ নির্ধারণ করতে আপনি একটি সিস্টেম নির্দেশনা প্রদান করতে পারেন:

পাইথন

from google import genai
from google.genai import types

client = genai.Client()

response = client.models.generate_content(
    model="gemma-4-26b-a4b-it",
    config=types.GenerateContentConfig(
        system_instruction="You are a wise Kyoto tea master. Speak calmly and poetically, using nature metaphors. Keep answers under 3 sentences."
    ),
    contents="What is the purpose of the tea ceremony?"
)
print(response.text)

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

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

const ai = new GoogleGenAI();

const response = await ai.models.generateContent({
  model: "gemma-4-26b-a4b-it",
  contents: "What is the purpose of the tea ceremony?",
  config: {
    systemInstruction: "You are a wise Kyoto tea master. Speak calmly and poetically, using nature metaphors. Keep answers under 3 sentences."
  }
});
console.log(response.text);

বিশ্রাম

curl "https://generativelanguage.googleapis.com/v1beta/models/gemma-4-26b-a4b-it:generateContent" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
  "contents": [{
    "parts":[{"text": "What is the purpose of the tea ceremony?"}]
  }],
  "systemInstruction": {
    "parts": [{"text": "You are a wise Kyoto tea master. Speak calmly and poetically, using nature metaphors. Keep answers under 3 sentences."}]
  }
}'

একাধিক পালায় কথোপকথন

এসডিকে একটি চ্যাট ইন্টারফেস প্রদান করে যা স্বয়ংক্রিয়ভাবে কথোপকথনের ইতিহাস ট্র্যাক করে:

পাইথন

from google import genai

client = genai.Client()
chat = client.chats.create(model="gemma-4-26b-a4b-it")

response = chat.send_message("What are the three most famous castles in Japan?")
print(response.text)

response = chat.send_message("Which one should I visit in spring for cherry blossoms?")
print(response.text)

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

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

const ai = new GoogleGenAI();
const chat = ai.chats.create({ model: "gemma-4-26b-a4b-it" });

let response = await chat.sendMessage({ message: "What are the three most famous castles in Japan?" });
console.log(response.text);

response = await chat.sendMessage({ message: "Which one should I visit in spring for cherry blossoms?" });
console.log(response.text);

বিশ্রাম

curl "https://generativelanguage.googleapis.com/v1beta/models/gemma-4-26b-a4b-it:generateContent" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
  "contents": [
    {
      "role": "user",
      "parts": [{ "text": "What are the three most famous castles in Japan?" }]
    },
    {
      "role": "model",
      "parts": [{ "text": "Himeji Castle, Matsumoto Castle, and Kumamoto Castle are often considered the top three." }]
    },
    {
      "role": "user",
      "parts": [{ "text": "Which one should I visit in spring for cherry blossoms?" }]
    }
  ]
}'

ফাংশন কলিং

টুলগুলোকে ফাংশন ডিক্লারেশন হিসেবে সংজ্ঞায়িত করুন। মডেলই নির্ধারণ করে কখন সেগুলোকে কল করতে হবে:

পাইথন

from google import genai
from google.genai import types

# Define the function declaration
get_weather = {
    "name": "get_weather",
    "description": "Get current weather for a given location.",
    "parameters": {
        "type": "object",
        "properties": {
            "location": {
                "type": "string",
                "description": "City and state, e.g. 'San Francisco, CA'",
            },
        },
        "required": ["location"],
    },
}

client = genai.Client()
tools = types.Tool(function_declarations=[get_weather])
config = types.GenerateContentConfig(tools=[tools])

response = client.models.generate_content(
    model="gemma-4-26b-a4b-it",
    contents="Should I bring an umbrella to Kyoto today?",
    config=config,
)

# The model returns a function call instead of text
if response.function_calls:
    for fc in response.function_calls:
        print(f"Function to call: {fc.name}")
        print(f"ID: {fc.id}")
        print(f"Arguments: {fc.args}")
else:
    print("No function call found in the response.")
    print(response.text)

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

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

const ai = new GoogleGenAI();

const get_weather = {
    name: "get_weather",
    description: "Get current weather for a given location.",
    parameters: {
        type: "object",
        properties: {
            location: {
                type: "string",
                description: "City and state, e.g. 'San Francisco, CA'",
            },
        },
        required: ["location"],
    },
};

const response = await ai.models.generateContent({
  model: "gemma-4-26b-a4b-it",
  contents: "Should I bring an umbrella to Kyoto today?",
  config: {
    tools: [{ functionDeclarations: [get_weather] }]
  }
});

if (response.functionCalls) {
    for (const fc of response.functionCalls) {
        console.log(`Function to call: ${fc.name}`);
        console.log(`Arguments: ${JSON.stringify(fc.args)}`);
    }
} else {
    console.log("No function call found in the response.");
    console.log(response.text);
}

বিশ্রাম

curl "https://generativelanguage.googleapis.com/v1beta/models/gemma-4-26b-a4b-it:generateContent" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
  "contents": [{
    "parts":[{"text": "Should I bring an umbrella to Kyoto today?"}]
  }],
  "tools": [{
    "functionDeclarations": [{
      "name": "get_weather",
      "description": "Get current weather for a given location.",
      "parameters": {
        "type": "OBJECT",
        "properties": {
          "location": {
            "type": "STRING",
            "description": "City and state, e.g. 'San Francisco, CA'"
          }
        },
        "required": ["location"]
      }
    }]
  }]
}'

গুগল সার্চের মাধ্যমে রিয়েল-টাইম ওয়েব ডেটাতে জেমা ৪-এর প্রতিক্রিয়াগুলো যাচাই করুন:

পাইথন

from google import genai
from google.genai import types

client = genai.Client()

response = client.models.generate_content(
    model="gemma-4-26b-a4b-it",
    contents="What are the dates for cherry blossom season in Tokyo this year?",
    config=types.GenerateContentConfig(
        tools=[{"google_search":{}}]
    ),
)

print(response.text)

# Access grounding metadata for citations
for chunk in response.candidates[0].grounding_metadata.grounding_chunks:
    print(f"Source: {chunk.web.title}{chunk.web.uri}")

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

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

const ai = new GoogleGenAI();

const response = await ai.models.generateContent({
  model: "gemma-4-26b-a4b-it",
  contents: "What are the dates for cherry blossom season in Tokyo this year?",
  config: {
    tools: [{ googleSearch: {} }]
  }
});

console.log(response.text);

if (response.candidates?.[0]?.groundingMetadata?.groundingChunks) {
    for (const chunk of response.candidates[0].groundingMetadata.groundingChunks) {
        if (chunk.web) {
            console.log(`Source: ${chunk.web.title}${chunk.web.uri}`);
        }
    }
}

বিশ্রাম

curl "https://generativelanguage.googleapis.com/v1beta/models/gemma-4-26b-a4b-it:generateContent" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
  "contents": [{
    "parts":[{"text": "What are the dates for cherry blossom season in Tokyo this year?"}]
  }],
  "tools": [{"googleSearch": {}}]
}'