এই কুইকস্টার্টটি আপনাকে দেখাবে কীভাবে আমাদের লাইব্রেরিগুলো ইনস্টল করতে হয় এবং আপনার প্রথম অনুরোধটি করতে, প্রতিক্রিয়া স্ট্রিম করতে, একাধিক ধাপের কথোপকথন তৈরি করতে এবং স্ট্যান্ডার্ড generateContent পদ্ধতি ব্যবহার করে বিভিন্ন টুল ব্যবহার করতে হয়।
শুরু করার আগে
জেমিনি এপিআই ব্যবহার করার জন্য আপনার একটি এপিআই কী প্রয়োজন, যা আপনার অনুরোধগুলোর সত্যতা যাচাই করতে, নিরাপত্তা সীমা প্রয়োগ করতে এবং আপনার অ্যাকাউন্টের ব্যবহার ট্র্যাক করতে ব্যবহৃত হয়।
শুরু করার জন্য এআই স্টুডিওতে বিনামূল্যে একটি তৈরি করুন:
একটি জেমিনি এপিআই কী তৈরি করুন
Google GenAI SDK ইনস্টল করুন
পাইথন
Python 3.9+ ব্যবহার করে, নিম্নলিখিত pip কমান্ডটির মাধ্যমে google-genai প্যাকেজটি ইনস্টল করুন:
pip install -q -U google-genai
জাভাস্ক্রিপ্ট
Node.js v18+ ব্যবহার করে, নিম্নলিখিত npm কমান্ডটির মাধ্যমে TypeScript এবং JavaScript-এর জন্য Google Gen AI SDK ইনস্টল করুন:
npm install @google/genai
টেক্সট তৈরি করুন
একটি টেক্সট প্রতিক্রিয়া তৈরি করতে models.generate_content মেথডটি ব্যবহার করুন।
পাইথন
from google import genai
client = genai.Client()
response = client.models.generate_content(
model="gemini-3.5-flash",
contents="Explain how AI works in a few words"
)
print(response.text)
জাভাস্ক্রিপ্ট
import { GoogleGenAI } from "@google/genai";
const ai = new GoogleGenAI({});
async function main() {
const response = await ai.models.generateContent({
model: "gemini-3.5-flash",
contents: "Explain how AI works in a few words",
});
console.log(response.text);
}
main();
বিশ্রাম
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [
{
"parts": [
{
"text": "Explain how AI works in a few words"
}
]
}
]
}'
স্ট্রিম প্রতিক্রিয়া
ডিফল্টরূপে, সম্পূর্ণ জেনারেশন প্রক্রিয়াটি শেষ হওয়ার পরেই মডেলটি একটি প্রতিক্রিয়া ফেরত দেয়। আরও দ্রুত এবং ইন্টারেক্টিভ অভিজ্ঞতার জন্য, আপনি প্রতিক্রিয়া খণ্ডগুলি তৈরি হওয়ার সাথে সাথেই স্ট্রিম করতে পারেন।
পাইথন
response = client.models.generate_content_stream(
model="gemini-3.5-flash",
contents="Explain how AI works in detail"
)
for chunk in response:
print(chunk.text, end="", flush=True)
জাভাস্ক্রিপ্ট
async function main() {
const responseStream = await ai.models.generateContentStream({
model: "gemini-3.5-flash",
contents: "Explain how AI works in detail",
});
for await (const chunk of responseStream) {
process.stdout.write(chunk.text);
}
}
main();
বিশ্রাম
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:streamGenerateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
--no-buffer \
-X POST \
-d '{
"contents": [
{
"parts": [
{
"text": "Explain how AI works in detail"
}
]
}
]
}'
একাধিক পালা কথোপকথন
একাধিক পালায় কথোপকথনের জন্য, SDK-গুলো একটি স্টেটফুল chats হেল্পার প্রদান করে, যা এমন একটি মাল্টি-টার্ন চ্যাট অভিজ্ঞতা তৈরি করে যা স্বয়ংক্রিয়ভাবে কথোপকথনের ইতিহাস পরিচালনা করে।
পাইথন
chat = client.chats.create(model="gemini-3.5-flash")
response1 = chat.send_message("I have 2 dogs in my house.")
print("Response 1:", response1.text)
response2 = chat.send_message("How many paws are in my house?")
print("Response 2:", response2.text)
জাভাস্ক্রিপ্ট
async function main() {
const chat = ai.chats.create({ model: "gemini-3.5-flash" });
let response = await chat.sendMessage({ message: "I have 2 dogs in my house." });
console.log("Response 1:", response.text);
response = await chat.sendMessage({ message: "How many paws are in my house?" });
console.log("Response 2:", response.text);
}
main();
বিশ্রাম
# REST is stateless. You must pass the full conversation history in the request.
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [
{
"role": "user",
"parts": [{"text": "I have 2 dogs in my house."}]
},
{
"role": "model",
"parts": [{"text": "That is nice! Two dogs mean you have plenty of company."}]
},
{
"role": "user",
"parts": [{"text": "How many paws are in my house?"}]
}
]
}'
সরঞ্জাম ব্যবহার করুন
রিয়েল-টাইম ওয়েব কন্টেন্ট অ্যাক্সেস করার জন্য গুগল সার্চের সাথে প্রতিক্রিয়াগুলোকে সংযুক্ত করে মডেলটির সক্ষমতা বাড়ান। মডেলটি স্বয়ংক্রিয়ভাবে সিদ্ধান্ত নেয় কখন অনুসন্ধান করতে হবে, কোয়েরিগুলো সম্পাদন করে এবং একটি প্রতিক্রিয়া তৈরি করে।
পাইথন
from google import genai
from google.genai import types
config = types.GenerateContentConfig(
tools=[types.Tool(google_search=types.GoogleSearch())]
)
response = client.models.generate_content(
model="gemini-3.5-flash",
contents="Who won the euro 2024?",
config=config
)
print(response.text)
metadata = response.candidates[0].grounding_metadata
if metadata.web_search_queries:
print("\nSearch queries executed:")
for query in metadata.web_search_queries:
print(f" - {query}")
if metadata.grounding_chunks:
print("\nSources:")
for chunk in metadata.grounding_chunks:
print(f" - [{chunk.web.title}]({chunk.web.uri})")
জাভাস্ক্রিপ্ট
async function main() {
const response = await ai.models.generateContent({
model: "gemini-3.5-flash",
contents: "Who won the euro 2024?",
config: {
tools: [{ googleSearch: {} }]
}
});
console.log(response.text);
const metadata = response.candidates[0]?.groundingMetadata;
if (metadata?.webSearchQueries) {
console.log("\nSearch queries executed:");
for (const query of metadata.webSearchQueries) {
console.log(` - ${query}`);
}
}
if (metadata?.groundingChunks) {
console.log("\nSources:");
for (const chunk of metadata.groundingChunks) {
console.log(` - [${chunk.web.title}](${chunk.web.uri})`);
}
}
}
main();
বিশ্রাম
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-X POST \
-d '{
"contents": [
{
"parts": [
{"text": "Who won the euro 2024?"}
]
}
],
"tools": [
{
"google_search": {}
}
]
}'
জেমিনি এপিআই অন্যান্য অন্তর্নির্মিত সরঞ্জামগুলিও সমর্থন করে:
- কোড নির্বাহ : মডেলটিকে জটিল গাণিতিক সমস্যা সমাধানের জন্য পাইথন কোড লিখতে ও চালাতে দেয়।
- ইউআরএল কনটেক্সট : এর মাধ্যমে আপনি আপনার দেওয়া নির্দিষ্ট ওয়েব পেজের ইউআরএল-এর উপর ভিত্তি করে প্রতিক্রিয়া জানাতে পারেন।
- ফাইল অনুসন্ধান : এর মাধ্যমে আপনি ফাইল আপলোড করতে এবং সিমান্টিক সার্চ ব্যবহার করে সেগুলোর বিষয়বস্তুর ওপর ভিত্তি করে উত্তর খুঁজে বের করতে পারবেন।
- গুগল ম্যাপস : এর মাধ্যমে আপনি অবস্থানের তথ্যের উপর ভিত্তি করে প্রতিক্রিয়া জানাতে পারেন এবং স্থান, দিকনির্দেশনা ও মানচিত্র অনুসন্ধান করতে পারেন।
- কম্পিউটার ব্যবহার : মডেলটিকে কাজ সম্পাদনের জন্য একটি ভার্চুয়াল কম্পিউটার স্ক্রিন, কিবোর্ড এবং মাউসের সাথে মিথস্ক্রিয়া করতে দেয়।
কাস্টম ফাংশন কল করুন
আপনার কাস্টম টুল এবং এপিআই-এর সাথে মডেল সংযোগ করতে ফাংশন কলিং ব্যবহার করুন। মডেল নির্ধারণ করে কখন আপনার ফাংশনটি কল করতে হবে এবং আপনার অ্যাপ্লিকেশনটি কার্যকর করার জন্য রেসপন্সে একটি functionCall রিটার্ন করে।
এই উদাহরণটি একটি নকল তাপমাত্রা ফাংশন ঘোষণা করে এবং মডেলটি এটিকে কল করতে চায় কিনা তা পরীক্ষা করে।
পাইথন
from google import genai
from google.genai import types
weather_function = {
"name": "get_current_temperature",
"description": "Gets the current temperature for a given location.",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city name, e.g. San Francisco",
},
},
"required": ["location"],
},
}
tools = types.Tool(function_declarations=[weather_function])
config = types.GenerateContentConfig(tools=[tools])
contents = ["What's the temperature in London?"]
response = client.models.generate_content(
model="gemini-3.5-flash",
contents=contents,
config=config,
)
part = response.candidates[0].content.parts[0]
if part.function_call:
fc = part.function_call
print(f"Model requested function: {fc.name} with args {fc.args}")
mock_result = {"temperature": "15C", "condition": "Cloudy"}
contents.append(response.candidates[0].content)
fn_response_part = types.Part.from_function_response(
name=fc.name,
response=mock_result,
id=fc.id
)
contents.append(types.Content(role="user", parts=[fn_response_part]))
final_response = client.models.generate_content(
model="gemini-3.5-flash",
contents=contents,
config=config,
)
print("Final Response:", final_response.text)
জাভাস্ক্রিপ্ট
import { GoogleGenAI, Type } from '@google/genai';
async function main() {
const weatherFunction = {
name: 'get_current_temperature',
description: 'Gets the current temperature for a given location.',
parameters: {
type: Type.OBJECT,
properties: {
location: {
type: Type.STRING,
description: 'The city name, e.g. San Francisco',
},
},
required: ['location'],
},
};
const contents = [{
role: 'user',
parts: [{ text: "What's the temperature in London?" }]
}];
const response = await ai.models.generateContent({
model: 'gemini-3.5-flash',
contents: contents,
config: {
tools: [{ functionDeclarations: [weatherFunction] }],
},
});
if (response.functionCalls && response.functionCalls.length > 0) {
const fc = response.functionCalls[0];
console.log(`Model requested function: ${fc.name}`);
const mockResult = { temperature: "15C", condition: "Cloudy" };
contents.push(response.candidates[0].content);
contents.push({
role: 'user',
parts: [{
functionResponse: {
name: fc.name,
response: mockResult,
id: fc.id
}
}]
});
const finalResponse = await ai.models.generateContent({
model: 'gemini-3.5-flash',
contents: contents,
config: {
tools: [{ functionDeclarations: [weatherFunction] }],
},
});
console.log("Final Response:", finalResponse.text);
}
}
main();
বিশ্রাম
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [
{
"role": "user",
"parts": [{"text": "What'\''s the temperature in London?"}]
}
],
"tools": [
{
"functionDeclarations": [
{
"name": "get_current_temperature",
"description": "Gets the current temperature for a given location.",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city name, e.g. San Francisco"
}
},
"required": ["location"]
}
}
]
}
]
}'
এরপর কী?
এখন যেহেতু আপনি জেমিনি এপিআই (Gemini API) দিয়ে কাজ শুরু করেছেন, আরও উন্নত অ্যাপ্লিকেশন তৈরি করতে নিম্নলিখিত গাইডগুলো দেখুন: