Caching

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

পদ্ধতি: cachedContents.create

CachedContent রিসোর্স তৈরি করে।

এন্ডপয়েন্ট

পোস্ট https: / /generativelanguage.googleapis.com /v1beta /cachedContents

অনুরোধকারী শরীর

অনুরোধের বডিতে CachedContent এর একটি ইনস্ট্যান্স থাকে।

ক্ষেত্র
contents[] object ( Content )

ঐচ্ছিক। শুধুমাত্র ইনপুট। অপরিবর্তনীয়। ক্যাশে করার বিষয়বস্তু।

tools[] object ( Tool )

ঐচ্ছিক। শুধুমাত্র ইনপুট। অপরিবর্তনীয়। পরবর্তী প্রতিক্রিয়া তৈরি করতে মডেলটি Tools ব্যবহার করতে পারে তার একটি তালিকা।

expiration Union type
এই রিসোর্সটির মেয়াদ কখন শেষ হবে তা নির্দিষ্ট করে। expiration নিম্নলিখিতগুলির মধ্যে কেবল একটি হতে পারে:
expireTime string ( Timestamp format)

এই রিসোর্সটি কখন মেয়াদোত্তীর্ণ বলে বিবেচিত হবে, তার UTC টাইমস্ট্যাম্প। ইনপুটে যা-ই পাঠানো হোক না কেন, এটি আউটপুটে সর্বদা প্রদান করা হয়।

RFC 3339 ব্যবহার করে, যেখানে উৎপন্ন আউটপুট সর্বদা Z-স্বাভাবিক হবে এবং 0, 3, 6 অথবা 9 ভগ্নাংশ সংখ্যা ব্যবহার করবে। "Z" ব্যতীত অন্যান্য অফসেটগুলিও গ্রহণযোগ্য। উদাহরণ: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" অথবা "2014-10-02T15:01:23+05:30"

ttl string ( Duration format)

শুধুমাত্র ইনপুট। এই রিসোর্সের জন্য নতুন TTL, শুধুমাত্র ইনপুট।

সেকেন্ডে একটি সময়কাল যার সর্বোচ্চ নয়টি ভগ্নাংশ সংখ্যা ' s ' দিয়ে শেষ হয়। উদাহরণ: "3.5s"

displayName string

ঐচ্ছিক। অপরিবর্তনীয়। ক্যাশ করা কন্টেন্টের জন্য ব্যবহারকারী-সৃষ্ট অর্থপূর্ণ প্রদর্শিত নাম। সর্বোচ্চ ১২৮টি ইউনিকোড অক্ষর।

model string

আবশ্যক। অপরিবর্তনীয়। ক্যাশ করা কন্টেন্টের জন্য ব্যবহৃত Model নাম। ফরম্যাট: models/{model}

systemInstruction object ( Content )

ঐচ্ছিক। শুধুমাত্র ইনপুটযোগ্য। অপরিবর্তনীয়। ডেভেলপার কর্তৃক নির্ধারিত সিস্টেম নির্দেশ। বর্তমানে শুধুমাত্র টেক্সট হিসেবে উপলব্ধ।

toolConfig object ( ToolConfig )

ঐচ্ছিক। শুধুমাত্র ইনপুট। অপরিবর্তনীয়। টুল কনফিগারেশন। এই কনফিগারেশনটি সকল টুলের জন্য ব্যবহৃত হবে।

উদাহরণ অনুরোধ

মৌলিক

পাইথন

from google import genai
from google.genai import types

client = genai.Client()
document = client.files.upload(file=media / "a11.txt")
model_name = "gemini-1.5-flash-001"

cache = client.caches.create(
    model=model_name,
    config=types.CreateCachedContentConfig(
        contents=[document],
        system_instruction="You are an expert analyzing transcripts.",
    ),
)
print(cache)

response = client.models.generate_content(
    model=model_name,
    contents="Please summarize this transcript",
    config=types.GenerateContentConfig(cached_content=cache.name),
)
print(response.text)

নোড.জেএস

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });
const filePath = path.join(media, "a11.txt");
const document = await ai.files.upload({
  file: filePath,
  config: { mimeType: "text/plain" },
});
console.log("Uploaded file name:", document.name);
const modelName = "gemini-1.5-flash-001";

const contents = [
  createUserContent(createPartFromUri(document.uri, document.mimeType)),
];

const cache = await ai.caches.create({
  model: modelName,
  config: {
    contents: contents,
    systemInstruction: "You are an expert analyzing transcripts.",
  },
});
console.log("Cache created:", cache);

const response = await ai.models.generateContent({
  model: modelName,
  contents: "Please summarize this transcript",
  config: { cachedContent: cache.name },
});
console.log("Response text:", response.text);

যান

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"), 
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

modelName := "gemini-1.5-flash-001"
document, err := client.Files.UploadFromPath(
	ctx, 
	filepath.Join(getMedia(), "a11.txt"), 
	&genai.UploadFileConfig{
		MIMEType : "text/plain",
	},
)
if err != nil {
	log.Fatal(err)
}
parts := []*genai.Part{
	genai.NewPartFromURI(document.URI, document.MIMEType),
}
contents := []*genai.Content{
	genai.NewContentFromParts(parts, genai.RoleUser),
}
cache, err := client.Caches.Create(ctx, modelName, &genai.CreateCachedContentConfig{
	Contents: contents,
	SystemInstruction: genai.NewContentFromText(
		"You are an expert analyzing transcripts.", genai.RoleUser,
	),
})
if err != nil {
	log.Fatal(err)
}
fmt.Println("Cache created:")
fmt.Println(cache)

// Use the cache for generating content.
response, err := client.Models.GenerateContent(
	ctx,
	modelName,
	genai.Text("Please summarize this transcript"),
	&genai.GenerateContentConfig{
		CachedContent: cache.Name,
	},
)
if err != nil {
	log.Fatal(err)
}
printResponse(response)

খোলস

wget https://storage.googleapis.com/generativeai-downloads/data/a11.txt
echo '{
  "model": "models/gemini-1.5-flash-001",
  "contents":[
    {
      "parts":[
        {
          "inline_data": {
            "mime_type":"text/plain",
            "data": "'$(base64 $B64FLAGS a11.txt)'"
          }
        }
      ],
    "role": "user"
    }
  ],
  "systemInstruction": {
    "parts": [
      {
        "text": "You are an expert at analyzing transcripts."
      }
    ]
  },
  "ttl": "300s"
}' > request.json

curl -X POST "https://generativelanguage.googleapis.com/v1beta/cachedContents?key=$GEMINI_API_KEY" \
 -H 'Content-Type: application/json' \
 -d @request.json \
 > cache.json

CACHE_NAME=$(cat cache.json | grep '"name":' | cut -d '"' -f 4 | head -n 1)

curl -X POST "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-001:generateContent?key=$GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
      "contents": [
        {
          "parts":[{
            "text": "Please summarize this transcript"
          }],
          "role": "user"
        },
      ],
      "cachedContent": "'$CACHE_NAME'"
    }'

নাম থেকে

পাইথন

from google import genai
from google.genai import types

client = genai.Client()
document = client.files.upload(file=media / "a11.txt")
model_name = "gemini-1.5-flash-001"

cache = client.caches.create(
    model=model_name,
    config=types.CreateCachedContentConfig(
        contents=[document],
        system_instruction="You are an expert analyzing transcripts.",
    ),
)
cache_name = cache.name  # Save the name for later

# Later retrieve the cache
cache = client.caches.get(name=cache_name)
response = client.models.generate_content(
    model=model_name,
    contents="Find a lighthearted moment from this transcript",
    config=types.GenerateContentConfig(cached_content=cache.name),
)
print(response.text)

নোড.জেএস

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });
const filePath = path.join(media, "a11.txt");
const document = await ai.files.upload({
  file: filePath,
  config: { mimeType: "text/plain" },
});
console.log("Uploaded file name:", document.name);
const modelName = "gemini-1.5-flash-001";

const contents = [
  createUserContent(createPartFromUri(document.uri, document.mimeType)),
];

const cache = await ai.caches.create({
  model: modelName,
  config: {
    contents: contents,
    systemInstruction: "You are an expert analyzing transcripts.",
  },
});
const cacheName = cache.name; // Save the name for later

// Later retrieve the cache
const retrievedCache = await ai.caches.get({ name: cacheName });
const response = await ai.models.generateContent({
  model: modelName,
  contents: "Find a lighthearted moment from this transcript",
  config: { cachedContent: retrievedCache.name },
});
console.log("Response text:", response.text);

যান

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

modelName := "gemini-1.5-flash-001"
document, err := client.Files.UploadFromPath(
	ctx, 
	filepath.Join(getMedia(), "a11.txt"), 
	&genai.UploadFileConfig{
		MIMEType : "text/plain",
	},
)
if err != nil {
	log.Fatal(err)
}
parts := []*genai.Part{
	genai.NewPartFromURI(document.URI, document.MIMEType),
}
contents := []*genai.Content{
	genai.NewContentFromParts(parts, genai.RoleUser),
}
cache, err := client.Caches.Create(ctx, modelName, &genai.CreateCachedContentConfig{
	Contents:          contents,
	SystemInstruction: genai.NewContentFromText(
		"You are an expert analyzing transcripts.", genai.RoleUser,
	),
})
if err != nil {
	log.Fatal(err)
}
cacheName := cache.Name

// Later retrieve the cache.
cache, err = client.Caches.Get(ctx, cacheName, &genai.GetCachedContentConfig{})
if err != nil {
	log.Fatal(err)
}

response, err := client.Models.GenerateContent(
	ctx,
	modelName,
	genai.Text("Find a lighthearted moment from this transcript"),
	&genai.GenerateContentConfig{
		CachedContent: cache.Name,
	},
)
if err != nil {
	log.Fatal(err)
}
fmt.Println("Response from cache (create from name):")
printResponse(response)

চ্যাট থেকে

পাইথন

from google import genai
from google.genai import types

client = genai.Client()
model_name = "gemini-1.5-flash-001"
system_instruction = "You are an expert analyzing transcripts."

# Create a chat session with the given system instruction.
chat = client.chats.create(
    model=model_name,
    config=types.GenerateContentConfig(system_instruction=system_instruction),
)
document = client.files.upload(file=media / "a11.txt")

response = chat.send_message(
    message=["Hi, could you summarize this transcript?", document]
)
print("\n\nmodel:  ", response.text)
response = chat.send_message(
    message=["Okay, could you tell me more about the trans-lunar injection"]
)
print("\n\nmodel:  ", response.text)

# To cache the conversation so far, pass the chat history as the list of contents.
cache = client.caches.create(
    model=model_name,
    config={
        "contents": chat.get_history(),
        "system_instruction": system_instruction,
    },
)
# Continue the conversation using the cached content.
chat = client.chats.create(
    model=model_name,
    config=types.GenerateContentConfig(cached_content=cache.name),
)
response = chat.send_message(
    message="I didn't understand that last part, could you explain it in simpler language?"
)
print("\n\nmodel:  ", response.text)

নোড.জেএস

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });
const modelName = "gemini-1.5-flash-001";
const systemInstruction = "You are an expert analyzing transcripts.";

