Caching

কনটেক্সট ক্যাশিং আপনাকে প্রাক-কম্পিউটেড ইনপুট টোকেনগুলি সংরক্ষণ এবং পুনঃব্যবহারের অনুমতি দেয় যা আপনি বারবার ব্যবহার করতে চান, উদাহরণস্বরূপ একই মিডিয়া ফাইল সম্পর্কে বিভিন্ন প্রশ্ন জিজ্ঞাসা করার সময়। এটি ব্যবহারের উপর নির্ভর করে খরচ এবং গতি সঞ্চয় করতে পারে। বিস্তারিত ভূমিকার জন্য, প্রসঙ্গ ক্যাশিং গাইড দেখুন।

পদ্ধতি: cachedContents.create

ক্যাশেড কনটেন্ট রিসোর্স তৈরি করে।

শেষবিন্দু

পোস্ট 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

ঐচ্ছিক। অপরিবর্তনীয়। ক্যাশ করা বিষয়বস্তুর ব্যবহারকারীর তৈরি অর্থপূর্ণ প্রদর্শন নাম। সর্বোচ্চ 128টি ইউনিকোড অক্ষর।

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)

Node.js

// 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, "user"),
}
cache, err := client.Caches.Create(ctx, modelName, &genai.CreateCachedContentConfig{
	Contents: contents,
	SystemInstruction: genai.NewContentFromText(
		"You are an expert analyzing transcripts.", "user",
	),
})
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)

Node.js

// 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, "user"),
}
cache, err := client.Caches.Create(ctx, modelName, &genai.CreateCachedContentConfig{
	Contents:          contents,
	SystemInstruction: genai.NewContentFromText(
		"You are an expert analyzing transcripts.", "user",
	),
})
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)

Node.js

// 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, "user"),
}, 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, "user"),
})
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

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

pageToken string

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

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

শরীরের অনুরোধ

অনুরোধের বডি খালি হতে হবে।

প্রতিক্রিয়া শরীর

ক্যাশেড বিষয়বস্তু তালিকা সহ প্রতিক্রিয়া.

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

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

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

nextPageToken string

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

JSON প্রতিনিধিত্ব
{
  "cachedContents": [
    {
      object (CachedContent)
    }
  ],
  "nextPageToken": string
}

পদ্ধতি: cachedContents.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))

Node.js

// 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, "user"),
}

cache, err := client.Caches.Create(ctx, modelName, &genai.CreateCachedContentConfig{
	Contents:          contents,
	SystemInstruction: genai.NewContentFromText(
		"You are an expert analyzing transcripts.", "user",
	),
})
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

ক্যাশেড কনটেন্ট রিসোর্স আপডেট করে (কেবলমাত্র মেয়াদ শেষ হওয়া আপডেটযোগ্য)।

শেষবিন্দু

প্যাচ 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),
)

Node.js

// 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, "user"),
}

cache, err := client.Caches.Create(ctx, modelName, &genai.CreateCachedContentConfig{
	Contents:          contents,
	SystemInstruction: genai.NewContentFromText(
		"You are an expert analyzing transcripts.", "user",
	),
})
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

ক্যাশেড কনটেন্ট রিসোর্স মুছে দেয়।

শেষবিন্দু

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)

Node.js

// 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, "user"),
}

cache, err := client.Caches.Create(ctx, modelName, &genai.CreateCachedContentConfig{
	Contents:          contents,
	SystemInstruction: genai.NewContentFromText(
		"You are an expert analyzing transcripts.", "user",
	),
})
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 সম্পদ: ক্যাশেড বিষয়বস্তু

সম্পদ: ক্যাশেড সামগ্রী

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

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

ক্ষেত্র
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

ঐচ্ছিক। অপরিবর্তনীয়। ক্যাশ করা বিষয়বস্তুর ব্যবহারকারীর তৈরি অর্থপূর্ণ প্রদর্শন নাম। সর্বোচ্চ 128টি ইউনিকোড অক্ষর।

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 তে গৃহীত প্রকারগুলির একটি ধারণ করতে পারে।

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

ক্ষেত্র
boolean thought

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

thoughtSignature string ( bytes format)

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

একটি base64-এনকোডেড স্ট্রিং।

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 কার্যকর করার ফলাফল।

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

ঐচ্ছিক। ভিডিও মেটাডেটা। ভিডিও ডেটা ইনলাইনডেটা বা ফাইলডেটাতে উপস্থাপিত হলেই মেটাডেটা নির্দিষ্ট করা উচিত।

