Caching

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

পদ্ধতি: ক্যাশেডকন্টেন্টস.ক্রিয়েট

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

শেষবিন্দু

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

অনুরোধের মূল অংশ

অনুরোধের বডিতে CachedContent এর একটি উদাহরণ রয়েছে।

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

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

tools[] object ( Tool )

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

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

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

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

ttl string ( Duration format)

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

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

displayName string

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

model string

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

systemInstruction object ( Content )

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

toolConfig object ( ToolConfig )

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

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

মৌলিক

পাইথন

from google import genai
from google.genai import types

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

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

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

নোড.জেএস

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

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

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

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

যাও

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

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

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

শেল

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

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

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

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

নাম থেকে

পাইথন

from google import genai
from google.genai import types

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

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

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

নোড.জেএস

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

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

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

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

যাও

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

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

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

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

চ্যাট থেকে

পাইথন

from google import genai
from google.genai import types

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

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

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

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

নোড.জেএস

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

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

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

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

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

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

যাও

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

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

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

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

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

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

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

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

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

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

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

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

পদ্ধতি: cachedContents.list

ক্যাশে করা সামগ্রীর তালিকা।

শেষবিন্দু

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

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

pageSize integer

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

pageToken string

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

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

অনুরোধের মূল অংশ

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

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

ক্যাশেড কন্টেন্ট তালিকা সহ প্রতিক্রিয়া।

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

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

ক্যাশে করা সামগ্রীর তালিকা।

nextPageToken string

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

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

পদ্ধতি: ক্যাশেডকন্টেন্টস.গেট

ক্যাশেডকন্টেন্ট রিসোর্স পড়ে।

শেষবিন্দু