// Create a chat session with the system instruction.
const chat = ai.chats.create({
  model: modelName,
  config: { systemInstruction: systemInstruction },
});
const filePath = path.join(media, "a11.txt");
const document = await ai.files.upload({
  file: filePath,
  config: { mimeType: "text/plain" },
});
console.log("Uploaded file name:", document.name);

let response = await chat.sendMessage({
  message: createUserContent([
    "Hi, could you summarize this transcript?",
    createPartFromUri(document.uri, document.mimeType),
  ]),
});
console.log("\n\nmodel:", response.text);

response = await chat.sendMessage({
  message: "Okay, could you tell me more about the trans-lunar injection",
});
console.log("\n\nmodel:", response.text);

// To cache the conversation so far, pass the chat history as the list of contents.
const chatHistory = chat.getHistory();
const cache = await ai.caches.create({
  model: modelName,
  config: {
    contents: chatHistory,
    systemInstruction: systemInstruction,
  },
});

// Continue the conversation using the cached content.
const chatWithCache = ai.chats.create({
  model: modelName,
  config: { cachedContent: cache.name },
});
response = await chatWithCache.sendMessage({
  message:
    "I didn't understand that last part, could you explain it in simpler language?",
});
console.log("\n\nmodel:", response.text);

যান

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

modelName := "gemini-1.5-flash-001"
systemInstruction := "You are an expert analyzing transcripts."

// Create initial chat with a system instruction.
chat, err := client.Chats.Create(ctx, modelName, &genai.GenerateContentConfig{
	SystemInstruction: genai.NewContentFromText(systemInstruction, genai.RoleUser),
}, nil)
if err != nil {
	log.Fatal(err)
}

document, err := client.Files.UploadFromPath(
	ctx, 
	filepath.Join(getMedia(), "a11.txt"), 
	&genai.UploadFileConfig{
		MIMEType : "text/plain",
	},
)
if err != nil {
	log.Fatal(err)
}

// Send first message with the transcript.
parts := make([]genai.Part, 2)
parts[0] = genai.Part{Text: "Hi, could you summarize this transcript?"}
parts[1] = genai.Part{
	FileData: &genai.FileData{
		FileURI :      document.URI,
		MIMEType: document.MIMEType,
	},
}

// Send chat message.
resp, err := chat.SendMessage(ctx, parts...)
if err != nil {
	log.Fatal(err)
}
fmt.Println("\n\nmodel: ", resp.Text())

resp, err = chat.SendMessage(
	ctx, 
	genai.Part{
		Text: "Okay, could you tell me more about the trans-lunar injection",
	},
)
if err != nil {
	log.Fatal(err)
}
fmt.Println("\n\nmodel: ", resp.Text())

// To cache the conversation so far, pass the chat history as the list of contents.
cache, err := client.Caches.Create(ctx, modelName, &genai.CreateCachedContentConfig{
	Contents:          chat.History(false),
	SystemInstruction: genai.NewContentFromText(systemInstruction, genai.RoleUser),
})
if err != nil {
	log.Fatal(err)
}

// Continue the conversation using the cached history.
chat, err = client.Chats.Create(ctx, modelName, &genai.GenerateContentConfig{
	CachedContent: cache.Name,
}, nil)
if err != nil {
	log.Fatal(err)
}

resp, err = chat.SendMessage(
	ctx, 
	genai.Part{
		Text: "I didn't understand that last part, could you explain it in simpler language?",
	},
)
if err != nil {
	log.Fatal(err)
}
fmt.Println("\n\nmodel: ", resp.Text())

প্রতিক্রিয়া মূল অংশ

সফল হলে, রেসপন্স বডিতে CachedContent এর একটি নতুন তৈরি হওয়া ইনস্ট্যান্স থাকে।

পদ্ধতি: cachedContents.list

ক্যাশ করা বিষয়বস্তু তালিকাভুক্ত করে।

এন্ডপয়েন্ট

https: / /generativelanguage.googleapis.com /v1beta /cachedContents পান

কোয়েরি প্যারামিটার

pageSize integer

ঐচ্ছিক। ফেরত দেওয়ার জন্য ক্যাশ করা কন্টেন্টের সর্বোচ্চ সংখ্যা। পরিষেবাটি এই মানের চেয়ে কমও ফেরত দিতে পারে। যদি নির্দিষ্ট না করা হয়, তাহলে ডিফল্ট (সর্বোচ্চের চেয়ে কম) সংখ্যক আইটেম ফেরত দেওয়া হবে। সর্বোচ্চ মান হলো ১০০০; ১০০০-এর উপরের মানগুলোকে ১০০০-এ রূপান্তরিত করা হবে।

pageToken string

ঐচ্ছিক। পূর্ববর্তী cachedContents.list কল থেকে প্রাপ্ত একটি পেজ টোকেন। পরবর্তী পেজটি পুনরুদ্ধার করতে এটি প্রদান করুন।

পেজিনেশন করার সময়, cachedContents.list এ প্রদত্ত অন্য সকল প্যারামিটার অবশ্যই সেই কলের সাথে মিলতে হবে যা পেজ টোকেনটি প্রদান করেছে।

অনুরোধকারী শরীর

অনুরোধের মূল অংশ অবশ্যই খালি হতে হবে।

প্রতিক্রিয়া মূল অংশ

CachedContents তালিকা সহ প্রতিক্রিয়া।

যদি সফল হয়, তাহলে রেসপন্স বডিতে নিম্নলিখিত কাঠামো সহ ডেটা থাকবে:

ক্ষেত্র
cachedContents[] object ( CachedContent )

ক্যাশে করা বিষয়বস্তুর তালিকা।

nextPageToken string

একটি টোকেন, যা পরবর্তী পৃষ্ঠা আনার জন্য pageToken হিসেবে পাঠানো যেতে পারে। এই ক্ষেত্রটি বাদ দিলে, পরবর্তী কোনো পৃষ্ঠা থাকবে না।

JSON উপস্থাপনা
{
  "cachedContents": [
    {
      object (CachedContent)
    }
  ],
  "nextPageToken": string
}

পদ্ধতি: cachedContents.get

CachedContent রিসোর্সটি পড়ে।

এন্ডপয়েন্ট