JSON প্রতিনিধিত্ব
{
  "thought": boolean,
  "thoughtSignature": string,

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

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

ব্লব

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

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

ক্ষেত্র
mimeType string

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

data string ( bytes format)

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

একটি base64-এনকোডেড স্ট্রিং।

JSON প্রতিনিধিত্ব
{
  "mimeType": string,
  "data": string
}

ফাংশনকল

একটি ভবিষ্যদ্বাণীকৃত FunctionCall মডেল থেকে ফিরে এসেছে যেটিতে একটি স্ট্রিং রয়েছে যা আর্গুমেন্ট এবং তাদের মান সহ FunctionDeclaration.name প্রতিনিধিত্ব করে।

ক্ষেত্র
id string

ঐচ্ছিক। ফাংশন কলের অনন্য আইডি। জনবহুল হলে, ক্লায়েন্ট functionCall চালাতে কল করবে এবং ম্যাচিং id সহ প্রতিক্রিয়া ফেরত দেবে।

name string

প্রয়োজন। কল করার ফাংশনের নাম। az, AZ, 0-9 হতে হবে অথবা আন্ডারস্কোর এবং ড্যাশ থাকতে হবে, যার সর্বোচ্চ দৈর্ঘ্য 63।

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 হতে হবে অথবা আন্ডারস্কোর এবং ড্যাশ থাকতে হবে, যার সর্বোচ্চ দৈর্ঘ্য 63।

response object ( Struct format)

প্রয়োজন। JSON অবজেক্ট ফরম্যাটে ফাংশন প্রতিক্রিয়া।

boolean willContinue

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

scheduling enum ( Scheduling )

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

JSON প্রতিনিধিত্ব
{
  "id": string,
  "name": string,
  "response": {
    object
  },
  "willContinue": boolean,
  "scheduling": enum (Scheduling)
}

সময়সূচী

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

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

ফাইল ডেটা

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

ক্ষেত্র
mimeType string

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

fileUri string

প্রয়োজন। ইউআরআই।

JSON প্রতিনিধিত্ব
{
  "mimeType": string,
  "fileUri": string
}

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

কোড যে মডেলের দ্বারা উত্পন্ন হয় যা কার্যকর করা হয় এবং ফলাফলটি মডেলে ফিরে আসে।

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

ক্ষেত্র
language enum ( Language )

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

code string

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

JSON প্রতিনিধিত্ব
{
  "language": enum (Language),
  "code": string
}

ভাষা

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

Enums
LANGUAGE_UNSPECIFIED অনির্দিষ্ট ভাষা। এই মান ব্যবহার করা উচিত নয়.
PYTHON পাইথন >= 3.10, নম্পি এবং সিম্পি উপলব্ধ।

কোড এক্সিকিউশন ফলাফল

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

শুধুমাত্র CodeExecution ব্যবহার করার সময় উৎপন্ন হয় এবং সর্বদা ExecutableCode ধারণকারী একটি part অনুসরণ করে।

ক্ষেত্র
outcome enum ( Outcome )

প্রয়োজন। কোড নির্বাহের ফলাফল।

output string

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

JSON প্রতিনিধিত্ব
{
  "outcome": enum (Outcome),
  "output": string
}

ফলাফল

কোড সম্পাদনের সম্ভাব্য ফলাফলের গণনা।

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

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

মেটাডেটা ইনপুট ভিডিও বিষয়বস্তু বর্ণনা করে।

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

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

নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা সহ সেকেন্ডে একটি সময়কাল, ' s ' দিয়ে শেষ হয়৷ উদাহরণ: "3.5s"

endOffset string ( Duration format)

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

নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা সহ সেকেন্ডে একটি সময়কাল, ' s ' দিয়ে শেষ হয়৷ উদাহরণ: "3.5s"

fps number

ঐচ্ছিক। ভিডিওটির ফ্রেম রেট মডেলে পাঠানো হয়েছে। নির্দিষ্ট না থাকলে, ডিফল্ট মান 1.0 হবে। fps পরিসর হল (0.0, 24.0]।

JSON প্রতিনিধিত্ব
{
  "startOffset": string,
  "endOffset": string,
  "fps": number
}

টুল

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

একটি Tool হল কোডের একটি অংশ যা মডেলের জ্ঞান এবং সুযোগের বাইরে একটি ক্রিয়া সম্পাদন করতে বা ক্রিয়াগুলির সেট করার জন্য সিস্টেমটিকে বহিরাগত সিস্টেমের সাথে যোগাযোগ করতে সক্ষম করে।

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

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

মডেল বা সিস্টেম ফাংশন চালায় না। পরিবর্তে সংজ্ঞায়িত ফাংশন কার্যকর করার জন্য ক্লায়েন্ট পক্ষের আর্গুমেন্ট সহ একটি FunctionCall হিসাবে ফেরত দেওয়া হতে পারে। মডেলটি প্রতিক্রিয়াতে FunctionCall পপুলেট করে এই ফাংশনগুলির একটি উপসেট কল করার সিদ্ধান্ত নিতে পারে। পরবর্তী কথোপকথনের পালাটিতে পরবর্তী মডেল টার্নের জন্য Content.role "ফাংশন" প্রজন্মের প্রসঙ্গ সহ একটি FunctionResponse থাকতে পারে।

googleSearchRetrieval object ( GoogleSearchRetrieval )

ঐচ্ছিক। পুনরুদ্ধার সরঞ্জাম যা Google অনুসন্ধান দ্বারা চালিত হয়।

codeExecution object ( CodeExecution )

ঐচ্ছিক। প্রজন্মের অংশ হিসাবে কোড চালানোর জন্য মডেলকে সক্ষম করে।

urlContext object ( UrlContext )

ঐচ্ছিক। URL প্রসঙ্গ পুনরুদ্ধার সমর্থন করার জন্য টুল।

JSON প্রতিনিধিত্ব
{
  "functionDeclarations": [
    {
      object (FunctionDeclaration)
    }
  ],
  "googleSearchRetrieval": {
    object (GoogleSearchRetrieval)
  },
  "codeExecution": {
    object (CodeExecution)
  },
  "googleSearch": {
    object (GoogleSearch)
  },
  "urlContext": {
    object (UrlContext)
  }
}

ফাংশন ঘোষণা

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

ক্ষেত্র
name string

প্রয়োজন। ফাংশনের নাম। az, AZ, 0-9 হতে হবে অথবা আন্ডারস্কোর এবং ড্যাশ থাকতে হবে, যার সর্বোচ্চ দৈর্ঘ্য 63।

description string

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

behavior enum ( Behavior )

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

parameters object ( Schema )

ঐচ্ছিক। এই ফাংশনের পরামিতি বর্ণনা করে। Open API 3.03 প্যারামিটার অবজেক্ট স্ট্রিং কী প্রতিফলিত করে: প্যারামিটারের নাম। প্যারামিটারের নামগুলি কেস সংবেদনশীল৷ স্কিমা মান: প্যারামিটারের জন্য ব্যবহৃত টাইপ সংজ্ঞায়িত করে।

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 স্কিমা বিন্যাসে এই ফাংশন থেকে আউটপুট বর্ণনা করে। Open API 3.03 রেসপন্স অবজেক্ট প্রতিফলিত করে। স্কিমা ফাংশনের প্রতিক্রিয়া মানের জন্য ব্যবহৃত প্রকারকে সংজ্ঞায়িত করে।

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

ঐচ্ছিক। তথ্য বিন্যাস. এটি শুধুমাত্র আদিম ডেটাটাইপের জন্য ব্যবহৃত হয়। সমর্থিত ফর্ম্যাট: NUMBER প্রকারের জন্য: ফ্লোট, INTEGEER প্রকারের জন্য দ্বিগুণ: int32, STRING প্রকারের জন্য int64: enum, তারিখ-সময়

title string

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

description string

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

nullable boolean

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

enum[] string

ঐচ্ছিক। Enum বিন্যাস সহ Type.STRING এর উপাদানের সম্ভাব্য মান। উদাহরণ স্বরূপ আমরা একটি Enum দিক নির্দেশ করতে পারি: {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 ))