https পান https: / /generativelanguage.googleapis.com /v1beta /{name=cachedContents /*}

পথের পরামিতি

name string

প্রয়োজনীয়। কন্টেন্ট ক্যাশে এন্ট্রি উল্লেখ করে রিসোর্সের নাম। ফর্ম্যাট: cachedContents/{id} এটি cachedContents/{cachedcontent} রূপ নেয়।

অনুরোধের মূল অংশ

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

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

পাইথন

from google import genai

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

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

নোড.জেএস

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

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

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

যাও

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

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

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

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

শেল

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

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

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

পদ্ধতি: ক্যাশেডকন্টেন্টস.প্যাচ

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

শেষবিন্দু

প্যাচ https: / /generativelanguage.googleapis.com /v1beta /{cachedContent.name=cachedContents /*}
PATCH https://generativelanguage.googleapis.com/v1beta/{cachedContent.name=cachedContents/*}

পথের পরামিতি

cachedContent.name string

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

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

updateMask string ( FieldMask format)

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

এটি সম্পূর্ণরূপে যোগ্য ক্ষেত্রগুলির নামের একটি কমা দ্বারা পৃথক তালিকা। উদাহরণ: "user.displayName,photo"

অনুরোধের মূল অংশ

অনুরোধের বডিতে CachedContent এর একটি উদাহরণ রয়েছে।

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

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

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

ttl string ( Duration format)

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

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

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

পাইথন

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

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

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

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

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

নোড.জেএস

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

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

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

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

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

যাও

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

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

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

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

শেল

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

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

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

পদ্ধতি: ক্যাশেডকন্টেন্টস.ডিলিট

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

শেষবিন্দু

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

পথের পরামিতি

name string

প্রয়োজনীয়। কন্টেন্ট ক্যাশে এন্ট্রি উল্লেখকারী রিসোর্সের নাম ফর্ম্যাট: cachedContents/{id} এটি cachedContents/{cachedcontent} ফর্মটি নেয়।

অনুরোধের মূল অংশ

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

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

পাইথন

from google import genai

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

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

নোড.জেএস

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

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

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

যাও

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

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

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

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

শেল

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

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

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

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

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

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

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

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

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

tools[] object ( Tool )

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

createTime string ( Timestamp format)

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

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

updateTime string ( Timestamp format)

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

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

usageMetadata object ( UsageMetadata )

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

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

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

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

ttl string ( Duration format)

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

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

name string

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

displayName string

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

model string

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

systemInstruction object ( Content )

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

toolConfig object ( ToolConfig )

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

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

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

কন্টেন্ট

একটি বার্তার বহু-অংশের বিষয়বস্তু ধারণকারী বেস স্ট্রাকচার্ড ডেটাটাইপ।

একটি Content Content প্রযোজককে চিহ্নিত করে একটি role ফিল্ড এবং একটি parts ফিল্ড থাকে যেখানে মাল্টি-পার্ট ডেটা থাকে যার মধ্যে মেসেজ টার্নের কন্টেন্ট থাকে।

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

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

role string

ঐচ্ছিক। কন্টেন্টের প্রযোজক। 'ব্যবহারকারী' অথবা 'মডেল' হতে হবে।

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

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

অংশ

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

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

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

ক্ষেত্র
thought boolean

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

thoughtSignature string ( bytes format)

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

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

partMetadata object ( Struct format)

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

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,
  "partMetadata": {
    object
  },

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

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

response object ( Struct format)

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

parts[] object ( FunctionResponsePart )

ঐচ্ছিক। ফাংশন রেসপন্স গঠনকারী ক্রমানুসারী Parts । অংশগুলির বিভিন্ন ধরণের IANA MIME থাকতে পারে।

boolean willContinue

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

scheduling enum ( Scheduling )

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

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

ফাংশনরেসপন্সপার্ট

একটি ডেটাটাইপ যাতে মিডিয়া থাকে যা একটি FunctionResponse বার্তার অংশ।

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

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

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

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

JSON উপস্থাপনা
{

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

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

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

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

ক্ষেত্র
mimeType string

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

data string ( bytes format)

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

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

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

সময়সূচী

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

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

ফাইলডেটা

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

ক্ষেত্র
mimeType string

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

fileUri string

প্রয়োজন। URI।

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

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

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

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

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

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

code string

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

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

ভাষা

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

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

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

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

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

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

প্রয়োজনীয়। কোড কার্যকর করার ফলাফল।

output string

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

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

ফলাফল

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

এনামস
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

ঐচ্ছিক। মডেলে পাঠানো ভিডিওর ফ্রেম রেট। যদি নির্দিষ্ট না করা থাকে, তাহলে ডিফল্ট মান হবে ১.০। fps রেঞ্জ হল (০.০, ২৪.০]।

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

টুল

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

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

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

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

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

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

googleSearchRetrieval object ( GoogleSearchRetrieval )

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

codeExecution object ( CodeExecution )

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

computerUse object ( ComputerUse )

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

urlContext object ( UrlContext )

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

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

ফাংশন ঘোষণা

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

ক্ষেত্র
name string

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

description string

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

behavior enum ( Behavior )

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

parameters object ( Schema )

ঐচ্ছিক। এই ফাংশনের প্যারামিটারগুলি বর্ণনা করে। ওপেন 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

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

title string

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

description string

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

nullable boolean

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

enum[] string

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

maxItems string ( int64 format)

ঐচ্ছিক। Type.ARRAY এর জন্য উপাদানের সর্বাধিক সংখ্যা।

minItems string ( int64 format)

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

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

ঐচ্ছিক। প্রকারের বৈশিষ্ট্য। বস্তু।

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

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

maxLength string ( int64 format)

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

pattern string

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

example value ( Value format)

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

anyOf[] object ( Schema )

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

propertyOrdering[] string

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

default value ( Value format)

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

items object ( Schema )

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

minimum number

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

maximum number

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

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

আদর্শ

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

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

আচরণ

ফাংশন আচরণ নির্ধারণ করে। ডিফল্টরূপে BLOCKING

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

গুগল সার্চ পুনরুদ্ধার

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

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

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

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

DynamicRetrievalConfig সম্পর্কে

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

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

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

dynamicThreshold number

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

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

মোড

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

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

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

এই ধরণের কোনও ক্ষেত্র নেই।

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

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

গুগল সার্চ

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

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

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

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

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

প্রয়োজনীয়। পরিচালিত পরিবেশ।

excludedPredefinedFunctions[] string

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

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

পরিবেশ

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

এনামস
ENVIRONMENT_UNSPECIFIED ডিফল্ট ব্রাউজার।
ENVIRONMENT_BROWSER একটি ওয়েব ব্রাউজারে কাজ করে।

ইউআরএল কনটেক্সট

এই ধরণের কোনও ক্ষেত্র নেই।

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

ফাইল অনুসন্ধান

ফাইলসার্চ টুল যা সিমান্টিক রিট্রিভাল কর্পোরা থেকে জ্ঞান পুনরুদ্ধার করে। ইমপোর্টফাইল এপিআই ব্যবহার করে ফাইলগুলি সিমান্টিক রিট্রিভাল কর্পোরায় আমদানি করা হয়।

ক্ষেত্র
retrievalResources[] object ( RetrievalResource )

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

retrievalConfig object ( RetrievalConfig )

ঐচ্ছিক। পুনরুদ্ধারের জন্য কনফিগারেশন।

JSON উপস্থাপনা
{
  "retrievalResources": [
    {
      object (RetrievalResource)
    }
  ],
  "retrievalConfig": {
    object (RetrievalConfig)
  }
}

পুনরুদ্ধার সম্পদ

যে শব্দার্থিক পুনরুদ্ধার সম্পদ থেকে পুনরুদ্ধার করা হবে।

ক্ষেত্র
ragStoreName string

প্রয়োজনীয়। যে সিমেন্টিক রিট্রিভাল রিসোর্স থেকে পুনরুদ্ধার করা হবে তার নাম। উদাহরণ: ragStores/my-rag-store-123

JSON উপস্থাপনা
{
  "ragStoreName": string
}

পুনরুদ্ধার কনফিগারেশন

শব্দার্থিক পুনরুদ্ধার কনফিগারেশন।

ক্ষেত্র
metadataFilter string

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

topK integer

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

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

টুলকনফিগ

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

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

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

JSON উপস্থাপনা
{
  "functionCallingConfig": {
    object (FunctionCallingConfig)
  }
}

ফাংশনকলিংকনফিগ

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

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

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

allowedFunctionNames[] string

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

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

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

মোড

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

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

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

ক্যাশেড কন্টেন্টের ব্যবহারের মেটাডেটা।

ক্ষেত্র
totalTokenCount integer

ক্যাশেড কন্টেন্ট ব্যবহার করে এমন মোট টোকেনের সংখ্যা।

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