get https: / /generativelanguage.googleapis.com /v1beta /{name=cachedContents /*}

পথের পরামিতি

name string

আবশ্যক। কন্টেন্ট ক্যাশ এন্ট্রিকে নির্দেশকারী রিসোর্সের নাম। ফরম্যাট: cachedContents/{id} এটি cachedContents/{cachedcontent} আকারে থাকে।

অনুরোধকারী শরীর

অনুরোধের মূল অংশ অবশ্যই খালি হতে হবে।

উদাহরণ অনুরোধ

পাইথন

from google import genai

client = genai.Client()
document = client.files.upload(file=media / "a11.txt")
model_name = "gemini-1.5-flash-001"

cache = client.caches.create(
    model=model_name,
    config={
        "contents": [document],
        "system_instruction": "You are an expert analyzing transcripts.",
    },
)
print(client.caches.get(name=cache.name))

নোড.জেএস

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });
const filePath = path.join(media, "a11.txt");
const document = await ai.files.upload({
  file: filePath,
  config: { mimeType: "text/plain" },
});
console.log("Uploaded file name:", document.name);
const modelName = "gemini-1.5-flash-001";

const contents = [
  createUserContent(createPartFromUri(document.uri, document.mimeType)),
];

const cache = await ai.caches.create({
  model: modelName,
  config: {
    contents: contents,
    systemInstruction: "You are an expert analyzing transcripts.",
  },
});
const retrievedCache = await ai.caches.get({ name: cache.name });
console.log("Retrieved Cache:", retrievedCache);

যান

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

modelName := "gemini-1.5-flash-001"
document, err := client.Files.UploadFromPath(
	ctx, 
	filepath.Join(getMedia(), "a11.txt"), 
	&genai.UploadFileConfig{
		MIMEType : "text/plain",
	},
)
if err != nil {
	log.Fatal(err)
}
parts := []*genai.Part{
	genai.NewPartFromURI(document.URI, document.MIMEType),
}
contents := []*genai.Content{
	genai.NewContentFromParts(parts, genai.RoleUser),
}

cache, err := client.Caches.Create(ctx, modelName, &genai.CreateCachedContentConfig{
	Contents:          contents,
	SystemInstruction: genai.NewContentFromText(
		"You are an expert analyzing transcripts.", genai.RoleUser,
	),
})
if err != nil {
	log.Fatal(err)
}

cache, err = client.Caches.Get(ctx, cache.Name, &genai.GetCachedContentConfig{})
if err != nil {
	log.Fatal(err)
}
fmt.Println("Retrieved cache:")
fmt.Println(cache)

খোলস

curl "https://generativelanguage.googleapis.com/v1beta/$CACHE_NAME?key=$GEMINI_API_KEY"

প্রতিক্রিয়া মূল অংশ

সফল হলে, রেসপন্স বডিতে CachedContent এর একটি ইনস্ট্যান্স থাকে।

পদ্ধতি: cachedContents.patch

CachedContent রিসোর্স আপডেট করে (শুধুমাত্র মেয়াদোত্তীর্ণের তারিখ আপডেটযোগ্য)।

এন্ডপয়েন্ট

patch https: / /generativelanguage.googleapis.com /v1beta /{cachedContent.name=cachedContents /*}
PATCH https://generativelanguage.googleapis.com/v1beta/{cachedContent.name=cachedContents/*}

পথের পরামিতি

cachedContent.name string

শুধুমাত্র আউটপুট। শনাক্তকারী। ক্যাশ করা বিষয়বস্তুকে নির্দেশকারী রিসোর্সের নাম। ফরম্যাট: cachedContents/{id} এটি cachedContents/{cachedcontent} আকারে থাকে।

কোয়েরি প্যারামিটার

updateMask string ( FieldMask format)

আপডেট করার জন্য ফিল্ডগুলির তালিকা।

এটি ফিল্ডগুলোর পূর্ণাঙ্গ নামের একটি কমা-দ্বারা-বিভক্ত তালিকা। উদাহরণ: "user.displayName,photo"

অনুরোধকারী শরীর

অনুরোধের বডিতে CachedContent এর একটি ইনস্ট্যান্স থাকে।

ক্ষেত্র
expiration Union type
এই রিসোর্সটির মেয়াদ কখন শেষ হবে তা নির্দিষ্ট করে। expiration নিম্নলিখিতগুলির মধ্যে কেবল একটি হতে পারে:
expireTime string ( Timestamp format)

এই রিসোর্সটি কখন মেয়াদোত্তীর্ণ বলে বিবেচিত হবে, তার UTC টাইমস্ট্যাম্প। ইনপুটে যা-ই পাঠানো হোক না কেন, এটি আউটপুটে সর্বদা প্রদান করা হয়।

RFC 3339 ব্যবহার করে, যেখানে উৎপন্ন আউটপুট সর্বদা Z-স্বাভাবিক হবে এবং 0, 3, 6 অথবা 9 ভগ্নাংশ সংখ্যা ব্যবহার করবে। "Z" ব্যতীত অন্যান্য অফসেটগুলিও গ্রহণযোগ্য। উদাহরণ: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" অথবা "2014-10-02T15:01:23+05:30"

ttl string ( Duration format)

শুধুমাত্র ইনপুট। এই রিসোর্সের জন্য নতুন TTL, শুধুমাত্র ইনপুট।

সেকেন্ডে একটি সময়কাল যার সর্বোচ্চ নয়টি ভগ্নাংশ সংখ্যা ' s ' দিয়ে শেষ হয়। উদাহরণ: "3.5s"

উদাহরণ অনুরোধ

পাইথন

from google import genai
from google.genai import types
import datetime

client = genai.Client()
document = client.files.upload(file=media / "a11.txt")
model_name = "gemini-1.5-flash-001"

cache = client.caches.create(
    model=model_name,
    config={
        "contents": [document],
        "system_instruction": "You are an expert analyzing transcripts.",
    },
)

# Update the cache's time-to-live (ttl)
ttl = f"{int(datetime.timedelta(hours=2).total_seconds())}s"
client.caches.update(
    name=cache.name, config=types.UpdateCachedContentConfig(ttl=ttl)
)
print(f"After update:\n {cache}")

# Alternatively, update the expire_time directly
# Update the expire_time directly in valid RFC 3339 format (UTC with a "Z" suffix)
expire_time = (
    (
        datetime.datetime.now(datetime.timezone.utc)
        + datetime.timedelta(minutes=15)
    )
    .isoformat()
    .replace("+00:00", "Z")
)
client.caches.update(
    name=cache.name,
    config=types.UpdateCachedContentConfig(expire_time=expire_time),
)

নোড.জেএস

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });
const filePath = path.join(media, "a11.txt");
const document = await ai.files.upload({
  file: filePath,
  config: { mimeType: "text/plain" },
});
console.log("Uploaded file name:", document.name);
const modelName = "gemini-1.5-flash-001";

const contents = [
  createUserContent(createPartFromUri(document.uri, document.mimeType)),
];

let cache = await ai.caches.create({
  model: modelName,
  config: {
    contents: contents,
    systemInstruction: "You are an expert analyzing transcripts.",
  },
});

// Update the cache's time-to-live (ttl)
const ttl = `${2 * 3600}s`; // 2 hours in seconds
cache = await ai.caches.update({
  name: cache.name,
  config: { ttl },
});
console.log("After update (TTL):", cache);

// Alternatively, update the expire_time directly (in RFC 3339 format with a "Z" suffix)
const expireTime = new Date(Date.now() + 15 * 60000)
  .toISOString()
  .replace(/\.\d{3}Z$/, "Z");
cache = await ai.caches.update({
  name: cache.name,
  config: { expireTime: expireTime },
});
console.log("After update (expire_time):", cache);

যান

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

modelName := "gemini-1.5-flash-001"
document, err := client.Files.UploadFromPath(
	ctx, 
	filepath.Join(getMedia(), "a11.txt"), 
	&genai.UploadFileConfig{
		MIMEType : "text/plain",
	},
)
if err != nil {
	log.Fatal(err)
}
parts := []*genai.Part{
	genai.NewPartFromURI(document.URI, document.MIMEType),
}
contents := []*genai.Content{
	genai.NewContentFromParts(parts, genai.RoleUser),
}

cache, err := client.Caches.Create(ctx, modelName, &genai.CreateCachedContentConfig{
	Contents:          contents,
	SystemInstruction: genai.NewContentFromText(
		"You are an expert analyzing transcripts.", genai.RoleUser,
	),
})
if err != nil {
	log.Fatal(err)
}

_, err = client.Caches.Delete(ctx, cache.Name, &genai.DeleteCachedContentConfig{})
if err != nil {
	log.Fatal(err)
}
fmt.Println("Cache deleted:", cache.Name)

খোলস

curl -X PATCH "https://generativelanguage.googleapis.com/v1beta/$CACHE_NAME?key=$GEMINI_API_KEY" \
 -H 'Content-Type: application/json' \
 -d '{"ttl": "600s"}'

প্রতিক্রিয়া মূল অংশ

সফল হলে, রেসপন্স বডিতে CachedContent এর একটি ইনস্ট্যান্স থাকে।

পদ্ধতি: cachedContents.delete

CachedContent রিসোর্সটি মুছে ফেলে।

এন্ডপয়েন্ট

https: / /generativelanguage.googleapis.com /v1beta /{name=cachedContents /*} মুছে ফেলুন

পথের পরামিতি

name string

আবশ্যক। কন্টেন্ট ক্যাশ এন্ট্রিকে নির্দেশকারী রিসোর্সের নাম। ফরম্যাট: cachedContents/{id} এটি cachedContents/{cachedcontent} আকারে থাকে।

অনুরোধকারী শরীর

অনুরোধের মূল অংশ অবশ্যই খালি হতে হবে।

উদাহরণ অনুরোধ

পাইথন

from google import genai

client = genai.Client()
document = client.files.upload(file=media / "a11.txt")
model_name = "gemini-1.5-flash-001"

cache = client.caches.create(
    model=model_name,
    config={
        "contents": [document],
        "system_instruction": "You are an expert analyzing transcripts.",
    },
)
client.caches.delete(name=cache.name)

নোড.জেএস

// Make sure to include the following import:
// import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY });
const filePath = path.join(media, "a11.txt");
const document = await ai.files.upload({
  file: filePath,
  config: { mimeType: "text/plain" },
});
console.log("Uploaded file name:", document.name);
const modelName = "gemini-1.5-flash-001";

const contents = [
  createUserContent(createPartFromUri(document.uri, document.mimeType)),
];

const cache = await ai.caches.create({
  model: modelName,
  config: {
    contents: contents,
    systemInstruction: "You are an expert analyzing transcripts.",
  },
});
await ai.caches.delete({ name: cache.name });
console.log("Cache deleted:", cache.name);

যান

ctx := context.Background()
client, err := genai.NewClient(ctx, &genai.ClientConfig{
	APIKey:  os.Getenv("GEMINI_API_KEY"),
	Backend: genai.BackendGeminiAPI,
})
if err != nil {
	log.Fatal(err)
}

modelName := "gemini-1.5-flash-001"
document, err := client.Files.UploadFromPath(
	ctx, 
	filepath.Join(getMedia(), "a11.txt"), 
	&genai.UploadFileConfig{
		MIMEType : "text/plain",
	},
)
if err != nil {
	log.Fatal(err)
}
parts := []*genai.Part{
	genai.NewPartFromURI(document.URI, document.MIMEType),
}
contents := []*genai.Content{
	genai.NewContentFromParts(parts, genai.RoleUser),
}

cache, err := client.Caches.Create(ctx, modelName, &genai.CreateCachedContentConfig{
	Contents:          contents,
	SystemInstruction: genai.NewContentFromText(
		"You are an expert analyzing transcripts.", genai.RoleUser,
	),
})
if err != nil {
	log.Fatal(err)
}

_, err = client.Caches.Delete(ctx, cache.Name, &genai.DeleteCachedContentConfig{})
if err != nil {
	log.Fatal(err)
}
fmt.Println("Cache deleted:", cache.Name)

খোলস

curl -X DELETE "https://generativelanguage.googleapis.com/v1beta/$CACHE_NAME?key=$GEMINI_API_KEY"

প্রতিক্রিয়া মূল অংশ

সফল হলে, রেসপন্স বডিটি একটি খালি JSON অবজেক্ট হয়।

REST রিসোর্স: ক্যাশড কন্টেন্টস

উৎস: ক্যাশড কন্টেন্ট

যে কন্টেন্টটি পূর্ব-প্রক্রিয়াজাত করা হয়েছে এবং যা জেনারেটিভসার্ভিস-এ পরবর্তী অনুরোধে ব্যবহার করা যাবে।

ক্যাশ করা কন্টেন্ট শুধুমাত্র সেই মডেলের সাথেই ব্যবহার করা যাবে, যেটির জন্য এটি তৈরি করা হয়েছে।

ক্ষেত্র
contents[] object ( Content )

ঐচ্ছিক। শুধুমাত্র ইনপুট। অপরিবর্তনীয়। ক্যাশে করার বিষয়বস্তু।

tools[] object ( Tool )

ঐচ্ছিক। শুধুমাত্র ইনপুট। অপরিবর্তনীয়। পরবর্তী প্রতিক্রিয়া তৈরি করতে মডেলটি Tools ব্যবহার করতে পারে তার একটি তালিকা।

createTime string ( Timestamp format)

শুধুমাত্র আউটপুট। ক্যাশ এন্ট্রি তৈরির সময়।

RFC 3339 ব্যবহার করে, যেখানে উৎপন্ন আউটপুট সর্বদা Z-স্বাভাবিক হবে এবং 0, 3, 6 অথবা 9 ভগ্নাংশ সংখ্যা ব্যবহার করবে। "Z" ব্যতীত অন্যান্য অফসেটগুলিও গ্রহণযোগ্য। উদাহরণ: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" অথবা "2014-10-02T15:01:23+05:30"

updateTime string ( Timestamp format)

শুধুমাত্র আউটপুট। UTC সময় অনুযায়ী ক্যাশ এন্ট্রিটি সর্বশেষ কখন আপডেট করা হয়েছিল।

RFC 3339 ব্যবহার করে, যেখানে উৎপন্ন আউটপুট সর্বদা Z-স্বাভাবিক হবে এবং 0, 3, 6 অথবা 9 ভগ্নাংশ সংখ্যা ব্যবহার করবে। "Z" ব্যতীত অন্যান্য অফসেটগুলিও গ্রহণযোগ্য। উদাহরণ: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" অথবা "2014-10-02T15:01:23+05:30"

usageMetadata object ( UsageMetadata )

শুধুমাত্র আউটপুট। ক্যাশ করা কন্টেন্টের ব্যবহার সংক্রান্ত মেটাডেটা।

expiration Union type
এই রিসোর্সটির মেয়াদ কখন শেষ হবে তা নির্দিষ্ট করে। expiration নিম্নলিখিতগুলির মধ্যে কেবল একটি হতে পারে:
expireTime string ( Timestamp format)

এই রিসোর্সটি কখন মেয়াদোত্তীর্ণ বলে বিবেচিত হবে, তার UTC টাইমস্ট্যাম্প। ইনপুটে যা-ই পাঠানো হোক না কেন, এটি আউটপুটে সর্বদা প্রদান করা হয়।

RFC 3339 ব্যবহার করে, যেখানে উৎপন্ন আউটপুট সর্বদা Z-স্বাভাবিক হবে এবং 0, 3, 6 অথবা 9 ভগ্নাংশ সংখ্যা ব্যবহার করবে। "Z" ব্যতীত অন্যান্য অফসেটগুলিও গ্রহণযোগ্য। উদাহরণ: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" অথবা "2014-10-02T15:01:23+05:30"

ttl string ( Duration format)

শুধুমাত্র ইনপুট। এই রিসোর্সের জন্য নতুন TTL, শুধুমাত্র ইনপুট।

সেকেন্ডে একটি সময়কাল যার সর্বোচ্চ নয়টি ভগ্নাংশ সংখ্যা ' s ' দিয়ে শেষ হয়। উদাহরণ: "3.5s"

name string

শুধুমাত্র আউটপুট। শনাক্তকারী। ক্যাশ করা বিষয়বস্তুকে নির্দেশকারী রিসোর্সের নাম। ফরম্যাট: cachedContents/{id}

displayName string

ঐচ্ছিক। অপরিবর্তনীয়। ক্যাশ করা কন্টেন্টের জন্য ব্যবহারকারী-সৃষ্ট অর্থপূর্ণ প্রদর্শিত নাম। সর্বোচ্চ ১২৮টি ইউনিকোড অক্ষর।

model string

আবশ্যক। অপরিবর্তনীয়। ক্যাশ করা কন্টেন্টের জন্য ব্যবহৃত Model নাম। ফরম্যাট: models/{model}

systemInstruction object ( Content )

ঐচ্ছিক। শুধুমাত্র ইনপুটযোগ্য। অপরিবর্তনীয়। ডেভেলপার কর্তৃক নির্ধারিত সিস্টেম নির্দেশ। বর্তমানে শুধুমাত্র টেক্সট হিসেবে উপলব্ধ।

toolConfig object ( ToolConfig )

ঐচ্ছিক। শুধুমাত্র ইনপুট। অপরিবর্তনীয়। টুল কনফিগারেশন। এই কনফিগারেশনটি সকল টুলের জন্য ব্যবহৃত হবে।

JSON উপস্থাপনা
{
  "contents": [
    {
      object (Content)
    }
  ],
  "tools": [
    {
      object (Tool)
    }
  ],
  "createTime": string,
  "updateTime": string,
  "usageMetadata": {
    object (UsageMetadata)
  },

  // expiration
  "expireTime": string,
  "ttl": string
  // Union type
  "name": string,
  "displayName": string,
  "model": string,
  "systemInstruction": {
    object (Content)
  },
  "toolConfig": {
    object (ToolConfig)
  }
}

বিষয়বস্তু

একটি বার্তার বহু-অংশবিশিষ্ট বিষয়বস্তু ধারণকারী মূল কাঠামোগত ডেটাটাইপ।

একটি Content একটি role ' ফিল্ড থাকে যা Content প্রযোজককে নির্দেশ করে এবং একটি ' parts ' ফিল্ড থাকে, যাতে বহু-অংশবিশিষ্ট ডেটা থাকে যা মেসেজ টার্নের বিষয়বস্তু ধারণ করে।

ক্ষেত্র
parts[] object ( Part )

ক্রমবিন্যস্ত Parts যা একটি একক বার্তা গঠন করে। অংশগুলোর ভিন্ন ভিন্ন MIME টাইপ থাকতে পারে।

role string

ঐচ্ছিক। বিষয়বস্তুর প্রযোজক। অবশ্যই 'ব্যবহারকারী' অথবা 'মডেল' হতে হবে।

একাধিক পালায় কথোপকথনের জন্য এটি সেট করা সুবিধাজনক, অন্যথায় এটি খালি বা সেট না করেও রাখা যেতে পারে।

JSON উপস্থাপনা
{
  "parts": [
    {
      object (Part)
    }
  ],
  "role": string
}

অংশ

একটি ডেটাটাইপ যা একটি বহু-অংশবিশিষ্ট Content মেসেজের অংশ এমন মিডিয়া ধারণ করে।

একটি Part এমন ডেটা নিয়ে গঠিত যার একটি সংশ্লিষ্ট ডেটাটাইপ থাকে। একটি Part Part.data তে থাকা স্বীকৃত টাইপগুলোর মধ্যে শুধুমাত্র একটিই থাকতে পারে।

যদি inlineData ফিল্ডটি র' বাইট দিয়ে পূরণ করা হয়, তাহলে একটি Part অবশ্যই একটি নির্দিষ্ট IANA MIME টাইপ থাকতে হবে যা মিডিয়ার টাইপ এবং সাবটাইপ শনাক্ত করে।

ক্ষেত্র
thought boolean

ঐচ্ছিক। অংশটি মডেল থেকে ভাবা হয়েছে কিনা তা নির্দেশ করে।

thoughtSignature string ( bytes format)

ঐচ্ছিক। ভাবনার জন্য একটি অস্বচ্ছ স্বাক্ষর, যাতে এটি পরবর্তী অনুরোধগুলিতে পুনরায় ব্যবহার করা যায়।

একটি বেস৬৪-এনকোডেড স্ট্রিং।

partMetadata object ( Struct format)

পার্টটির সাথে যুক্ত কাস্টম মেটাডেটা। যে এজেন্টরা কন্টেন্ট রিপ্রেজেন্টেশন হিসেবে genai.Part ব্যবহার করেন, তাদের এই অতিরিক্ত তথ্যগুলোর হিসাব রাখার প্রয়োজন হতে পারে। উদাহরণস্বরূপ, এটি হতে পারে সেই ফাইল/সোর্সের নাম যেখান থেকে পার্টটি তৈরি হয়েছে, অথবা একাধিক পার্ট স্ট্রিমকে মাল্টিপ্লেক্স করার কোনো উপায়।

mediaResolution object ( MediaResolution )

ঐচ্ছিক। ইনপুট মিডিয়ার জন্য মিডিয়া রেজোলিউশন।

data Union type
data নিম্নলিখিতগুলির মধ্যে কেবল একটি হতে পারে:
text string

ইনলাইন টেক্সট।

inlineData object ( Blob )

ইনলাইন মিডিয়া বাইট।

functionCall object ( FunctionCall )

মডেল থেকে ফেরত আসা একটি পূর্বাভাসিত FunctionCall , যাতে FunctionDeclaration.name এর প্রতিনিধিত্বকারী একটি স্ট্রিং-এর সাথে আর্গুমেন্ট এবং তাদের মানগুলো থাকে।

functionResponse object ( FunctionResponse )

একটি FunctionCall এর ফলাফল আউটপুট, যাতে FunctionDeclaration.name কে প্রতিনিধিত্বকারী একটি স্ট্রিং এবং ফাংশন থেকে প্রাপ্ত যেকোনো আউটপুট ধারণকারী একটি স্ট্রাকচার্ড JSON অবজেক্ট থাকে, তা মডেলের কনটেক্সট হিসেবে ব্যবহৃত হয়।

fileData object ( FileData )

URI ভিত্তিক ডেটা।

executableCode object ( ExecutableCode )

মডেল দ্বারা তৈরি কোড যা কার্যকর করার জন্য নির্ধারিত।

codeExecutionResult object ( CodeExecutionResult )

ExecutableCode কার্যকর করার ফলাফল।

toolCall object ( ToolCall )

সার্ভার-সাইড টুল কল। যখন মডেল এমন কোনো টুল আহ্বানের পূর্বাভাস দেয় যা সার্ভারে চালানো উচিত, তখন এই ফিল্ডটি পূরণ করা হয়। ক্লায়েন্টের কাছ থেকে এই বার্তাটি এপিআই-তে ফেরত পাঠানোর কথা।

toolResponse object ( ToolResponse )

সার্ভার-সাইড ToolCall নির্বাহের আউটপুট। এই ফিল্ডটি ক্লায়েন্ট দ্বারা সংশ্লিষ্ট ToolCall নির্বাহের ফলাফল দিয়ে পূরণ করা হয়।

metadata Union type
ডেটার অতিরিক্ত প্রাক-প্রক্রিয়াকরণ নিয়ন্ত্রণ করে। metadata নিম্নলিখিতগুলির মধ্যে কেবল একটি হতে পারে:
videoMetadata object ( VideoMetadata )

ঐচ্ছিক। ভিডিও মেটাডেটা। মেটাডেটা শুধুমাত্র তখনই উল্লেখ করা উচিত যখন ভিডিও ডেটা inlineData বা fileData-তে উপস্থাপন করা হয়।

JSON উপস্থাপনা
{
  "thought": boolean,
  "thoughtSignature": string,
  "partMetadata": {
    object
  },
  "mediaResolution": {
    object (MediaResolution)
  },

  // data
  "text": string,
  "inlineData": {
    object (Blob)
  },
  "functionCall": {
    object (FunctionCall)
  },
  "functionResponse": {
    object (FunctionResponse)
  },
  "fileData": {
    object (FileData)
  },
  "executableCode": {
    object (ExecutableCode)
  },
  "codeExecutionResult": {
    object (CodeExecutionResult)
  },
  "toolCall": {
    object (ToolCall)
  },
  "toolResponse": {
    object (ToolResponse)
  }
  // Union type

  // metadata
  "videoMetadata": {
    object (VideoMetadata)
  }
  // Union type
}

ব্লব

কাঁচা মিডিয়া বাইট।

টেক্সট সরাসরি বাইট হিসেবে পাঠানো উচিত নয়, 'টেক্সট' ফিল্ডটি ব্যবহার করুন।

ক্ষেত্র
mimeType string

উৎস ডেটার IANA স্ট্যান্ডার্ড MIME টাইপ। উদাহরণ: - image/png - image/jpeg যদি কোনো অসমর্থিত MIME টাইপ প্রদান করা হয়, তাহলে একটি ত্রুটি দেখানো হবে। সমর্থিত টাইপগুলোর সম্পূর্ণ তালিকার জন্য, সমর্থিত ফাইল ফরম্যাটসমূহ দেখুন।

data string ( bytes format)

মিডিয়া ফরম্যাটের জন্য কাঁচা বাইট।

একটি বেস৬৪-এনকোডেড স্ট্রিং।

JSON উপস্থাপনা
{
  "mimeType": string,
  "data": string
}

ফাংশনকল

মডেল থেকে ফেরত আসা একটি পূর্বাভাসিত FunctionCall , যাতে FunctionDeclaration.name এর প্রতিনিধিত্বকারী একটি স্ট্রিং-এর সাথে আর্গুমেন্ট এবং তাদের মানগুলো থাকে।

ক্ষেত্র
id string

ঐচ্ছিক। ফাংশন কলের অনন্য শনাক্তকারী। এটি পূরণ করা হলে, ক্লায়েন্ট functionCall কার্যকর করবে এবং মিলে যাওয়া id সহ প্রতিক্রিয়াটি ফেরত দেবে।

name string

আবশ্যক। যে ফাংশনটি কল করতে হবে তার নাম। এটি অবশ্যই az, AZ, 0-9 হতে হবে অথবা এতে আন্ডারস্কোর এবং ড্যাশ থাকতে হবে, এবং এর সর্বোচ্চ দৈর্ঘ্য ১২৮।

args object ( Struct format)

ঐচ্ছিক। ফাংশনের প্যারামিটার এবং মানগুলো JSON অবজেক্ট ফরম্যাটে থাকবে।

JSON উপস্থাপনা
{
  "id": string,
  "name": string,
  "args": {
    object
  }
}

ফাংশন প্রতিক্রিয়া

একটি FunctionCall থেকে প্রাপ্ত ফলাফল, যাতে FunctionDeclaration.name কে প্রতিনিধিত্বকারী একটি স্ট্রিং এবং ফাংশনের যেকোনো আউটপুট ধারণকারী একটি স্ট্রাকচার্ড JSON অবজেক্ট থাকে, তা মডেলের কনটেক্সট হিসেবে ব্যবহৃত হয়। এতে মডেলের পূর্বাভাসের উপর ভিত্তি করে করা একটি FunctionCall এর ফলাফল থাকা উচিত।

ক্ষেত্র
id string

ঐচ্ছিক। যে ফাংশন কলের জন্য এই প্রতিক্রিয়াটি, তার শনাক্তকারী। সংশ্লিষ্ট ফাংশন কল id সাথে মেলানোর জন্য ক্লায়েন্ট দ্বারা এটি পূরণ করা হয়।

name string

আবশ্যক। যে ফাংশনটি কল করতে হবে তার নাম। এটি অবশ্যই az, AZ, 0-9 হতে হবে অথবা এতে আন্ডারস্কোর এবং ড্যাশ থাকতে হবে, এবং এর সর্বোচ্চ দৈর্ঘ্য ১২৮।

response object ( Struct format)

প্রয়োজনীয়। ফাংশনের প্রতিক্রিয়া JSON অবজেক্ট ফরম্যাটে হতে হবে। কলাররা ফাংশনের আউটপুট ফেরত দেওয়ার জন্য ফাংশনের সিনট্যাক্স অনুযায়ী তাদের পছন্দমতো যেকোনো কী (key) ব্যবহার করতে পারে, যেমন "output", "result", ইত্যাদি। বিশেষ করে, যদি ফাংশন কলটি কার্যকর হতে ব্যর্থ হয়, তাহলে মডেলে ত্রুটির বিবরণ ফেরত পাঠানোর জন্য প্রতিক্রিয়ায় একটি "error" কী থাকতে পারে।

parts[] object ( FunctionResponsePart )

ঐচ্ছিক। অর্ডারকৃত Parts যা একটি ফাংশন রেসপন্স গঠন করে। পার্টসগুলোর ভিন্ন ভিন্ন IANA MIME টাইপ থাকতে পারে।

willContinue boolean

ঐচ্ছিক। এটি নির্দেশ করে যে ফাংশন কলটি চলতে থাকবে এবং আরও প্রতিক্রিয়া ফেরত দেওয়া হবে, যা ফাংশন কলটিকে একটি জেনারেটরে পরিণত করে। এটি শুধুমাত্র নন-ব্লকিং (NON_BLOCKING) ফাংশন কলের ক্ষেত্রে প্রযোজ্য, অন্যথায় উপেক্ষা করা হয়। যদি এটি ফলস (false) সেট করা হয়, তাহলে ভবিষ্যতের প্রতিক্রিয়াগুলো বিবেচনা করা হবে না। ফাংশন কলটি শেষ হয়েছে তা বোঝাতে willContinue=False সহ একটি খালি response ফেরত দেওয়ার অনুমতি আছে। এটি মডেল জেনারেশনকে ট্রিগার করতে পারে। জেনারেশন ট্রিগার হওয়া এড়াতে এবং ফাংশন কলটি শেষ করতে, অতিরিক্তভাবে scheduling SILENT এ সেট করুন।

scheduling enum ( Scheduling )

ঐচ্ছিক। কথোপকথনে প্রতিক্রিয়াটি কীভাবে নির্ধারিত হবে তা নির্দিষ্ট করে। শুধুমাত্র NON_BLOCKING ফাংশন কলের ক্ষেত্রে প্রযোজ্য, অন্যথায় উপেক্ষা করা হয়। ডিফল্ট মান হলো WHEN_IDLE।

JSON উপস্থাপনা
{
  "id": string,
  "name": string,
  "response": {
    object
  },
  "parts": [
    {
      object (FunctionResponsePart)
    }
  ],
  "willContinue": boolean,
  "scheduling": enum (Scheduling)
}

ফাংশন প্রতিক্রিয়া অংশ

একটি ডেটাটাইপ যা FunctionResponse মেসেজের অংশ এমন মিডিয়া ধারণ করে।

একটি FunctionResponsePart এমন ডেটা থাকে যার একটি সংশ্লিষ্ট ডেটাটাইপ রয়েছে। একটি FunctionResponsePart শুধুমাত্র FunctionResponsePart.data তে থাকা স্বীকৃত টাইপগুলোর মধ্যে একটি ধারণ করতে পারে।

যদি inlineData ফিল্ডটি র ডেটা বাইট দিয়ে পূরণ করা হয়, তাহলে একটি FunctionResponsePart অবশ্যই একটি নির্দিষ্ট IANA MIME টাইপ থাকতে হবে, যা মিডিয়ার ধরন এবং উপ-ধরন শনাক্ত করে।

ক্ষেত্র
data Union type
ফাংশনের প্রতিক্রিয়া অংশের ডেটা। data নিম্নলিখিতগুলির মধ্যে কেবল একটি হতে পারে:
inlineData object ( FunctionResponseBlob )

ইনলাইন মিডিয়া বাইট।

JSON উপস্থাপনা
{

  // data
  "inlineData": {
    object (FunctionResponseBlob)
  }
  // Union type
}

ফাংশনরেসপন্সব্লব

ফাংশন প্রতিক্রিয়ার জন্য কাঁচা মিডিয়া বাইট।

টেক্সট সরাসরি বাইট হিসেবে পাঠানো উচিত নয়, 'FunctionResponse.response' ফিল্ডটি ব্যবহার করুন।

ক্ষেত্র
mimeType string

উৎস ডেটার IANA স্ট্যান্ডার্ড MIME টাইপ। উদাহরণ: - image/png - image/jpeg যদি কোনো অসমর্থিত MIME টাইপ প্রদান করা হয়, তাহলে একটি ত্রুটি দেখানো হবে। সমর্থিত টাইপগুলোর সম্পূর্ণ তালিকার জন্য, সমর্থিত ফাইল ফরম্যাটসমূহ দেখুন।

data string ( bytes format)

মিডিয়া ফরম্যাটের জন্য কাঁচা বাইট।

একটি বেস৬৪-এনকোডেড স্ট্রিং।

JSON উপস্থাপনা
{
  "mimeType": string,
  "data": string
}

সময়সূচী

কথোপকথনে প্রতিক্রিয়াটি কীভাবে নির্ধারিত হবে তা নির্দিষ্ট করে।

এনাম
SCHEDULING_UNSPECIFIED এই মানটি অব্যবহৃত।
SILENT ফলাফলটি শুধুমাত্র কথোপকথনের প্রসঙ্গে যোগ করুন, এটিকে বাধা দেবেন না বা এর সৃষ্টি প্রক্রিয়াকে সক্রিয় করবেন না।
WHEN_IDLE ফলাফলটি কথোপকথনের প্রসঙ্গে যোগ করুন, এবং চলমান জেনারেশনে বাধা না দিয়ে আউটপুট তৈরি করার জন্য অনুরোধ করুন।
INTERRUPT ফলাফলটি কথোপকথনের প্রসঙ্গে যোগ করুন, চলমান জেনারেশন বন্ধ করুন এবং আউটপুট তৈরি করতে বলুন।

ফাইলডেটা

URI ভিত্তিক ডেটা।

ক্ষেত্র
mimeType string

ঐচ্ছিক। উৎস ডেটার IANA স্ট্যান্ডার্ড MIME টাইপ।

fileUri string

আবশ্যক। ইউআরআই।

JSON উপস্থাপনা
{
  "mimeType": string,
  "fileUri": string
}

এক্সিকিউটেবলকোড

মডেল দ্বারা তৈরি কোড যা কার্যকর করার জন্য নির্ধারিত, এবং এর ফলাফল যা মডেলে ফেরত পাঠানো হয়।

এটি শুধুমাত্র CodeExecution টুল ব্যবহার করার সময় তৈরি হয়, যেখানে কোডটি স্বয়ংক্রিয়ভাবে এক্সিকিউট হবে এবং একটি সংশ্লিষ্ট CodeExecutionResult ও তৈরি হবে।

ক্ষেত্র
id string

ঐচ্ছিক। ExecutableCode অংশের অনন্য শনাক্তকারী। সার্ভারটি মিলে যাওয়া id সহ CodeExecutionResult ফেরত দেয়।

language enum ( Language )

প্রয়োজনীয়। code প্রোগ্রামিং ভাষা।

code string

প্রয়োজনীয়। যে কোডটি নির্বাহ করতে হবে।

JSON উপস্থাপনা
{
  "id": string,
  "language": enum (Language),
  "code": string
}

ভাষা

তৈরি করা কোডের জন্য সমর্থিত প্রোগ্রামিং ভাষাসমূহ।

এনাম
LANGUAGE_UNSPECIFIED অনির্দিষ্ট ভাষা। এই মানটি ব্যবহার করা উচিত নয়।
PYTHON পাইথন >= ৩.১০, সাথে নামপাই (numpy) এবং সিমপাই (simpy) উপলব্ধ। পাইথন হলো ডিফল্ট ভাষা।

কোড এক্সিকিউশন রেজাল্ট

ExecutableCode কার্যকর করার ফলাফল।

শুধুমাত্র CodeExecution টুল ব্যবহার করা হলেই এটি তৈরি হয়।

ক্ষেত্র
id string

ঐচ্ছিক। এই ফলাফলটি যে ExecutableCode অংশের জন্য, তার শনাক্তকারী। শুধুমাত্র তখনই পূরণ করা হবে যখন সংশ্লিষ্ট ExecutableCode একটি আইডি থাকবে।

outcome enum ( Outcome )

প্রয়োজনীয়। কোড সম্পাদনের ফলাফল।

output string

ঐচ্ছিক। কোড কার্যকর হলে stdout থাকে, অন্যথায় stderr বা অন্য কোনো বিবরণ থাকে।

JSON উপস্থাপনা
{
  "id": string,
  "outcome": enum (Outcome),
  "output": string
}

ফলাফল

কোড নির্বাহের সম্ভাব্য ফলাফলসমূহের তালিকা।

এনাম
OUTCOME_UNSPECIFIED অনির্দিষ্ট অবস্থা। এই মানটি ব্যবহার করা উচিত নয়।
OUTCOME_OK কোড সফলভাবে কার্যকর হয়েছে। output stdout অন্তর্ভুক্ত থাকবে, যদি থাকে।
OUTCOME_FAILED কোড কার্যকর করা ব্যর্থ হয়েছে। output stderr এবং stdout (যদি থাকে) অন্তর্ভুক্ত থাকবে।
OUTCOME_DEADLINE_EXCEEDED কোডটি অনেকক্ষণ ধরে চলার কারণে বাতিল করা হয়েছে। আংশিক output থাকতেও পারে, আবার নাও থাকতে পারে।

টুলকল

মডেল থেকে ফেরত আসা একটি পূর্বাভাসিত সার্ভার-সাইড ToolCall । এই মেসেজটিতে এমন একটি টুল সম্পর্কে তথ্য থাকে যা মডেলটি চালু করতে চায়। ক্লায়েন্টের এই ToolCall কার্যকর করার কথা নয়। এর পরিবর্তে, ক্লায়েন্টের উচিত পরবর্তী ধাপে একটি Content মেসেজের মধ্যে সংশ্লিষ্ট ToolResponse সহ এই ToolCall এপিআই-তে ফেরত পাঠানো।

ক্ষেত্র
id string

ঐচ্ছিক। টুল কলের অনন্য শনাক্তকারী। সার্ভারটি মিলে যাওয়া id সহ টুল রেসপন্সটি ফেরত পাঠায়।

toolType enum ( ToolType )

প্রয়োজনীয়। যে ধরনের টুল ডাকা হয়েছিল।

args object ( Struct format)

ঐচ্ছিক। টুল কল করার আর্গুমেন্ট। উদাহরণ: {"arg1" : "value1", "arg2" : "value2" , ...}

JSON উপস্থাপনা
{
  "id": string,
  "toolType": enum (ToolType),
  "args": {
    object
  }
}

টুলটাইপ

ফাংশন কলে ব্যবহৃত টুলের ধরন।

এনাম
TOOL_TYPE_UNSPECIFIED অনির্দিষ্ট সরঞ্জামের ধরণ।
GOOGLE_SEARCH_WEB গুগল সার্চ টুল, Tool.google_search.search_types.web_search-এর সাথে ম্যাপ করা হয়েছে।
GOOGLE_SEARCH_IMAGE ইমেজ সার্চ টুল, যা Tool.google_search.search_types.image_search-এর সাথে ম্যাপ করা হয়।
URL_CONTEXT URL কনটেক্সট টুল, Tool.url_context-এর সাথে ম্যাপ করে।
GOOGLE_MAPS গুগল ম্যাপস টুল, ম্যাপস টু টুল.গুগল_ম্যাপস।

টুলরেসপন্স

সার্ভার-সাইড ToolCall এক্সিকিউশনের আউটপুট। এই মেসেজটিতে এমন একটি টুল ইনভোকেশনের ফলাফল থাকে, যা মডেল থেকে আসা একটি ToolCall মাধ্যমে শুরু করা হয়েছিল। ক্লায়েন্টের উচিত পরবর্তী ধাপে একটি Content মেসেজের মধ্যে এই ToolResponse , সংশ্লিষ্ট ToolCall , এপিআই-তে ফেরত পাঠানো।

ক্ষেত্র
id string

ঐচ্ছিক। যে টুল কলের জন্য এই প্রতিক্রিয়াটি দেওয়া হচ্ছে, তার শনাক্তকারী।

toolType enum ( ToolType )

আবশ্যক। যে টুলটি কল করা হয়েছে তার ধরন, যা সংশ্লিষ্ট ToolCall এর toolType সাথে মিলতে হবে।

response object ( Struct format)

ঐচ্ছিক। টুলটির প্রতিক্রিয়া।

JSON উপস্থাপনা
{
  "id": string,
  "toolType": enum (ToolType),
  "response": {
    object
  }
}

ভিডিওমেটাডেটা

অপ্রচলিত: এর পরিবর্তে GenerateContentRequest.processing_options ব্যবহার করুন। মেটাডেটা ইনপুট ভিডিও কন্টেন্টের বর্ণনা দেয়।

ক্ষেত্র
startOffset string ( Duration format)

ঐচ্ছিক। ভিডিওটির শুরুর অফসেট।

সেকেন্ডে একটি সময়কাল যার সর্বোচ্চ নয়টি ভগ্নাংশ সংখ্যা ' s ' দিয়ে শেষ হয়। উদাহরণ: "3.5s"

endOffset string ( Duration format)

ঐচ্ছিক। ভিডিওটির শেষ অফসেট।

সেকেন্ডে একটি সময়কাল যার সর্বোচ্চ নয়টি ভগ্নাংশ সংখ্যা ' s ' দিয়ে শেষ হয়। উদাহরণ: "3.5s"

fps number

ঐচ্ছিক। মডেলে পাঠানো ভিডিওর ফ্রেম রেট। নির্দিষ্ট করে না দিলে, ডিফল্ট মান হবে ১.০। এফপিএস পরিসীমা হলো (০.০, ২৪.০)।

JSON উপস্থাপনা
{
  "startOffset": string,
  "endOffset": string,
  "fps": number
}

মিডিয়ারেজোলিউশন

টোকেনাইজেশনের জন্য মিডিয়া রেজোলিউশন।

ক্ষেত্র
value Union type
মিডিয়া রেজোলিউশন লেভেলের value নিম্নলিখিতগুলির মধ্যে কেবল একটি হতে পারে:
level enum ( Level )

প্রদত্ত মিডিয়ার জন্য ব্যবহৃত টোকেনাইজেশন গুণমান। জেমিনি এপিআই সমর্থনের জন্য .

JSON উপস্থাপনা
{

  // value
  "level": enum (Level)
  // Union type
}

স্তর

মিডিয়া রেজোলিউশন লেভেল।

এনাম
MEDIA_RESOLUTION_UNSPECIFIED মিডিয়া রেজোলিউশন সেট করা হয়নি।
MEDIA_RESOLUTION_LOW মিডিয়া রেজোলিউশন নিম্নতে সেট করা হয়েছে।
MEDIA_RESOLUTION_MEDIUM মিডিয়া রেজোলিউশন মাঝারিতে সেট করা হয়েছে।
MEDIA_RESOLUTION_HIGH মিডিয়া রেজোলিউশন উচ্চতে সেট করা হয়েছে।
MEDIA_RESOLUTION_ULTRA_HIGH মিডিয়া রেজোলিউশন আল্ট্রা হাই-তে সেট করা হয়েছে।

সরঞ্জাম

মডেলটি প্রতিক্রিয়া তৈরি করতে যে টুলের বিবরণ ব্যবহার করতে পারে।

Tool হলো এক খণ্ড কোড যা সিস্টেমকে বাহ্যিক সিস্টেমের সাথে যোগাযোগ করে এমন কোনো কাজ বা একাধিক কাজ সম্পাদন করতে সক্ষম করে, যা মডেলের জ্ঞান ও পরিধির বাইরে থাকে।

পরবর্তী আইডি: ১৫

ক্ষেত্র
functionDeclarations[] object ( FunctionDeclaration )

ঐচ্ছিক। মডেলে উপলব্ধ FunctionDeclarations একটি তালিকা যা ফাংশন কল করার জন্য ব্যবহার করা যেতে পারে।

মডেল বা সিস্টেমটি ফাংশনটি সম্পাদন করে না। এর পরিবর্তে, সংজ্ঞায়িত ফাংশনটি এক্সিকিউশনের জন্য আর্গুমেন্টসহ একটি FunctionCall হিসেবে ক্লায়েন্ট সাইডে ফেরত পাঠানো হতে পারে। মডেলটি রেসপন্সে FunctionCall পূরণ করার মাধ্যমে এই ফাংশনগুলোর একটি উপসেট কল করার সিদ্ধান্ত নিতে পারে। পরবর্তী কথোপকথনের পালাটিতে পরবর্তী মডেল পালার জন্য Content.role 'function' জেনারেশন কনটেক্সটসহ একটি FunctionResponse থাকতে পারে।

googleSearchRetrieval object ( GoogleSearchRetrieval )

ঐচ্ছিক। গুগল সার্চ দ্বারা চালিত একটি তথ্য পুনরুদ্ধার টুল।

codeExecution object ( CodeExecution )

ঐচ্ছিক। এটি মডেলকে জেনারেশনের অংশ হিসেবে কোড এক্সিকিউট করতে সক্ষম করে।

computerUse object ( ComputerUse )

ঐচ্ছিক। মডেলটিকে সরাসরি কম্পিউটারের সাথে সংযোগ স্থাপনে সহায়তা করার একটি টুল। এটি সক্রিয় করা হলে, এটি স্বয়ংক্রিয়ভাবে কম্পিউটার-ব্যবহার-নির্দিষ্ট ফাংশন ডিক্লারেশনগুলো পূরণ করে দেয়।

urlContext object ( UrlContext )

ঐচ্ছিক। ইউআরএল কনটেক্সট পুনরুদ্ধারে সহায়ক টুল।

mcpServers[] object ( McpServer )

ঐচ্ছিক। সংযোগ করার জন্য এমসিপি সার্ভারসমূহ।

googleMaps object ( GoogleMaps )

ঐচ্ছিক। এমন একটি টুল যা ব্যবহারকারীর কোয়েরি সম্পর্কিত ভূ-স্থানিক প্রেক্ষাপটের সাহায্যে মডেলের প্রতিক্রিয়াকে ভিত্তি প্রদান করে।

JSON উপস্থাপনা
{
  "functionDeclarations": [
    {
      object (FunctionDeclaration)
    }
  ],
  "googleSearchRetrieval": {
    object (GoogleSearchRetrieval)
  },
  "codeExecution": {
    object (CodeExecution)
  },
  "googleSearch": {
    object (GoogleSearch)
  },
  "computerUse": {
    object (ComputerUse)
  },
  "urlContext": {
    object (UrlContext)
  },
  "fileSearch": {
    object (FileSearch)
  },
  "mcpServers": [
    {
      object (McpServer)
    }
  ],
  "googleMaps": {
    object (GoogleMaps)
  }
}

ফাংশন ঘোষণা

OpenAPI 3.03 স্পেসিফিকেশন দ্বারা সংজ্ঞায়িত একটি ফাংশন ডিক্লারেশনের কাঠামোগত উপস্থাপনা। এই ডিক্লারেশনে ফাংশনের নাম এবং প্যারামিটার অন্তর্ভুক্ত থাকে। এই ফাংশন ডিক্লারেশনটি একটি কোড ব্লকের উপস্থাপনা, যা মডেল দ্বারা একটি Tool হিসাবে ব্যবহৃত হতে পারে এবং ক্লায়েন্ট দ্বারা এক্সিকিউট করা যেতে পারে।

ক্ষেত্র
name string

আবশ্যক। ফাংশনের নাম। নামটি অবশ্যই az, AZ, ০-৯ এর মধ্যে হতে হবে অথবা এতে আন্ডারস্কোর, কোলন, ডট এবং ড্যাশ থাকতে পারে, এবং এর সর্বোচ্চ দৈর্ঘ্য ১২৮।

description string

প্রয়োজনীয়। ফাংশনটির একটি সংক্ষিপ্ত বিবরণ।

behavior enum ( Behavior )

ঐচ্ছিক। ফাংশনের আচরণ নির্দিষ্ট করে। বর্তমানে শুধুমাত্র BidiGenerateContent মেথড দ্বারা সমর্থিত।

parameters object ( Schema )

ঐচ্ছিক। এই ফাংশনের প্যারামিটারগুলো বর্ণনা করে। এটি ওপেন এপিআই ৩.০৩ প্যারামিটার অবজেক্টকে প্রতিফলিত করে। স্ট্রিং কী: প্যারামিটারের নাম। প্যারামিটারের নাম কেস-সেনসিটিভ। স্কিমা ভ্যালু: প্যারামিটারের জন্য ব্যবহৃত টাইপ নির্ধারণকারী স্কিমা।

parametersJsonSchema value ( Value format)

ঐচ্ছিক। JSON স্কিমা ফরম্যাটে ফাংশনের প্যারামিটারগুলো বর্ণনা করে। স্কিমাটিতে অবশ্যই একটি অবজেক্ট থাকতে হবে, যার প্রোপার্টিগুলোই হলো ফাংশনের প্যারামিটার। উদাহরণস্বরূপ:

{
  "type": "object",
  "properties": {
    "name": { "type": "string" },
    "age": { "type": "integer" }
  },
  "additionalProperties": false,
  "required": ["name", "age"],
  "propertyOrdering": ["name", "age"]
}

এই ক্ষেত্রটি parameters সাথে পারস্পরিকভাবে বর্জনশীল।

response object ( Schema )

ঐচ্ছিক। এই ফাংশনের আউটপুটকে JSON স্কিমা ফরম্যাটে বর্ণনা করে। এটি ওপেন এপিআই ৩.০৩ রেসপন্স অবজেক্টকে প্রতিফলিত করে। স্কিমাটি ফাংশনের রেসপন্স ভ্যালুর জন্য ব্যবহৃত টাইপ নির্ধারণ করে।

responseJsonSchema value ( Value format)

ঐচ্ছিক। এই ফাংশনের আউটপুট JSON স্কিমা ফরম্যাটে বর্ণনা করে। স্কিমা দ্বারা নির্দিষ্ট মানটিই হলো ফাংশনটির প্রতিক্রিয়া মান।

এই ক্ষেত্রটি response সাথে পারস্পরিকভাবে বর্জনশীল।

JSON উপস্থাপনা
{
  "name": string,
  "description": string,
  "behavior": enum (Behavior),
  "parameters": {
    object (Schema)
  },
  "parametersJsonSchema": value,
  "response": {
    object (Schema)
  },
  "responseJsonSchema": value
}

স্কিমা

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

ক্ষেত্র
type enum ( Type )

আবশ্যক। ডেটা টাইপ।

format string

ঐচ্ছিক। ডেটার ফরম্যাট। যেকোনো মানই গ্রহণযোগ্য, তবে বেশিরভাগই কোনো বিশেষ কার্যকারিতা চালু করে না।

title string

ঐচ্ছিক। স্কিমার শিরোনাম।

description string

ঐচ্ছিক। প্যারামিটারটির একটি সংক্ষিপ্ত বিবরণ। এতে ব্যবহারের উদাহরণ থাকতে পারে। প্যারামিটারের বিবরণ মার্কডাউন ফরম্যাটে দেওয়া যেতে পারে।

nullable boolean

ঐচ্ছিক। মানটি নাল হতে পারে কিনা তা নির্দেশ করে।

enum[] string

ঐচ্ছিক। enum ফরম্যাটের Type.STRING এলিমেন্টের সম্ভাব্য মানসমূহ। উদাহরণস্বরূপ, আমরা একটি Enum Direction এভাবে সংজ্ঞায়িত করতে পারি: {type:STRING, format:enum, enum:["EAST", NORTH", "SOUTH", "WEST"]}

maxItems string ( int64 format)

ঐচ্ছিক। Type.ARRAY-এর উপাদানগুলোর সর্বোচ্চ সংখ্যা।

minItems string ( int64 format)

ঐচ্ছিক। Type.ARRAY-এর জন্য উপাদানগুলোর ন্যূনতম সংখ্যা।

properties map (key: string, value: object ( Schema ))

ঐচ্ছিক। Type.OBJECT-এর বৈশিষ্ট্যসমূহ।

একটি অবজেক্ট যা "key": value জোড়ের একটি তালিকা ধারণ করে। উদাহরণ: { "name": "wrench", "mass": "1.3kg", "count": "3" }

required[] string

ঐচ্ছিক। Type.OBJECT-এর প্রয়োজনীয় প্রোপার্টিসমূহ।

minProperties string ( int64 format)

ঐচ্ছিক। Type.OBJECT-এর জন্য প্রপার্টিগুলোর ন্যূনতম সংখ্যা।

maxProperties string ( int64 format)

ঐচ্ছিক। Type.OBJECT-এর জন্য প্রপার্টির সর্বোচ্চ সংখ্যা।

minLength string ( int64 format)

ঐচ্ছিক। টাইপ স্ট্রিং-এর জন্য স্কিমা ফিল্ডসমূহ। Type.STRING-এর সর্বনিম্ন দৈর্ঘ্য।

maxLength string ( int64 format)

ঐচ্ছিক। Type.STRING-এর সর্বোচ্চ দৈর্ঘ্য।

pattern string

ঐচ্ছিক। কোনো স্ট্রিংকে রেগুলার এক্সপ্রেশনে সীমাবদ্ধ করার জন্য Type.STRING-এর প্যাটার্ন।

example value ( Value format)

ঐচ্ছিক। অবজেক্টটির উদাহরণ। শুধুমাত্র যখন অবজেক্টটি রুট হবে, তখনই এটি পূরণ হবে।

anyOf[] object ( Schema )

ঐচ্ছিক। তালিকার যেকোনো একটি বা একাধিক সাবস্কিমার সাপেক্ষে মানটি যাচাই করা উচিত।

propertyOrdering[] string

ঐচ্ছিক। প্রোপার্টিগুলোর ক্রম। ওপেন এপিআই স্পেসিফিকেশনের কোনো স্ট্যান্ডার্ড ফিল্ড নয়। রেসপন্সে প্রোপার্টিগুলোর ক্রম নির্ধারণ করতে ব্যবহৃত হয়।

default value ( Value format)

ঐচ্ছিক। ফিল্ডটির ডিফল্ট মান। JSON স্কিমা অনুযায়ী, এই ফিল্ডটি ডকুমেন্টেশন জেনারেটরদের জন্য উদ্দিষ্ট এবং এটি ভ্যালিডেশনকে প্রভাবিত করে না। তাই এটিকে এখানে অন্তর্ভুক্ত করা হয়েছে এবং উপেক্ষা করা হয়, যাতে default ফিল্ডসহ স্কিমা প্রেরণকারী ডেভেলপাররা ‘unknown-field’ ত্রুটি না পান।

items object ( Schema )

ঐচ্ছিক। Type.ARRAY-এর উপাদানগুলোর স্কিমা।

minimum number

ঐচ্ছিক। INTEGER এবং NUMBER টাইপের জন্য স্কিমা ফিল্ড। Type.INTEGER এবং Type.NUMBER-এর সর্বনিম্ন মান।

maximum number

ঐচ্ছিক। Type.INTEGER এবং Type.NUMBER-এর সর্বোচ্চ মান।

JSON উপস্থাপনা
{
  "type": enum (Type),
  "format": string,
  "title": string,
  "description": string,
  "nullable": boolean,
  "enum": [
    string
  ],
  "maxItems": string,
  "minItems": string,
  "properties": {
    string: {
      object (Schema)
    },
    ...
  },
  "required": [
    string
  ],
  "minProperties": string,
  "maxProperties": string,
  "minLength": string,
  "maxLength": string,
  "pattern": string,
  "example": value,
  "anyOf": [
    {
      object (Schema)
    }
  ],
  "propertyOrdering": [
    string
  ],
  "default": value,
  "items": {
    object (Schema)
  },
  "minimum": number,
  "maximum": number
}

প্রকার

https://spec.openapis.org/oas/v3.0.3#data-types- এ সংজ্ঞায়িত OpenAPI ডেটা টাইপগুলির তালিকা Type-এ রয়েছে।

এনাম
TYPE_UNSPECIFIED নির্দিষ্ট করা না থাকলে, ব্যবহার করা উচিত নয়।
STRING স্ট্রিং টাইপ।
NUMBER সংখ্যা প্রকার।
INTEGER পূর্ণসংখ্যা প্রকার।
BOOLEAN বুলিয়ান প্রকার।
ARRAY অ্যারে টাইপ।
OBJECT বস্তুর প্রকার।
NULL নাল টাইপ।

আচরণ

ফাংশনের আচরণ নির্ধারণ করে। ডিফল্টভাবে এটি BLOCKING

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

গুগলসার্চরিট্রিভাল

গ্রাউন্ডিংয়ের জন্য পাবলিক ওয়েব ডেটা সংগ্রহের একটি টুল, গুগল দ্বারা চালিত।

ক্ষেত্র
dynamicRetrievalConfig object ( DynamicRetrievalConfig )

প্রদত্ত উৎসের জন্য গতিশীল পুনরুদ্ধার কনফিগারেশন নির্দিষ্ট করে।

JSON উপস্থাপনা
{
  "dynamicRetrievalConfig": {
    object (DynamicRetrievalConfig)
  }
}

ডাইনামিকরিট্রিভালকনফিগ

ডাইনামিক রিট্রিভাল কাস্টমাইজ করার বিকল্পগুলো বর্ণনা করে।

ক্ষেত্র
mode enum ( Mode )

ডাইনামিক রিট্রিভালে ব্যবহৃত প্রেডিক্টরের মোড।

dynamicThreshold number

ডাইনামিক রিট্রিভালে ব্যবহার করার জন্য থ্রেশহোল্ড। এটি সেট করা না থাকলে, সিস্টেমের ডিফল্ট মান ব্যবহৃত হয়।

JSON উপস্থাপনা
{
  "mode": enum (Mode),
  "dynamicThreshold": number
}

মোড

ডাইনামিক রিট্রিভালে ব্যবহৃত প্রেডিক্টরের মোড।

এনাম
MODE_UNSPECIFIED সর্বদা পুনরুদ্ধার প্রক্রিয়া চালু করুন।
MODE_DYNAMIC সিস্টেম যখন প্রয়োজন মনে করবে, কেবল তখনই তথ্য পুনরুদ্ধার চালাবে।

কোডএক্সিকিউশন

এই প্রকারে কোনো ক্ষেত্র নেই।

এমন একটি টুল যা মডেল দ্বারা তৈরি কোড কার্যকর করে এবং স্বয়ংক্রিয়ভাবে ফলাফলটি মডেলে ফেরত পাঠায়।

আরও দেখুন ExecutableCode এবং CodeExecutionResult , যেগুলো শুধুমাত্র এই টুলটি ব্যবহার করার সময়ই তৈরি হয়।

গুগল অনুসন্ধান

গুগল সার্চ টুলের ধরণ। মডেলে গুগল সার্চ সমর্থন করার টুল। গুগল দ্বারা চালিত।

ক্ষেত্র
timeRangeFilter object ( Interval )

ঐচ্ছিক। অনুসন্ধানের ফলাফল একটি নির্দিষ্ট সময়সীমার মধ্যে ফিল্টার করুন। গ্রাহকরা যদি শুরুর সময় নির্ধারণ করেন, তবে তাদের অবশ্যই শেষের সময়ও নির্ধারণ করতে হবে (এবং এর বিপরীতটিও প্রযোজ্য)।

searchTypes object ( SearchTypes )

ঐচ্ছিক। যে ধরনের অনুসন্ধান সক্রিয় করতে চান। সেট করা না থাকলে, ওয়েব অনুসন্ধান ডিফল্টরূপে সক্রিয় থাকে।

JSON উপস্থাপনা
{
  "timeRangeFilter": {
    object (Interval)
  },
  "searchTypes": {
    object (SearchTypes)
  }
}

ব্যবধান

একটি সময় ব্যবধানকে বোঝায়, যা একটি টাইমস্ট্যাম্প শুরু (অন্তর্ভুক্ত) এবং একটি টাইমস্ট্যাম্প শেষ (বর্জনীয়) হিসেবে এনকোড করা হয়।

শুরু অবশ্যই শেষের চেয়ে কম বা সমান হতে হবে। যখন শুরু শেষের সমান হয়, তখন ব্যবধানটি শূন্য থাকে (কোনো সময়ের সাথে মেলে না)। যখন শুরু এবং শেষ উভয়ই অনির্দিষ্ট থাকে, তখন ব্যবধানটি যেকোনো সময়ের সাথে মেলে।

ক্ষেত্র
startTime string ( Timestamp format)

ঐচ্ছিক। বিরতির অন্তর্ভুক্তিমূলক শুরু।

যদি নির্দিষ্ট করা থাকে, তবে এই ব্যবধানের সাথে মিলে যাওয়া একটি টাইমস্ট্যাম্পকে অবশ্যই শুরুর সময়ের সমান বা তার পরের হতে হবে।

RFC 3339 ব্যবহার করে, যেখানে উৎপন্ন আউটপুট সর্বদা Z-স্বাভাবিক হবে এবং 0, 3, 6 অথবা 9 ভগ্নাংশ সংখ্যা ব্যবহার করবে। "Z" ব্যতীত অন্যান্য অফসেটগুলিও গ্রহণযোগ্য। উদাহরণ: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" অথবা "2014-10-02T15:01:23+05:30"

endTime string ( Timestamp format)

ঐচ্ছিক। ব্যবধানের একচেটিয়া সমাপ্তি।

যদি নির্দিষ্ট করা থাকে, তবে এই ব্যবধানের সাথে মেলে এমন একটি টাইমস্ট্যাম্প শেষের আগে থাকতে হবে।

RFC 3339 ব্যবহার করে, যেখানে উৎপন্ন আউটপুট সর্বদা Z-স্বাভাবিক হবে এবং 0, 3, 6 অথবা 9 ভগ্নাংশ সংখ্যা ব্যবহার করবে। "Z" ব্যতীত অন্যান্য অফসেটগুলিও গ্রহণযোগ্য। উদাহরণ: "2014-10-02T15:01:23Z" , "2014-10-02T15:01:23.045123456Z" অথবা "2014-10-02T15:01:23+05:30"

JSON উপস্থাপনা
{
  "startTime": string,
  "endTime": string
}

অনুসন্ধানের ধরণ

গুগল সার্চ টুলে বিভিন্ন ধরনের সার্চ চালু করা যায়।

ক্ষেত্র
JSON উপস্থাপনা
{
  "webSearch": {
    object (WebSearch)
  },
  "imageSearch": {
    object (ImageSearch)
  }
}

ওয়েবসার্চ

এই প্রকারে কোনো ক্ষেত্র নেই।

গ্রাউন্ডিং এবং সংশ্লিষ্ট কনফিগারেশনের জন্য সাধারণ ওয়েব অনুসন্ধান।

ইমেজসার্চ

এই প্রকারে কোনো ক্ষেত্র নেই।

গ্রাউন্ডিং এবং সংশ্লিষ্ট কনফিগারেশনের জন্য চিত্র অনুসন্ধান।

কম্পিউটার ব্যবহার

কম্পিউটার ব্যবহারের টুলের ধরন।

ক্ষেত্র
environment enum ( Environment )

প্রয়োজনীয়। যে পরিবেশে কাজ করা হচ্ছে।

excludedPredefinedFunctions[] string

ঐচ্ছিক। ডিফল্টরূপে, পূর্বনির্ধারিত ফাংশনগুলো চূড়ান্ত মডেল কলে অন্তর্ভুক্ত থাকে। এগুলোর মধ্যে কয়েকটিকে স্বয়ংক্রিয়ভাবে অন্তর্ভুক্ত হওয়া থেকে সুস্পষ্টভাবে বাদ দেওয়া যেতে পারে। এর দুটি উদ্দেশ্য থাকতে পারে: ১. আরও সীমাবদ্ধ / ভিন্ন একটি অ্যাকশন স্পেস ব্যবহার করা। ২. পূর্বনির্ধারিত ফাংশনগুলোর সংজ্ঞা / নির্দেশাবলীর উন্নতি সাধন করা।

JSON উপস্থাপনা
{
  "environment": enum (Environment),
  "excludedPredefinedFunctions": [
    string
  ]
}

পরিবেশ

যে পরিবেশে কাজ করা হচ্ছে, তার প্রতিনিধিত্ব করে, যেমন একটি ওয়েব ব্রাউজার।

এনাম
ENVIRONMENT_UNSPECIFIED ডিফল্ট হিসেবে ব্রাউজার ব্যবহৃত হয়।
ENVIRONMENT_BROWSER ওয়েব ব্রাউজারে পরিচালিত হয়।

ইউআরএলপ্রসঙ্গ

এই প্রকারে কোনো ক্ষেত্র নেই।

ইউআরএল কনটেক্সট পুনরুদ্ধারে সহায়ক টুল।

ফাইলসার্চ

ফাইলসার্চ টুলটি সিম্যান্টিক রিট্রিভাল কর্পোরা থেকে তথ্য আহরণ করে। ইমপোর্টফাইল এপিআই (ImportFile API) ব্যবহার করে সিম্যান্টিক রিট্রিভাল কর্পোরা-তে ফাইল ইম্পোর্ট করা হয়।

ক্ষেত্র
fileSearchStoreNames[] string

আবশ্যক। যে ফাইলসার্চস্টোরগুলো থেকে ডেটা সংগ্রহ করতে হবে, সেগুলোর নাম। উদাহরণ: fileSearchStores/my-file-search-store-123

metadataFilter string

ঐচ্ছিক। শব্দার্থিক পুনরুদ্ধারের ডকুমেন্ট এবং চাঙ্কগুলিতে প্রয়োগ করার জন্য মেটাডেটা ফিল্টার।

topK integer

ঐচ্ছিক। পুনরুদ্ধার করার জন্য শব্দার্থিক পুনরুদ্ধার খণ্ডের সংখ্যা।

JSON উপস্থাপনা
{
  "fileSearchStoreNames": [
    string
  ],
  "metadataFilter": string,
  "topK": integer
}

McpServer

একটি MCPServer হলো এমন একটি সার্ভার যাকে মডেল বিভিন্ন কাজ সম্পাদনের জন্য আহ্বান করতে পারে। এটি এমন একটি সার্ভার যা MCP প্রোটোকল বাস্তবায়ন করে। পরবর্তী আইডি: ৫

ক্ষেত্র
name string

MCPServer-টির নাম।

transport Union type
MCPServer-এর সাথে সংযোগ করার জন্য যে ট্রান্সপোর্টটি ব্যবহার করতে হবে। transport নিম্নলিখিতগুলির মধ্যে কেবল একটি হতে পারে:
streamableHttpTransport object ( StreamableHttpTransport )

এমন একটি ট্রান্সপোর্ট যা HTTP অনুরোধ এবং প্রতিক্রিয়া স্ট্রিম করতে পারে।

JSON উপস্থাপনা
{
  "name": string,

  // transport
  "streamableHttpTransport": {
    object (StreamableHttpTransport)
  }
  // Union type
}

স্ট্রিমেবলএইচটিটিপিট্রান্সপোর্ট

একটি ট্রান্সপোর্ট যা HTTP অনুরোধ এবং প্রতিক্রিয়া স্ট্রিম করতে পারে। পরবর্তী আইডি: ৬

ক্ষেত্র
url string

MCPServer এন্ডপয়েন্টের সম্পূর্ণ URL। উদাহরণ: "https://api.example.com/mcp"

headers map (key: string, value: string)

ঐচ্ছিক: প্রয়োজন হলে অথেনটিকেশন হেডার, টাইমআউট ইত্যাদির জন্য ফিল্ড।

একটি অবজেক্ট যা "key": value জোড়ের একটি তালিকা ধারণ করে। উদাহরণ: { "name": "wrench", "mass": "1.3kg", "count": "3" }

timeout string ( Duration format)

নিয়মিত কার্যক্রমের জন্য HTTP টাইমআউট।

সেকেন্ডে একটি সময়কাল যার সর্বোচ্চ নয়টি ভগ্নাংশ সংখ্যা ' s ' দিয়ে শেষ হয়। উদাহরণ: "3.5s"

sseReadTimeout string ( Duration format)

SSE রিড অপারেশনের জন্য সময়সীমা শেষ।

সেকেন্ডে একটি সময়কাল যার সর্বোচ্চ নয়টি ভগ্নাংশ সংখ্যা ' s ' দিয়ে শেষ হয়। উদাহরণ: "3.5s"

terminateOnClose boolean

ট্রান্সপোর্ট বন্ধ হলে ক্লায়েন্ট সেশন বন্ধ করা হবে কিনা।

JSON উপস্থাপনা
{
  "url": string,
  "headers": {
    string: string,
    ...
  },
  "timeout": string,
  "sseReadTimeout": string,
  "terminateOnClose": boolean
}

গুগলম্যাপস

গুগল ম্যাপস টুল যা ব্যবহারকারীর অনুসন্ধানের জন্য ভূ-স্থানিক প্রেক্ষাপট প্রদান করে।

ক্ষেত্র
enableWidget boolean

Optional. Whether to return a widget context token in the GroundingMetadata of the response. Developers can use the widget context token to render a Google Maps widget with geospatial context related to the places that the model references in the response.

JSON উপস্থাপনা
{
  "enableWidget": boolean
}

ToolConfig

The Tool configuration containing parameters for specifying Tool use in the request.

ক্ষেত্র
functionCallingConfig object ( FunctionCallingConfig )

Optional. Function calling config.

retrievalConfig object ( RetrievalConfig )

Optional. Retrieval config.

includeServerSideToolInvocations boolean

Optional. If true, the API response will include the server-side tool calls and responses within the Content message. This allows clients to observe the server's tool interactions.

JSON উপস্থাপনা
{
  "functionCallingConfig": {
    object (FunctionCallingConfig)
  },
  "retrievalConfig": {
    object (RetrievalConfig)
  },
  "includeServerSideToolInvocations": boolean
}

FunctionCallingConfig

Configuration for specifying function calling behavior.

ক্ষেত্র
mode enum ( Mode )

Optional. Specifies the mode in which function calling should execute. If unspecified, the default value will be set to AUTO.

allowedFunctionNames[] string

Optional. A set of function names that, when provided, limits the functions the model will call.

This should only be set when the Mode is ANY or VALIDATED. Function names should match [FunctionDeclaration.name]. When set, model will predict a function call from only allowed function names.

JSON উপস্থাপনা
{
  "mode": enum (Mode),
  "allowedFunctionNames": [
    string
  ]
}

মোড

Defines the execution behavior for function calling by defining the execution mode.

এনাম
MODE_UNSPECIFIED Unspecified function calling mode. This value should not be used.
AUTO Default model behavior, model decides to predict either a function call or a natural language response.
ANY Model is constrained to always predicting a function call only. If "allowedFunctionNames" are set, the predicted function call will be limited to any one of "allowedFunctionNames", else the predicted function call will be any one of the provided "functionDeclarations".
NONE Model will not predict any function call. Model behavior is same as when not passing any function declarations.
VALIDATED Model decides to predict either a function call or a natural language response, but will validate function calls with constrained decoding. If "allowedFunctionNames" are set, the predicted function call will be limited to any one of "allowedFunctionNames", else the predicted function call will be any one of the provided "functionDeclarations".

RetrievalConfig

Retrieval config.

ক্ষেত্র
latLng object ( LatLng )

Optional. The location of the user.

languageCode string

Optional. The language code of the user. Language code for content. Use language tags defined by BCP47 .

JSON উপস্থাপনা
{
  "latLng": {
    object (LatLng)
  },
  "languageCode": string
}

LatLng

An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard . Values must be within normalized ranges.

ক্ষেত্র
latitude number

The latitude in degrees. It must be in the range [-90.0, +90.0].

longitude number

The longitude in degrees. It must be in the range [-180.0, +180.0].

JSON উপস্থাপনা
{
  "latitude": number,
  "longitude": number
}

UsageMetadata

Metadata on the usage of the cached content.

ক্ষেত্র
totalTokenCount integer

Total number of tokens that the cached content consumes.

JSON উপস্থাপনা
{
  "totalTokenCount": integer
}