ঐচ্ছিক। প্রকারের বৈশিষ্ট্য।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)

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

maxLength string ( int64 format)

ঐচ্ছিক। প্রকারের সর্বোচ্চ দৈর্ঘ্য।STRING

pattern string

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

example value ( Value format)

ঐচ্ছিক। বস্তুর উদাহরণ। বস্তুটি মূল হলেই কেবল পপুলেট হবে।

anyOf[] object ( Schema )

ঐচ্ছিক। তালিকার যেকোনও (এক বা একাধিক) সাবস্কেমার বিরুদ্ধে মানটি যাচাই করা উচিত।

propertyOrdering[] string

ঐচ্ছিক। সম্পত্তির ক্রম। ওপেন এপিআই স্পেকের একটি আদর্শ ক্ষেত্র নয়। প্রতিক্রিয়ায় বৈশিষ্ট্যের ক্রম নির্ধারণ করতে ব্যবহৃত হয়।

default value ( Value format)

ঐচ্ছিক। ক্ষেত্রের ডিফল্ট মান। JSON স্কিমা অনুসারে, এই ক্ষেত্রটি ডকুমেন্টেশন জেনারেটরের জন্য তৈরি এবং বৈধতাকে প্রভাবিত করে না। এইভাবে এটি এখানে অন্তর্ভুক্ত করা হয়েছে এবং উপেক্ষা করা হয়েছে যাতে বিকাশকারীরা যারা একটি default ক্ষেত্রের সাথে স্কিমা পাঠায় তারা অজানা-ক্ষেত্র ত্রুটি না পায়।

items object ( Schema )

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

minimum number

ঐচ্ছিক। Type.INTEGER এবং Type.NUMBER-এর সর্বনিম্ন মানের টাইপ পূর্ণসংখ্যা এবং 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 ডেটা প্রকারের তালিকা রয়েছে

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

আচরণ

ফাংশন আচরণ সংজ্ঞায়িত করে। BLOCKING ডিফল্ট।

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

GoogleSearch Retrieval

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

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

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

JSON প্রতিনিধিত্ব
{
  "dynamicRetrievalConfig": {
    object (DynamicRetrievalConfig)
  }
}

DynamicRetrievalConfig

গতিশীল পুনরুদ্ধার কাস্টমাইজ করার বিকল্পগুলি বর্ণনা করে।

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

গতিশীল পুনরুদ্ধারের জন্য ভবিষ্যদ্বাণীকারীর মোড ব্যবহার করা হবে।

dynamicThreshold number

গতিশীল পুনরুদ্ধারের জন্য থ্রেশহোল্ড ব্যবহার করা হবে। যদি সেট না করা হয়, একটি সিস্টেম ডিফল্ট মান ব্যবহার করা হয়।

JSON প্রতিনিধিত্ব
{
  "mode": enum (Mode),
  "dynamicThreshold": number
}

মোড

গতিশীল পুনরুদ্ধারের জন্য ভবিষ্যদ্বাণীকারীর মোড ব্যবহার করা হবে।

Enums
MODE_UNSPECIFIED সর্বদা পুনরুদ্ধার ট্রিগার.
MODE_DYNAMIC সিস্টেম যখন সিদ্ধান্ত নেয় তখনই পুনরুদ্ধার চালান এটি প্রয়োজনীয়।

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

এই ধরনের কোন ক্ষেত্র নেই.

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

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

গুগল সার্চ

গুগল সার্চ টুল টাইপ। মডেলে Google অনুসন্ধান সমর্থন করার টুল। গুগল দ্বারা চালিত.

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

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

JSON প্রতিনিধিত্ব
{
  "timeRangeFilter": {
    object (Interval)
  }
}

ব্যবধান

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

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

ক্ষেত্র
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
}

UrlContext

এই ধরনের কোন ক্ষেত্র নেই.

URL প্রসঙ্গ পুনরুদ্ধার সমর্থন করার জন্য টুল।

টুল কনফিগারেশন

অনুরোধে Tool ব্যবহার নির্দিষ্ট করার জন্য পরামিতি ধারণকারী টুল কনফিগারেশন।

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

ঐচ্ছিক। ফাংশন কলিং কনফিগারেশন।

JSON প্রতিনিধিত্ব
{
  "functionCallingConfig": {
    object (FunctionCallingConfig)
  }
}

FunctionCallingConfig

ফাংশন কলিং আচরণ নির্দিষ্ট করার জন্য কনফিগারেশন।

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

ঐচ্ছিক। যে মোডে ফাংশন কলিং চালানো উচিত তা নির্দিষ্ট করে। অনির্দিষ্ট থাকলে, ডিফল্ট মানটি অটোতে সেট করা হবে।

allowedFunctionNames[] string

ঐচ্ছিক। ফাংশনের নামের একটি সেট যা প্রদান করা হলে, মডেলটি যে ফাংশনগুলিকে কল করবে তা সীমিত করে।

এটি শুধুমাত্র তখনই সেট করা উচিত যখন মোড যেকোনো হয়। ফাংশনের নামগুলি [FunctionDeclaration.name] মেলে। মোড যেকোনও সেট করে, মডেল প্রদত্ত ফাংশন নামের সেট থেকে একটি ফাংশন কলের পূর্বাভাস দেবে।

JSON প্রতিনিধিত্ব
{
  "mode": enum (Mode),
  "allowedFunctionNames": [
    string
  ]
}

মোড

এক্সিকিউশন মোড সংজ্ঞায়িত করে ফাংশন কলিংয়ের জন্য নির্বাহ আচরণ সংজ্ঞায়িত করে।

Enums
MODE_UNSPECIFIED অনির্দিষ্ট ফাংশন কলিং মোড। এই মান ব্যবহার করা উচিত নয়.
AUTO ডিফল্ট মডেল আচরণ, মডেল একটি ফাংশন কল বা একটি প্রাকৃতিক ভাষা প্রতিক্রিয়া ভবিষ্যদ্বাণী করার সিদ্ধান্ত নেয়।
ANY মডেল সবসময় শুধুমাত্র একটি ফাংশন কল ভবিষ্যদ্বাণী করতে সীমাবদ্ধ। যদি "allowedFunctionNames" সেট করা থাকে, তাহলে ভবিষ্যদ্বাণীকৃত ফাংশন কলটি "allowedFunctionNames" এর যেকোনো একটিতে সীমাবদ্ধ থাকবে, অন্যথায় পূর্বাভাসিত ফাংশন কলটি প্রদত্ত "ফাংশন ঘোষণা" এর যেকোনো একটি হবে।
NONE মডেল কোনো ফাংশন কল ভবিষ্যদ্বাণী করবে না. মডেল আচরণ কোন ফাংশন ঘোষণা পাস না যখন একই.
VALIDATED মডেল হয় একটি ফাংশন কল বা একটি প্রাকৃতিক ভাষা প্রতিক্রিয়া ভবিষ্যদ্বাণী করার সিদ্ধান্ত নেয়, তবে সীমাবদ্ধ ডিকোডিং সহ ফাংশন কলগুলিকে যাচাই করবে৷

মেটাডেটা ব্যবহার

ক্যাশে করা বিষয়বস্তুর ব্যবহারের উপর মেটাডেটা।

ক্ষেত্র
totalTokenCount integer

ক্যাশ করা সামগ্রী ব্যবহার করে মোট টোকেনের সংখ্যা৷

JSON প্রতিনিধিত্ব
{
  "totalTokenCount": integer
}
,

কনটেক্সট ক্যাশিং আপনাকে প্রাক-কম্পিউটেড ইনপুট টোকেনগুলি সংরক্ষণ এবং পুনঃব্যবহারের অনুমতি দেয় যা আপনি বারবার ব্যবহার করতে চান, উদাহরণস্বরূপ একই মিডিয়া ফাইল সম্পর্কে বিভিন্ন প্রশ্ন জিজ্ঞাসা করার সময়। এটি ব্যবহারের উপর নির্ভর করে খরচ এবং গতি সঞ্চয় করতে পারে। বিস্তারিত ভূমিকার জন্য, প্রসঙ্গ ক্যাশিং গাইড দেখুন।

পদ্ধতি: cachedContents.create

ক্যাশেড কনটেন্ট রিসোর্স তৈরি করে।

শেষবিন্দু

পোস্ট 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

ঐচ্ছিক। অপরিবর্তনীয়। ক্যাশ করা বিষয়বস্তুর ব্যবহারকারীর তৈরি অর্থপূর্ণ প্রদর্শন নাম। সর্বোচ্চ 128টি ইউনিকোড অক্ষর।

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)

Node.js

// 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, "user"),
}
cache, err := client.Caches.Create(ctx, modelName, &genai.CreateCachedContentConfig{
	Contents: contents,
	SystemInstruction: genai.NewContentFromText(
		"You are an expert analyzing transcripts.", "user",
	),
})
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)

Node.js

// 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, "user"),
}
cache, err := client.Caches.Create(ctx, modelName, &genai.CreateCachedContentConfig{
	Contents:          contents,
	SystemInstruction: genai.NewContentFromText(
		"You are an expert analyzing transcripts.", "user",
	),
})
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)

Node.js

// 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, "user"),
}, 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, "user"),
})
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

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

pageToken string

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

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

শরীরের অনুরোধ

অনুরোধের বডি খালি হতে হবে।

প্রতিক্রিয়া শরীর

ক্যাশেড বিষয়বস্তু তালিকা সহ প্রতিক্রিয়া.

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

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

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

nextPageToken string

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

JSON প্রতিনিধিত্ব
{
  "cachedContents": [
    {
      object (CachedContent)
    }
  ],
  "nextPageToken": string
}

পদ্ধতি: cachedContents.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))

Node.js

// 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, "user"),
}

cache, err := client.Caches.Create(ctx, modelName, &genai.CreateCachedContentConfig{
	Contents:          contents,
	SystemInstruction: genai.NewContentFromText(
		"You are an expert analyzing transcripts.", "user",
	),
})
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

ক্যাশেড কনটেন্ট রিসোর্স আপডেট করে (কেবলমাত্র মেয়াদ শেষ হওয়া আপডেটযোগ্য)।

শেষবিন্দু

প্যাচ 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),
)

Node.js

// 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, "user"),
}

cache, err := client.Caches.Create(ctx, modelName, &genai.CreateCachedContentConfig{
	Contents:          contents,
	SystemInstruction: genai.NewContentFromText(
		"You are an expert analyzing transcripts.", "user",
	),
})
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

ক্যাশেড কনটেন্ট রিসোর্স মুছে দেয়।

শেষবিন্দু

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)

Node.js

// 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, "user"),
}

cache, err := client.Caches.Create(ctx, modelName, &genai.CreateCachedContentConfig{
	Contents:          contents,
	SystemInstruction: genai.NewContentFromText(
		"You are an expert analyzing transcripts.", "user",
	),
})
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 সম্পদ: ক্যাশেড বিষয়বস্তু

সম্পদ: ক্যাশেড সামগ্রী

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

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

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

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

tools[] object ( Tool )

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

createTime string ( Timestamp format)

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

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

updateTime string ( Timestamp format)

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

আরএফসি 3339 ব্যবহার করে, যেখানে উত্পন্ন আউটপুট সর্বদা জেড-সাধারণীকরণ করা হবে এবং 0, 3, 6 বা 9 ভগ্নাংশের সংখ্যা ব্যবহার করে। "জেড" ব্যতীত অন্যান্য অফসেটগুলিও গৃহীত হয়। উদাহরণ: "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)

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

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

ttl string ( Duration format)

শুধুমাত্র ইনপুট। এই সংস্থানটির জন্য নতুন টিটিএল, কেবল ইনপুট।

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

name string

শুধুমাত্র আউটপুট। সনাক্তকারী ক্যাশেড সামগ্রী উল্লেখ করে রিসোর্সের নাম। ফর্ম্যাট: cachedContents/{id}

displayName string

ঐচ্ছিক। অপরিবর্তনীয় ক্যাশেড সামগ্রীর ব্যবহারকারী-উত্পাদিত অর্থপূর্ণ প্রদর্শন নাম। সর্বাধিক 128 ইউনিকোড অক্ষর।

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 Content প্রযোজককে মনোনীত করে এমন একটি role ক্ষেত্র এবং বার্তার টার্নের সামগ্রী রয়েছে এমন মাল্টি-পার্ট ডেটাযুক্ত একটি parts ক্ষেত্র অন্তর্ভুক্ত রয়েছে।

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

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

role string

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

মাল্টি-টার্ন কথোপকথনের জন্য সেট করতে দরকারী, অন্যথায় ফাঁকা বা আনসেট ছেড়ে দেওয়া যেতে পারে।

JSON প্রতিনিধিত্ব
{
  "parts": [
    {
      object (Part)
    }
  ],
  "role": string
}

অংশ

মিডিয়াযুক্ত একটি ডেটাটাইপ যা মাল্টি-পার্ট Content বার্তার অংশ।

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

inlineData ক্ষেত্রটি কাঁচা বাইটে ভরাট থাকলে একটি Part অবশ্যই মিডিয়ার ধরণ এবং সাব টাইপ সনাক্তকারী একটি স্থির আইনা মাইম টাইপ থাকতে হবে।

ক্ষেত্র
thought boolean

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

thoughtSignature string ( bytes format)

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

একটি base64-এনকোডেড স্ট্রিং।

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

ইনলাইন পাঠ্য।

inlineData object ( Blob )

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

functionCall object ( FunctionCall )

একটি পূর্বাভাসযুক্ত FunctionCall মডেল থেকে ফিরে এসেছিল যাতে FunctionDeclaration.name উপস্থাপন করে এমন একটি স্ট্রিং থাকে nome আর্গুমেন্ট এবং তাদের মানগুলির সাথে নাম।

functionResponse object ( FunctionResponse )

FunctionCall ফলাফল আউটপুট যা FunctionDeclaration.name এবং ফাংশন থেকে কোনও আউটপুটযুক্ত একটি কাঠামোগত জেএসএন অবজেক্টকে উপস্থাপন করে এমন একটি স্ট্রিং রয়েছে যা মডেলটির প্রসঙ্গ হিসাবে ব্যবহৃত হয়।

fileData object ( FileData )

ইউআরআই ভিত্তিক ডেটা।

executableCode object ( ExecutableCode )

মডেল দ্বারা উত্পাদিত কোড যা কার্যকর করা বোঝানো হয়।

codeExecutionResult object ( CodeExecutionResult )

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

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

ঐচ্ছিক। ভিডিও মেটাডেটা। ইনলাইনাইনটা বা ফাইলডেটাতে ভিডিও ডেটা উপস্থাপন করার সময় মেটাডেটা কেবল নির্দিষ্ট করা উচিত।

JSON প্রতিনিধিত্ব
{
  "thought": boolean,
  "thoughtSignature": string,

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

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

ব্লব

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

পাঠ্য কাঁচা বাইট হিসাবে প্রেরণ করা উচিত নয়, 'পাঠ্য' ক্ষেত্রটি ব্যবহার করুন।

ক্ষেত্র
mimeType string

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

data string ( bytes format)

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

একটি base64-এনকোডেড স্ট্রিং।

JSON প্রতিনিধিত্ব
{
  "mimeType": string,
  "data": string
}

ফাংশনকল

একটি পূর্বাভাসযুক্ত FunctionCall মডেল থেকে ফিরে এসেছিল যাতে FunctionDeclaration.name উপস্থাপন করে এমন একটি স্ট্রিং থাকে nome আর্গুমেন্ট এবং তাদের মানগুলির সাথে নাম।

ক্ষেত্র
id string

ঐচ্ছিক। ফাংশন কল এর অনন্য আইডি। যদি পপুলেটেড হয় তবে ক্লায়েন্টটি functionCall কার্যকর করতে এবং ম্যাচিং id দিয়ে প্রতিক্রিয়াটি ফিরিয়ে দিতে।

name string

প্রয়োজন। কল করার জন্য ফাংশনের নাম। অবশ্যই এজেড, এজেড, 0-9 হতে হবে বা সর্বাধিক দৈর্ঘ্য 63 সহ আন্ডারস্কোর এবং ড্যাশ থাকতে পারে।

args object ( Struct format)

ঐচ্ছিক। JSON অবজেক্ট ফর্ম্যাটে ফাংশন পরামিতি এবং মান।

JSON প্রতিনিধিত্ব
{
  "id": string,
  "name": string,
  "args": {
    object
  }
}

ফাংশনালস্পোনস

FunctionCall থেকে ফলাফল আউটপুটটিতে FunctionDeclaration.name এবং ফাংশন থেকে কোনও আউটপুটযুক্ত কাঠামোগত জেএসএন অবজেক্টের প্রতিনিধিত্ব করে এমন একটি স্ট্রিং রয়েছে যা মডেলটির প্রসঙ্গ হিসাবে ব্যবহৃত হয়। এটিতে মডেল পূর্বাভাসের ভিত্তিতে তৈরি FunctionCall ফলাফল থাকা উচিত।

ক্ষেত্র
id string

ঐচ্ছিক। ফাংশনটির আইডি কল এই প্রতিক্রিয়াটির জন্য। সংশ্লিষ্ট ফাংশন কল id সাথে মেলে ক্লায়েন্ট দ্বারা জনবহুল।

name string

প্রয়োজন। কল করার জন্য ফাংশনের নাম। অবশ্যই এজেড, এজেড, 0-9 হতে হবে বা সর্বাধিক দৈর্ঘ্য 63 সহ আন্ডারস্কোর এবং ড্যাশ থাকতে পারে।

response object ( Struct format)

প্রয়োজন। JSON অবজেক্ট ফর্ম্যাটে ফাংশন প্রতিক্রিয়া।

willContinue boolean

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

scheduling enum ( Scheduling )

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

JSON প্রতিনিধিত্ব
{
  "id": string,
  "name": string,
  "response": {
    object
  },
  "willContinue": boolean,
  "scheduling": enum (Scheduling)
}

সময়সূচী

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

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

ফাইল ডেটা

ইউআরআই ভিত্তিক ডেটা।

ক্ষেত্র
mimeType string

ঐচ্ছিক। উত্স ডেটা আইএএনএ স্ট্যান্ডার্ড মাইম প্রকার।

fileUri string

প্রয়োজন। উরি।

JSON প্রতিনিধিত্ব
{
  "mimeType": string,
  "fileUri": string
}

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

মডেল দ্বারা উত্পাদিত কোড যা কার্যকর করা বোঝানো হয় এবং ফলাফলটি মডেলটিতে ফিরে আসে।

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

ক্ষেত্র
language enum ( Language )

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

code string

প্রয়োজন। কোড কার্যকর করা হবে।

JSON প্রতিনিধিত্ব
{
  "language": enum (Language),
  "code": string
}

ভাষা

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

Enums
LANGUAGE_UNSPECIFIED অনির্ধারিত ভাষা। এই মানটি ব্যবহার করা উচিত নয়।
PYTHON পাইথন> = 3.10, নুমপি এবং সিম্পি উপলব্ধ।

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

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

CodeExecution ব্যবহার করার সময় কেবল উত্পাদিত হয় এবং সর্বদা ExecutableCode একটি part অনুসরণ করে।

ক্ষেত্র
outcome enum ( Outcome )

প্রয়োজন। কোড এক্সিকিউশনের ফলাফল।

output string

ঐচ্ছিক। কোড এক্সিকিউশন সফল, স্টেরার বা অন্য বিবরণ অন্যথায় যখন স্টাডআউট থাকে।

JSON প্রতিনিধিত্ব
{
  "outcome": enum (Outcome),
  "output": string
}

ফলাফল

কোড এক্সিকিউশনের সম্ভাব্য ফলাফলগুলির গণনা।

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

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

মেটাডেটা ইনপুট ভিডিও সামগ্রী বর্ণনা করে।

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

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

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

endOffset string ( Duration format)

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

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

fps number

ঐচ্ছিক। মডেলটিতে প্রেরণ করা ভিডিওর ফ্রেম রেট। যদি নির্দিষ্ট না করা হয় তবে ডিফল্ট মানটি 1.0 হবে। এফপিএস পরিসীমা (0.0, 24.0]।

JSON প্রতিনিধিত্ব
{
  "startOffset": string,
  "endOffset": string,
  "fps": number
}

টুল

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

একটি Tool হ'ল কোডের একটি অংশ যা সিস্টেমকে জ্ঞান এবং মডেলের সুযোগের বাইরে কোনও ক্রিয়া বা ক্রিয়া সেট করতে বাহ্যিক সিস্টেমগুলির সাথে ইন্টারঅ্যাক্ট করতে সক্ষম করে।

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

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

মডেল বা সিস্টেম ফাংশনটি কার্যকর করে না। পরিবর্তে সংজ্ঞায়িত ফাংশনটি কার্যকর করার জন্য ক্লায়েন্টের পক্ষে যুক্তি সহ একটি FunctionCall হিসাবে ফিরে আসতে পারে। মডেলটি প্রতিক্রিয়াতে FunctionCall পপুলেট করে এই ফাংশনগুলির একটি সাবসেট কল করার সিদ্ধান্ত নিতে পারে। পরবর্তী কথোপকথনের টার্নটিতে Content.role সাথে একটি FunctionResponse থাকতে পারে ole পরবর্তী মডেল টার্নের জন্য "ফাংশন" প্রজন্মের প্রসঙ্গ।

googleSearchRetrieval object ( GoogleSearchRetrieval )

ঐচ্ছিক। পুনরুদ্ধার সরঞ্জাম যা গুগল অনুসন্ধান দ্বারা চালিত।

codeExecution object ( CodeExecution )

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

urlContext object ( UrlContext )

ঐচ্ছিক। ইউআরএল প্রসঙ্গ পুনরুদ্ধার সমর্থন করার সরঞ্জাম।

JSON প্রতিনিধিত্ব
{
  "functionDeclarations": [
    {
      object (FunctionDeclaration)
    }
  ],
  "googleSearchRetrieval": {
    object (GoogleSearchRetrieval)
  },
  "codeExecution": {
    object (CodeExecution)
  },
  "googleSearch": {
    object (GoogleSearch)
  },
  "urlContext": {
    object (UrlContext)
  }
}

ফাংশন ঘোষণা

ওপেনএপিআই 3.03 স্পেসিফিকেশন দ্বারা সংজ্ঞায়িত হিসাবে একটি ফাংশন ঘোষণার কাঠামোগত উপস্থাপনা। এই ঘোষণায় অন্তর্ভুক্ত হ'ল ফাংশন নাম এবং পরামিতি। এই ফাংশনডেক্লারেশন হ'ল কোডের একটি ব্লকের প্রতিনিধিত্ব যা মডেল দ্বারা Tool হিসাবে ব্যবহার করা যেতে পারে এবং ক্লায়েন্ট দ্বারা সম্পাদিত হতে পারে।

ক্ষেত্র
name string

প্রয়োজন। ফাংশনের নাম। অবশ্যই এজেড, এজেড, 0-9 হতে হবে বা সর্বাধিক দৈর্ঘ্য 63 সহ আন্ডারস্কোর এবং ড্যাশ থাকতে পারে।

description string

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

behavior enum ( Behavior )

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

parameters object ( Schema )

ঐচ্ছিক। এই ফাংশনের পরামিতিগুলি বর্ণনা করে। ওপেন এপিআই 3.03 প্যারামিটার অবজেক্ট স্ট্রিং কী প্রতিফলিত করে: প্যারামিটারের নাম। প্যারামিটারের নামগুলি কেস সংবেদনশীল। স্কিমা মান: স্কিমা প্যারামিটারের জন্য ব্যবহৃত প্রকারটি সংজ্ঞায়িত করে।

parametersJsonSchema value ( Value format)

ঐচ্ছিক। জেএসএন স্কিমা ফর্ম্যাটে ফাংশনটির পরামিতিগুলি বর্ণনা করে। স্কিমা অবশ্যই এমন কোনও অবজেক্টের বর্ণনা দিতে হবে যেখানে বৈশিষ্ট্যগুলি ফাংশনের পরামিতি। যেমন:

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

এই ক্ষেত্রটি parameters সাথে পারস্পরিক একচেটিয়া।

response object ( Schema )

ঐচ্ছিক। জেএসএন স্কিমা ফর্ম্যাটে এই ফাংশন থেকে আউটপুট বর্ণনা করে। ওপেন এপিআই 3.03 প্রতিক্রিয়া অবজেক্টটি প্রতিফলিত করে। স্কিমা ফাংশনের প্রতিক্রিয়া মানের জন্য ব্যবহৃত প্রকারটি সংজ্ঞায়িত করে।

responseJsonSchema value ( Value format)

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

এই ক্ষেত্রটি response সাথে পারস্পরিক একচেটিয়া।

JSON প্রতিনিধিত্ব
{
  "name": string,
  "description": string,
  "behavior": enum (Behavior),
  "parameters": {
    object (Schema)
  },
  "parametersJsonSchema": value,
  "response": {
    object (Schema)
  },
  "responseJsonSchema": value
}

স্কিমা

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

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

প্রয়োজন। ডেটা টাইপ।

format string

ঐচ্ছিক। ডেটা ফর্ম্যাট। এটি কেবল আদিম ডেটাটাইপগুলির জন্য ব্যবহৃত হয়। সমর্থিত ফর্ম্যাটগুলি: সংখ্যার প্রকারের জন্য: ভাসমান, পূর্ণসংখ্যার জন্য ডাবল: আইএনটি 32, স্ট্রিং প্রকারের জন্য INT64: এনাম, তারিখ-সময়

title string

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

description string

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

nullable boolean

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

enum[] string

ঐচ্ছিক। এনাম ফর্ম্যাট সহ প্রকারের উপাদানগুলির সম্ভাব্য মানগুলি। উদাহরণস্বরূপ আমরা একটি এনাম দিকনির্দেশ হিসাবে সংজ্ঞায়িত করতে পারি: {প্রকার: স্ট্রিং, ফর্ম্যাট: এনাম, এনাম: ["পূর্ব", উত্তর "," দক্ষিণ "," পশ্চিম "]}

maxItems string ( int64 format)

ঐচ্ছিক। টাইপ.আরাইয়ের জন্য উপাদানগুলির সর্বাধিক সংখ্যা।

minItems string ( int64 format)

ঐচ্ছিক। টাইপ.আরাইয়ের জন্য উপাদানগুলির সর্বনিম্ন সংখ্যা।

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

ঐচ্ছিক। টাইপ.অবজেক্টের বৈশিষ্ট্য।

"key": value জোড়া। উদাহরণ: { "name": "wrench", "mass": "1.3kg", "count": "3" }

required[] string

ঐচ্ছিক। টাইপ.অবজেক্টের প্রয়োজনীয় বৈশিষ্ট্য।

minProperties string ( int64 format)

ঐচ্ছিক। টাইপ.অবজেক্টের জন্য সম্পত্তিগুলির সর্বনিম্ন সংখ্যা।

maxProperties string ( int64 format)

ঐচ্ছিক। টাইপ.অবজেক্টের জন্য বৈশিষ্ট্যগুলির সর্বাধিক সংখ্যা।

minLength string ( int64 format)

ঐচ্ছিক। টাইপ স্ট্রিং এর জন্য স্কিমা ক্ষেত্রগুলি টাইপের ন্যূনতম দৈর্ঘ্য.স্ট্রিং

maxLength string ( int64 format)

ঐচ্ছিক। টাইপ.স্ট্রিংয়ের সর্বাধিক দৈর্ঘ্য

pattern string

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

example value ( Value format)

ঐচ্ছিক। বস্তুর উদাহরণ। কেবল তখনই পপুলেট হবে যখন বস্তুটি মূল হয়।

anyOf[] object ( Schema )

ঐচ্ছিক। তালিকার সাবমেমার যে কোনও (এক বা একাধিক) এর বিরুদ্ধে মানটি বৈধ করা উচিত।

propertyOrdering[] string

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

default value ( Value format)

ঐচ্ছিক। ক্ষেত্রের ডিফল্ট মান। জেএসএন স্কিমা অনুযায়ী, এই ক্ষেত্রটি ডকুমেন্টেশন জেনারেটরগুলির জন্য তৈরি এবং বৈধতা প্রভাবিত করে না। সুতরাং এটি এখানে অন্তর্ভুক্ত রয়েছে এবং উপেক্ষা করা হয়েছে যাতে বিকাশকারীরা যারা default ক্ষেত্রের সাথে স্কিমা প্রেরণ করেন তারা অজানা-ক্ষেত্রের ত্রুটিগুলি পান না।

items object ( Schema )

ঐচ্ছিক। টাইপ.আরাইয়ের উপাদানগুলির স্কিমা।

minimum number

ঐচ্ছিক। টাইপ পূর্ণসংখ্যার জন্য স্কিমা ক্ষেত্রগুলি এবং প্রকারের ন্যূনতম মান এবং প্রকারের ন্যূনতম মান।

maximum 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- টাইপস দ্বারা সংজ্ঞায়িত ওপেনাপি ডেটা প্রকারের তালিকা রয়েছে

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

আচরণ

ফাংশন আচরণ সংজ্ঞা দেয়। BLOCKING ডিফল্ট।

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

গুগলস অনুসন্ধানট্রেট্রিভাল

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

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

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

JSON প্রতিনিধিত্ব
{
  "dynamicRetrievalConfig": {
    object (DynamicRetrievalConfig)
  }
}

ডায়নামিক্রেট্রিভালকনফিগ

গতিশীল পুনরুদ্ধার কাস্টমাইজ করার বিকল্পগুলি বর্ণনা করে।

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

গতিশীল পুনরুদ্ধারে ব্যবহার করার জন্য ভবিষ্যদ্বাণীকারীর মোড।

dynamicThreshold number

গতিশীল পুনরুদ্ধারে ব্যবহৃত প্রান্তিকতা। যদি সেট না করা হয় তবে একটি সিস্টেম ডিফল্ট মান ব্যবহৃত হয়।

JSON প্রতিনিধিত্ব
{
  "mode": enum (Mode),
  "dynamicThreshold": number
}

মোড

গতিশীল পুনরুদ্ধারে ব্যবহার করার জন্য ভবিষ্যদ্বাণীকারীর মোড।

Enums
MODE_UNSPECIFIED সর্বদা পুনরুদ্ধার ট্রিগার।
MODE_DYNAMIC সিস্টেমটি যখন সিদ্ধান্ত নেয় তখনই পুনরুদ্ধার চালান।

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

এই ধরনের কোন ক্ষেত্র নেই.

সরঞ্জাম যা মডেল দ্বারা উত্পাদিত কোড কার্যকর করে এবং স্বয়ংক্রিয়ভাবে ফলাফলটি মডেলটিতে ফিরিয়ে দেয়।

ExecutableCode এবং CodeExecutionResult দেখুন যা কেবল এই সরঞ্জামটি ব্যবহার করার সময় উত্পন্ন হয়।

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

গুগলস অনুসন্ধান সরঞ্জাম প্রকার। মডেলটিতে গুগল অনুসন্ধান সমর্থন করার সরঞ্জাম। গুগল দ্বারা চালিত.

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

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

JSON প্রতিনিধিত্ব
{
  "timeRangeFilter": {
    object (Interval)
  }
}

ব্যবধান

টাইমস্ট্যাম্প স্টার্ট (অন্তর্ভুক্ত) এবং একটি টাইমস্ট্যাম্প প্রান্ত (একচেটিয়া) হিসাবে এনকোডযুক্ত একটি সময়ের ব্যবধান উপস্থাপন করে।

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

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

ঐচ্ছিক। অন্তর অন্তর্ভুক্ত।

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

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

endTime string ( Timestamp format)

ঐচ্ছিক। ব্যবধানের একচেটিয়া শেষ।

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

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

JSON প্রতিনিধিত্ব
{
  "startTime": string,
  "endTime": string
}

Urlcontext

এই ধরনের কোন ক্ষেত্র নেই.

ইউআরএল প্রসঙ্গ পুনরুদ্ধার সমর্থন করার সরঞ্জাম।

টুল কনফিগারেশন

অনুরোধে Tool ব্যবহার নির্দিষ্ট করার জন্য প্যারামিটারযুক্ত সরঞ্জাম কনফিগারেশন।

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

ঐচ্ছিক। ফাংশন কলিং কনফিগারেশন।

JSON প্রতিনিধিত্ব
{
  "functionCallingConfig": {
    object (FunctionCallingConfig)
  }
}

FunctionCallingConfig

ফাংশন কলিং আচরণ নির্দিষ্ট করার জন্য কনফিগারেশন।

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

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

allowedFunctionNames[] string

ঐচ্ছিক। ফাংশন নামগুলির একটি সেট যা সরবরাহ করা হলে মডেলটি কল করবে এমন ফাংশনগুলিকে সীমাবদ্ধ করে।

এটি কেবল তখনই সেট করা উচিত যখন মোডটি থাকে। ফাংশনের নামগুলি মেলে [ফাংশনডেক্লারেশন.নাম]। মোড যে কোনওটিতে সেট করে, মডেল প্রদত্ত ফাংশন নামগুলির সেট থেকে একটি ফাংশন কলের পূর্বাভাস দেবে।

JSON প্রতিনিধিত্ব
{
  "mode": enum (Mode),
  "allowedFunctionNames": [
    string
  ]
}

মোড

এক্সিকিউশন মোডটি সংজ্ঞায়িত করে ফাংশন কলিংয়ের জন্য এক্সিকিউশন আচরণকে সংজ্ঞায়িত করে।

Enums
MODE_UNSPECIFIED অনির্ধারিত ফাংশন কলিং মোড। এই মানটি ব্যবহার করা উচিত নয়।
AUTO ডিফল্ট মডেল আচরণ, মডেল কোনও ফাংশন কল বা প্রাকৃতিক ভাষার প্রতিক্রিয়া পূর্বাভাস দেওয়ার সিদ্ধান্ত নেয়।
ANY মডেল সর্বদা কেবল একটি ফাংশন কল পূর্বাভাস দিতে বাধ্য। যদি "অনুমোদিত ফাংশননামস" সেট করা থাকে তবে পূর্বাভাসিত ফাংশন কলটি "অনুমোদিত ফাংশন নামগুলি" এর মধ্যে সীমাবদ্ধ থাকবে, অন্যথায় পূর্বাভাসিত ফাংশন কলটি সরবরাহিত "ফাংশনডিক্লারেশনস" এর কোনও একটি হবে।
NONE মডেল কোনও ফাংশন কল পূর্বাভাস দেবে না। কোনও ফাংশন ঘোষণা পাস না করার সময় মডেল আচরণটি একই।
VALIDATED মডেল কোনও ফাংশন কল বা প্রাকৃতিক ভাষার প্রতিক্রিয়ার পূর্বাভাস দেওয়ার সিদ্ধান্ত নিয়েছে, তবে সীমাবদ্ধ ডিকোডিংয়ের সাথে ফাংশন কলগুলি বৈধ করবে।

Usagemetadata

ক্যাশেড সামগ্রী ব্যবহারের উপর মেটাডেটা।

ক্ষেত্র
totalTokenCount integer

ক্যাশেড সামগ্রী যে মোট টোকেন গ্রহণ করে।

JSON প্রতিনিধিত্ব
{
  "totalTokenCount": integer
}