Caching

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

পদ্ধতি: cachedContents.create

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

শেষবিন্দু

https://generativelanguage.googleapis.com/v1beta/cachedContents পোস্ট করুন

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

অনুরোধের মূল অংশে CachedContent একটি উদাহরণ রয়েছে।

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

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

tools[] object ( Tool )

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

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

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

RFC3339 UTC "জুলু" ফর্ম্যাটে একটি টাইমস্ট্যাম্প, ন্যানোসেকেন্ড রেজোলিউশন এবং নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা। উদাহরণ: "2014-10-02T15:01:23Z" এবং "2014-10-02T15:01:23.045123456Z"

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 )

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

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

মৌলিক

পাইথন

document = genai.upload_file(path=media / "a11.txt")
model_name = "gemini-1.5-flash-001"
cache = genai.caching.CachedContent.create(
    model=model_name,
    system_instruction="You are an expert analyzing transcripts.",
    contents=[document],
)
print(cache)

model = genai.GenerativeModel.from_cached_content(cache)
response = model.generate_content("Please summarize this transcript")
print(response.text)

Node.js

// Make sure to include these imports:
// import { GoogleAICacheManager, GoogleAIFileManager } from "@google/generative-ai/server";
// import { GoogleGenerativeAI } from "@google/generative-ai";
const cacheManager = new GoogleAICacheManager(process.env.API_KEY);
const fileManager = new GoogleAIFileManager(process.env.API_KEY);

const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
  mimeType: "text/plain",
});

const cacheResult = await cacheManager.create({
  model: "models/gemini-1.5-flash-001",
  contents: [
    {
      role: "user",
      parts: [
        {
          fileData: {
            fileUri: uploadResult.file.uri,
            mimeType: uploadResult.file.mimeType,
          },
        },
      ],
    },
  ],
});

console.log(cacheResult);

const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModelFromCachedContent(cacheResult);
const result = await model.generateContent(
  "Please summarize this transcript.",
);
console.log(result.response.text());

যাও

file, err := client.UploadFileFromPath(ctx,
	filepath.Join(testDataDir, "a11.txt"),
	&genai.UploadFileOptions{MIMEType: "text/plain"})
if err != nil {
	log.Fatal(err)
}
defer client.DeleteFile(ctx, file.Name)
fd := genai.FileData{URI: file.URI}

argcc := &genai.CachedContent{
	Model:             "gemini-1.5-flash-001",
	SystemInstruction: genai.NewUserContent(genai.Text("You are an expert analyzing transcripts.")),
	Contents:          []*genai.Content{genai.NewUserContent(fd)},
}
cc, err := client.CreateCachedContent(ctx, argcc)
if err != nil {
	log.Fatal(err)
}
defer client.DeleteCachedContent(ctx, cc.Name)

modelWithCache := client.GenerativeModelFromCachedContent(cc)
prompt := "Please summarize this transcript"
resp, err := modelWithCache.GenerateContent(ctx, genai.Text(prompt))
if err != nil {
	log.Fatal(err)
}

printResponse(resp)

শেল

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=$GOOGLE_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=$GOOGLE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
      "contents": [
        {
          "parts":[{
            "text": "Please summarize this transcript"
          }],
          "role": "user"
        },
      ],
      "cachedContent": "'$CACHE_NAME'"
    }'

নাম থেকে

পাইথন

document = genai.upload_file(path=media / "a11.txt")
model_name = "gemini-1.5-flash-001"
cache = genai.caching.CachedContent.create(
    model=model_name,
    system_instruction="You are an expert analyzing transcripts.",
    contents=[document],
)
cache_name = cache.name  # Save the name for later

# Later
cache = genai.caching.CachedContent.get(cache_name)
apollo_model = genai.GenerativeModel.from_cached_content(cache)
response = apollo_model.generate_content("Find a lighthearted moment from this transcript")
print(response.text)

Node.js

// Make sure to include these imports:
// import { GoogleAICacheManager, GoogleAIFileManager } from "@google/generative-ai/server";
// import { GoogleGenerativeAI } from "@google/generative-ai";
const cacheManager = new GoogleAICacheManager(process.env.API_KEY);
const fileManager = new GoogleAIFileManager(process.env.API_KEY);

const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
  mimeType: "text/plain",
});

const cacheResult = await cacheManager.create({
  model: "models/gemini-1.5-flash-001",
  contents: [
    {
      role: "user",
      parts: [
        {
          fileData: {
            fileUri: uploadResult.file.uri,
            mimeType: uploadResult.file.mimeType,
          },
        },
      ],
    },
  ],
});
const cacheName = cacheResult.name; // Save the name for later.

// Later
const getCacheResult = await cacheManager.get(cacheName);
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModelFromCachedContent(getCacheResult);
model.generateContent("Please summarize this transcript.");

যাও

file, err := client.UploadFileFromPath(ctx, filepath.Join(testDataDir, "a11.txt"), nil)
if err != nil {
	log.Fatal(err)
}
defer client.DeleteFile(ctx, file.Name)
fd := genai.FileData{URI: file.URI}

argcc := &genai.CachedContent{
	Model:             "gemini-1.5-flash-001",
	SystemInstruction: genai.NewUserContent(genai.Text("You are an expert analyzing transcripts.")),
	Contents:          []*genai.Content{genai.NewUserContent(fd)},
}
cc, err := client.CreateCachedContent(ctx, argcc)
if err != nil {
	log.Fatal(err)
}
defer client.DeleteCachedContent(ctx, cc.Name)

// Save the name for later
cacheName := cc.Name

// ... Later
cc2, err := client.GetCachedContent(ctx, cacheName)
if err != nil {
	log.Fatal(err)
}
modelWithCache := client.GenerativeModelFromCachedContent(cc2)
prompt := "Find a lighthearted moment from this transcript"
resp, err := modelWithCache.GenerateContent(ctx, genai.Text(prompt))
if err != nil {
	log.Fatal(err)
}

printResponse(resp)

চ্যাট থেকে

পাইথন

model_name = "gemini-1.5-flash-001"
system_instruction = "You are an expert analyzing transcripts."

model = genai.GenerativeModel(model_name=model_name, system_instruction=system_instruction)
chat = model.start_chat()
document = genai.upload_file(path=media / "a11.txt")
response = chat.send_message(["Hi, could you summarize this transcript?", document])
print("\n\nmodel:  ", response.text)
response = chat.send_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 = genai.caching.CachedContent.create(
    model=model_name,
    system_instruction=system_instruction,
    contents=chat.history,
)
model = genai.GenerativeModel.from_cached_content(cached_content=cache)

# Continue the chat where you left off.
chat = model.start_chat()
response = chat.send_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 these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
// import { GoogleAICacheManager, GoogleAIFileManager } from "@google/generative-ai/server";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const cacheManager = new GoogleAICacheManager(process.env.API_KEY);
const fileManager = new GoogleAIFileManager(process.env.API_KEY);

const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash-001" });
const chat = model.startChat();

const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
  mimeType: "text/plain",
});

let result = await chat.sendMessage([
  "Hi, could you summarize this transcript?",
  {
    fileData: {
      fileUri: uploadResult.file.uri,
      mimeType: uploadResult.file.mimeType,
    },
  },
]);
console.log(`\n\nmodel: ${result.response.text()}`);
result = await chat.sendMessage(
  "Okay, could you tell me more about the trans-lunar injection",
);
console.log(`\n\nmodel: ${result.response.text()}`);

const cacheResult = await cacheManager.create({
  model: "models/gemini-1.5-flash-001",
  contents: await chat.getHistory(),
});

const newModel = genAI.getGenerativeModelFromCachedContent(cacheResult);

const newChat = newModel.startChat();
result = await newChat.sendMessage(
  "I didn't understand that last part, could you explain it in simpler language?",
);
console.log(`\n\nmodel: ${result.response.text()}`);

যাও

file, err := client.UploadFileFromPath(ctx, filepath.Join(testDataDir, "a11.txt"), nil)
if err != nil {
	log.Fatal(err)
}
defer client.DeleteFile(ctx, file.Name)
fd := genai.FileData{URI: file.URI}

modelName := "gemini-1.5-flash-001"
model := client.GenerativeModel(modelName)
model.SystemInstruction = genai.NewUserContent(genai.Text("You are an expert analyzing transcripts."))

cs := model.StartChat()
resp, err := cs.SendMessage(ctx, genai.Text("Hi, could you summarize this transcript?"), fd)
if err != nil {
	log.Fatal(err)
}

resp, err = cs.SendMessage(ctx, genai.Text("Okay, could you tell me more about the trans-lunar injection"))
if err != nil {
	log.Fatal(err)
}

// To cache the conversation so far, pass the chat history as the list of
// contents.

argcc := &genai.CachedContent{
	Model:             modelName,
	SystemInstruction: model.SystemInstruction,
	Contents:          cs.History,
}
cc, err := client.CreateCachedContent(ctx, argcc)
if err != nil {
	log.Fatal(err)
}
defer client.DeleteCachedContent(ctx, cc.Name)

modelWithCache := client.GenerativeModelFromCachedContent(cc)
cs = modelWithCache.StartChat()
resp, err = cs.SendMessage(ctx, genai.Text("I didn't understand that last part, could you please explain it in simpler language?"))
if err != nil {
	log.Fatal(err)
}
printResponse(resp)

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

সফল হলে, রেসপন্স বডিতে 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} ফর্ম নেয়।

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

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

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

পাইথন

document = genai.upload_file(path=media / "a11.txt")
model_name = "gemini-1.5-flash-001"
cache = genai.caching.CachedContent.create(
    model=model_name,
    system_instruction="You are an expert analyzing transcripts.",
    contents=[document],
)
print(genai.caching.CachedContent.get(name=cache.name))

Node.js

// Make sure to include these imports:
// import { GoogleAICacheManager, GoogleAIFileManager } from "@google/generative-ai/server";
const cacheManager = new GoogleAICacheManager(process.env.API_KEY);
const fileManager = new GoogleAIFileManager(process.env.API_KEY);

const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
  mimeType: "text/plain",
});

const cacheResult = await cacheManager.create({
  model: "models/gemini-1.5-flash-001",
  contents: [
    {
      role: "user",
      parts: [
        {
          fileData: {
            fileUri: uploadResult.file.uri,
            mimeType: uploadResult.file.mimeType,
          },
        },
      ],
    },
  ],
});
const cacheGetResult = await cacheManager.get(cacheResult.name);
console.log(cacheGetResult);

যাও

file, err := client.UploadFileFromPath(ctx, filepath.Join(testDataDir, "a11.txt"), nil)
if err != nil {
	log.Fatal(err)
}
defer client.DeleteFile(ctx, file.Name)
fd := genai.FileData{URI: file.URI}

argcc := &genai.CachedContent{
	Model:             "gemini-1.5-flash-001",
	SystemInstruction: genai.NewUserContent(genai.Text("You are an expert analyzing transcripts.")),
	Contents:          []*genai.Content{genai.NewUserContent(fd)},
}
cc, err := client.CreateCachedContent(ctx, argcc)
if err != nil {
	log.Fatal(err)
}
defer client.DeleteCachedContent(ctx, cc.Name)

// Save the name for later
cacheName := cc.Name

// ... Later
cc2, err := client.GetCachedContent(ctx, cacheName)
if err != nil {
	log.Fatal(err)
}
modelWithCache := client.GenerativeModelFromCachedContent(cc2)
prompt := "Find a lighthearted moment from this transcript"
resp, err := modelWithCache.GenerateContent(ctx, genai.Text(prompt))
if err != nil {
	log.Fatal(err)
}

printResponse(resp)

শেল

curl "https://generativelanguage.googleapis.com/v1beta/$CACHE_NAME?key=$GOOGLE_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 । এই সম্পদের মেয়াদ কখন শেষ হবে তা নির্দিষ্ট করে। expiration নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:
expireTime string ( Timestamp format)

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

RFC3339 UTC "জুলু" ফর্ম্যাটে একটি টাইমস্ট্যাম্প, ন্যানোসেকেন্ড রেজোলিউশন এবং নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা। উদাহরণ: "2014-10-02T15:01:23Z" এবং "2014-10-02T15:01:23.045123456Z"

ttl string ( Duration format)

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

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

name string

ঐচ্ছিক। শনাক্তকারী। সম্পদের নাম ক্যাশে করা বিষয়বস্তু উল্লেখ করে। বিন্যাস: cachedContents/{id}

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

পাইথন

import datetime

document = genai.upload_file(path=media / "a11.txt")
model_name = "gemini-1.5-flash-001"
cache = genai.caching.CachedContent.create(
    model=model_name,
    system_instruction="You are an expert analyzing transcripts.",
    contents=[document],
)

# You can update the ttl
cache.update(ttl=datetime.timedelta(hours=2))
print(f"After update:\n {cache}")

# Or you can update the expire_time
cache.update(expire_time=datetime.datetime.now() + datetime.timedelta(minutes=15))

Node.js

// Make sure to include these imports:
// import { GoogleAICacheManager, GoogleAIFileManager } from "@google/generative-ai/server";
const cacheManager = new GoogleAICacheManager(process.env.API_KEY);
const fileManager = new GoogleAIFileManager(process.env.API_KEY);

const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
  mimeType: "text/plain",
});

const cacheResult = await cacheManager.create({
  model: "models/gemini-1.5-flash-001",
  contents: [
    {
      role: "user",
      parts: [
        {
          fileData: {
            fileUri: uploadResult.file.uri,
            mimeType: uploadResult.file.mimeType,
          },
        },
      ],
    },
  ],
});
console.log("initial cache data:", cacheResult);
const cacheUpdateResult = await cacheManager.update(cacheResult.name, {
  cachedContent: {
    // 2 hours
    ttlSeconds: 60 * 60 * 2,
  },
});
console.log("updated cache data:", cacheUpdateResult);

যাও

file, err := client.UploadFileFromPath(ctx,
	filepath.Join(testDataDir, "a11.txt"),
	&genai.UploadFileOptions{MIMEType: "text/plain"})
if err != nil {
	log.Fatal(err)
}
defer client.DeleteFile(ctx, file.Name)

শেল

curl -X PATCH "https://generativelanguage.googleapis.com/v1beta/$CACHE_NAME?key=$GOOGLE_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} ফর্ম নেয়।

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

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

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

পাইথন

document = genai.upload_file(path=media / "a11.txt")
model_name = "gemini-1.5-flash-001"
cache = genai.caching.CachedContent.create(
    model=model_name,
    system_instruction="You are an expert analyzing transcripts.",
    contents=[document],
)
cache.delete()

Node.js

// Make sure to include these imports:
// import { GoogleAICacheManager, GoogleAIFileManager } from "@google/generative-ai/server";
const cacheManager = new GoogleAICacheManager(process.env.API_KEY);
const fileManager = new GoogleAIFileManager(process.env.API_KEY);

const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
  mimeType: "text/plain",
});

const cacheResult = await cacheManager.create({
  model: "models/gemini-1.5-flash-001",
  contents: [
    {
      role: "user",
      parts: [
        {
          fileData: {
            fileUri: uploadResult.file.uri,
            mimeType: uploadResult.file.mimeType,
          },
        },
      ],
    },
  ],
});
await cacheManager.delete(cacheResult.name);

যাও

file, err := client.UploadFileFromPath(ctx,
	filepath.Join(testDataDir, "a11.txt"),
	&genai.UploadFileOptions{MIMEType: "text/plain"})
if err != nil {
	log.Fatal(err)
}
defer client.DeleteFile(ctx, file.Name)

শেল

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

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

সফল হলে, প্রতিক্রিয়া বডি খালি।

REST সম্পদ: ক্যাশেড বিষয়বস্তু

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

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

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

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

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

tools[] object ( Tool )

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

createTime string ( Timestamp format)

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

RFC3339 UTC "জুলু" ফর্ম্যাটে একটি টাইমস্ট্যাম্প, ন্যানোসেকেন্ড রেজোলিউশন এবং নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা। উদাহরণ: "2014-10-02T15:01:23Z" এবং "2014-10-02T15:01:23.045123456Z"

updateTime string ( Timestamp format)

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

RFC3339 UTC "জুলু" ফর্ম্যাটে একটি টাইমস্ট্যাম্প, ন্যানোসেকেন্ড রেজোলিউশন এবং নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা। উদাহরণ: "2014-10-02T15:01:23Z" এবং "2014-10-02T15:01:23.045123456Z"

usageMetadata object ( UsageMetadata )

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

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

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

RFC3339 UTC "জুলু" ফর্ম্যাটে একটি টাইমস্ট্যাম্প, ন্যানোসেকেন্ড রেজোলিউশন এবং নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা। উদাহরণ: "2014-10-02T15:01:23Z" এবং "2014-10-02T15:01:23.045123456Z"

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)
  },

  // Union field expiration can be only one of the following:
  "expireTime": string,
  "ttl": string
  // End of list of possible types for union field expiration.
  "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 ক্ষেত্র কাঁচা বাইট দিয়ে পূর্ণ হয়।

ক্ষেত্র

ইউনিয়ন ক্ষেত্রের data

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

JSON প্রতিনিধিত্ব
{

  // Union field data can be only one of the following:
  "text": string,
  "inlineData": {
    object (Blob)
  },
  "functionCall": {
    object (FunctionCall)
  },
  "functionResponse": {
    object (FunctionResponse)
  },
  "fileData": {
    object (FileData)
  },
  "executableCode": {
    object (ExecutableCode)
  },
  "codeExecutionResult": {
    object (CodeExecutionResult)
  }
  // End of list of possible types for union field data.
}

ব্লব

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

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

ক্ষেত্র
mimeType string

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

data string ( bytes format)

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

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

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

ফাংশনকল

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

ক্ষেত্র
name string

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

args object ( Struct format)

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

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

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

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

ক্ষেত্র
name string

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

response object ( Struct format)

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

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

ফাইল ডেটা

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 কোড এক্সিকিউশন খুব বেশি সময় ধরে চলেছিল এবং বাতিল করা হয়েছিল৷ আংশিক আউটপুট উপস্থিত থাকতে পারে বা নাও থাকতে পারে।

টুল

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

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

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

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

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

codeExecution object ( CodeExecution )

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

JSON প্রতিনিধিত্ব
{
  "functionDeclarations": [
    {
      object (FunctionDeclaration)
    }
  ],
  "codeExecution": {
    object (CodeExecution)
  }
}

ফাংশন ঘোষণা

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

ক্ষেত্র
name string

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

description string

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

parameters object ( Schema )

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

JSON প্রতিনিধিত্ব
{
  "name": string,
  "description": string,
  "parameters": {
    object (Schema)
  }
}

স্কিমা

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

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

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

format string

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

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 এর প্রয়োজনীয় বৈশিষ্ট্য।

items object ( Schema )

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

JSON প্রতিনিধিত্ব
{
  "type": enum (Type),
  "format": string,
  "description": string,
  "nullable": boolean,
  "enum": [
    string
  ],
  "maxItems": string,
  "minItems": string,
  "properties": {
    string: {
      object (Schema)
    },
    ...
  },
  "required": [
    string
  ],
  "items": {
    object (Schema)
  }
}

টাইপ

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

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

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

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

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

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

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

অনুরোধে 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 মডেল কোনো ফাংশন কল ভবিষ্যদ্বাণী করবে না. মডেল আচরণ কোন ফাংশন ঘোষণা পাস না যখন একই.

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

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

ক্ষেত্র
totalTokenCount integer

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

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

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

পদ্ধতি: cachedContents.create

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

শেষবিন্দু

https://generativelanguage.googleapis.com/v1beta/cachedContents পোস্ট করুন

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

অনুরোধের মূল অংশে CachedContent একটি উদাহরণ রয়েছে।

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

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

tools[] object ( Tool )

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

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

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

RFC3339 UTC "জুলু" ফর্ম্যাটে একটি টাইমস্ট্যাম্প, ন্যানোসেকেন্ড রেজোলিউশন এবং নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা। উদাহরণ: "2014-10-02T15:01:23Z" এবং "2014-10-02T15:01:23.045123456Z"

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 )

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

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

মৌলিক

পাইথন

document = genai.upload_file(path=media / "a11.txt")
model_name = "gemini-1.5-flash-001"
cache = genai.caching.CachedContent.create(
    model=model_name,
    system_instruction="You are an expert analyzing transcripts.",
    contents=[document],
)
print(cache)

model = genai.GenerativeModel.from_cached_content(cache)
response = model.generate_content("Please summarize this transcript")
print(response.text)

Node.js

// Make sure to include these imports:
// import { GoogleAICacheManager, GoogleAIFileManager } from "@google/generative-ai/server";
// import { GoogleGenerativeAI } from "@google/generative-ai";
const cacheManager = new GoogleAICacheManager(process.env.API_KEY);
const fileManager = new GoogleAIFileManager(process.env.API_KEY);

const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
  mimeType: "text/plain",
});

const cacheResult = await cacheManager.create({
  model: "models/gemini-1.5-flash-001",
  contents: [
    {
      role: "user",
      parts: [
        {
          fileData: {
            fileUri: uploadResult.file.uri,
            mimeType: uploadResult.file.mimeType,
          },
        },
      ],
    },
  ],
});

console.log(cacheResult);

const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModelFromCachedContent(cacheResult);
const result = await model.generateContent(
  "Please summarize this transcript.",
);
console.log(result.response.text());

যাও

file, err := client.UploadFileFromPath(ctx,
	filepath.Join(testDataDir, "a11.txt"),
	&genai.UploadFileOptions{MIMEType: "text/plain"})
if err != nil {
	log.Fatal(err)
}
defer client.DeleteFile(ctx, file.Name)
fd := genai.FileData{URI: file.URI}

argcc := &genai.CachedContent{
	Model:             "gemini-1.5-flash-001",
	SystemInstruction: genai.NewUserContent(genai.Text("You are an expert analyzing transcripts.")),
	Contents:          []*genai.Content{genai.NewUserContent(fd)},
}
cc, err := client.CreateCachedContent(ctx, argcc)
if err != nil {
	log.Fatal(err)
}
defer client.DeleteCachedContent(ctx, cc.Name)

modelWithCache := client.GenerativeModelFromCachedContent(cc)
prompt := "Please summarize this transcript"
resp, err := modelWithCache.GenerateContent(ctx, genai.Text(prompt))
if err != nil {
	log.Fatal(err)
}

printResponse(resp)

শেল

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=$GOOGLE_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=$GOOGLE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
      "contents": [
        {
          "parts":[{
            "text": "Please summarize this transcript"
          }],
          "role": "user"
        },
      ],
      "cachedContent": "'$CACHE_NAME'"
    }'

নাম থেকে

পাইথন

document = genai.upload_file(path=media / "a11.txt")
model_name = "gemini-1.5-flash-001"
cache = genai.caching.CachedContent.create(
    model=model_name,
    system_instruction="You are an expert analyzing transcripts.",
    contents=[document],
)
cache_name = cache.name  # Save the name for later

# Later
cache = genai.caching.CachedContent.get(cache_name)
apollo_model = genai.GenerativeModel.from_cached_content(cache)
response = apollo_model.generate_content("Find a lighthearted moment from this transcript")
print(response.text)

Node.js

// Make sure to include these imports:
// import { GoogleAICacheManager, GoogleAIFileManager } from "@google/generative-ai/server";
// import { GoogleGenerativeAI } from "@google/generative-ai";
const cacheManager = new GoogleAICacheManager(process.env.API_KEY);
const fileManager = new GoogleAIFileManager(process.env.API_KEY);

const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
  mimeType: "text/plain",
});

const cacheResult = await cacheManager.create({
  model: "models/gemini-1.5-flash-001",
  contents: [
    {
      role: "user",
      parts: [
        {
          fileData: {
            fileUri: uploadResult.file.uri,
            mimeType: uploadResult.file.mimeType,
          },
        },
      ],
    },
  ],
});
const cacheName = cacheResult.name; // Save the name for later.

// Later
const getCacheResult = await cacheManager.get(cacheName);
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModelFromCachedContent(getCacheResult);
model.generateContent("Please summarize this transcript.");

যাও

file, err := client.UploadFileFromPath(ctx, filepath.Join(testDataDir, "a11.txt"), nil)
if err != nil {
	log.Fatal(err)
}
defer client.DeleteFile(ctx, file.Name)
fd := genai.FileData{URI: file.URI}

argcc := &genai.CachedContent{
	Model:             "gemini-1.5-flash-001",
	SystemInstruction: genai.NewUserContent(genai.Text("You are an expert analyzing transcripts.")),
	Contents:          []*genai.Content{genai.NewUserContent(fd)},
}
cc, err := client.CreateCachedContent(ctx, argcc)
if err != nil {
	log.Fatal(err)
}
defer client.DeleteCachedContent(ctx, cc.Name)

// Save the name for later
cacheName := cc.Name

// ... Later
cc2, err := client.GetCachedContent(ctx, cacheName)
if err != nil {
	log.Fatal(err)
}
modelWithCache := client.GenerativeModelFromCachedContent(cc2)
prompt := "Find a lighthearted moment from this transcript"
resp, err := modelWithCache.GenerateContent(ctx, genai.Text(prompt))
if err != nil {
	log.Fatal(err)
}

printResponse(resp)

চ্যাট থেকে

পাইথন

model_name = "gemini-1.5-flash-001"
system_instruction = "You are an expert analyzing transcripts."

model = genai.GenerativeModel(model_name=model_name, system_instruction=system_instruction)
chat = model.start_chat()
document = genai.upload_file(path=media / "a11.txt")
response = chat.send_message(["Hi, could you summarize this transcript?", document])
print("\n\nmodel:  ", response.text)
response = chat.send_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 = genai.caching.CachedContent.create(
    model=model_name,
    system_instruction=system_instruction,
    contents=chat.history,
)
model = genai.GenerativeModel.from_cached_content(cached_content=cache)

# Continue the chat where you left off.
chat = model.start_chat()
response = chat.send_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 these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
// import { GoogleAICacheManager, GoogleAIFileManager } from "@google/generative-ai/server";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const cacheManager = new GoogleAICacheManager(process.env.API_KEY);
const fileManager = new GoogleAIFileManager(process.env.API_KEY);

const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash-001" });
const chat = model.startChat();

const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
  mimeType: "text/plain",
});

let result = await chat.sendMessage([
  "Hi, could you summarize this transcript?",
  {
    fileData: {
      fileUri: uploadResult.file.uri,
      mimeType: uploadResult.file.mimeType,
    },
  },
]);
console.log(`\n\nmodel: ${result.response.text()}`);
result = await chat.sendMessage(
  "Okay, could you tell me more about the trans-lunar injection",
);
console.log(`\n\nmodel: ${result.response.text()}`);

const cacheResult = await cacheManager.create({
  model: "models/gemini-1.5-flash-001",
  contents: await chat.getHistory(),
});

const newModel = genAI.getGenerativeModelFromCachedContent(cacheResult);

const newChat = newModel.startChat();
result = await newChat.sendMessage(
  "I didn't understand that last part, could you explain it in simpler language?",
);
console.log(`\n\nmodel: ${result.response.text()}`);

যাও

file, err := client.UploadFileFromPath(ctx, filepath.Join(testDataDir, "a11.txt"), nil)
if err != nil {
	log.Fatal(err)
}
defer client.DeleteFile(ctx, file.Name)
fd := genai.FileData{URI: file.URI}

modelName := "gemini-1.5-flash-001"
model := client.GenerativeModel(modelName)
model.SystemInstruction = genai.NewUserContent(genai.Text("You are an expert analyzing transcripts."))

cs := model.StartChat()
resp, err := cs.SendMessage(ctx, genai.Text("Hi, could you summarize this transcript?"), fd)
if err != nil {
	log.Fatal(err)
}

resp, err = cs.SendMessage(ctx, genai.Text("Okay, could you tell me more about the trans-lunar injection"))
if err != nil {
	log.Fatal(err)
}

// To cache the conversation so far, pass the chat history as the list of
// contents.

argcc := &genai.CachedContent{
	Model:             modelName,
	SystemInstruction: model.SystemInstruction,
	Contents:          cs.History,
}
cc, err := client.CreateCachedContent(ctx, argcc)
if err != nil {
	log.Fatal(err)
}
defer client.DeleteCachedContent(ctx, cc.Name)

modelWithCache := client.GenerativeModelFromCachedContent(cc)
cs = modelWithCache.StartChat()
resp, err = cs.SendMessage(ctx, genai.Text("I didn't understand that last part, could you please explain it in simpler language?"))
if err != nil {
	log.Fatal(err)
}
printResponse(resp)

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

সফল হলে, রেসপন্স বডিতে 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} ফর্ম নেয়।

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

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

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

পাইথন

document = genai.upload_file(path=media / "a11.txt")
model_name = "gemini-1.5-flash-001"
cache = genai.caching.CachedContent.create(
    model=model_name,
    system_instruction="You are an expert analyzing transcripts.",
    contents=[document],
)
print(genai.caching.CachedContent.get(name=cache.name))

Node.js

// Make sure to include these imports:
// import { GoogleAICacheManager, GoogleAIFileManager } from "@google/generative-ai/server";
const cacheManager = new GoogleAICacheManager(process.env.API_KEY);
const fileManager = new GoogleAIFileManager(process.env.API_KEY);

const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
  mimeType: "text/plain",
});

const cacheResult = await cacheManager.create({
  model: "models/gemini-1.5-flash-001",
  contents: [
    {
      role: "user",
      parts: [
        {
          fileData: {
            fileUri: uploadResult.file.uri,
            mimeType: uploadResult.file.mimeType,
          },
        },
      ],
    },
  ],
});
const cacheGetResult = await cacheManager.get(cacheResult.name);
console.log(cacheGetResult);

যাও

file, err := client.UploadFileFromPath(ctx, filepath.Join(testDataDir, "a11.txt"), nil)
if err != nil {
	log.Fatal(err)
}
defer client.DeleteFile(ctx, file.Name)
fd := genai.FileData{URI: file.URI}

argcc := &genai.CachedContent{
	Model:             "gemini-1.5-flash-001",
	SystemInstruction: genai.NewUserContent(genai.Text("You are an expert analyzing transcripts.")),
	Contents:          []*genai.Content{genai.NewUserContent(fd)},
}
cc, err := client.CreateCachedContent(ctx, argcc)
if err != nil {
	log.Fatal(err)
}
defer client.DeleteCachedContent(ctx, cc.Name)

// Save the name for later
cacheName := cc.Name

// ... Later
cc2, err := client.GetCachedContent(ctx, cacheName)
if err != nil {
	log.Fatal(err)
}
modelWithCache := client.GenerativeModelFromCachedContent(cc2)
prompt := "Find a lighthearted moment from this transcript"
resp, err := modelWithCache.GenerateContent(ctx, genai.Text(prompt))
if err != nil {
	log.Fatal(err)
}

printResponse(resp)

শেল

curl "https://generativelanguage.googleapis.com/v1beta/$CACHE_NAME?key=$GOOGLE_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 । এই সম্পদের মেয়াদ কখন শেষ হবে তা নির্দিষ্ট করে। expiration নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:
expireTime string ( Timestamp format)

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

RFC3339 UTC "জুলু" ফর্ম্যাটে একটি টাইমস্ট্যাম্প, ন্যানোসেকেন্ড রেজোলিউশন এবং নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা। উদাহরণ: "2014-10-02T15:01:23Z" এবং "2014-10-02T15:01:23.045123456Z"

ttl string ( Duration format)

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

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

name string

ঐচ্ছিক। শনাক্তকারী। সম্পদের নাম ক্যাশে করা বিষয়বস্তু উল্লেখ করে। বিন্যাস: cachedContents/{id}

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

পাইথন

import datetime

document = genai.upload_file(path=media / "a11.txt")
model_name = "gemini-1.5-flash-001"
cache = genai.caching.CachedContent.create(
    model=model_name,
    system_instruction="You are an expert analyzing transcripts.",
    contents=[document],
)

# You can update the ttl
cache.update(ttl=datetime.timedelta(hours=2))
print(f"After update:\n {cache}")

# Or you can update the expire_time
cache.update(expire_time=datetime.datetime.now() + datetime.timedelta(minutes=15))

Node.js

// Make sure to include these imports:
// import { GoogleAICacheManager, GoogleAIFileManager } from "@google/generative-ai/server";
const cacheManager = new GoogleAICacheManager(process.env.API_KEY);
const fileManager = new GoogleAIFileManager(process.env.API_KEY);

const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
  mimeType: "text/plain",
});

const cacheResult = await cacheManager.create({
  model: "models/gemini-1.5-flash-001",
  contents: [
    {
      role: "user",
      parts: [
        {
          fileData: {
            fileUri: uploadResult.file.uri,
            mimeType: uploadResult.file.mimeType,
          },
        },
      ],
    },
  ],
});
console.log("initial cache data:", cacheResult);
const cacheUpdateResult = await cacheManager.update(cacheResult.name, {
  cachedContent: {
    // 2 hours
    ttlSeconds: 60 * 60 * 2,
  },
});
console.log("updated cache data:", cacheUpdateResult);

যাও

file, err := client.UploadFileFromPath(ctx,
	filepath.Join(testDataDir, "a11.txt"),
	&genai.UploadFileOptions{MIMEType: "text/plain"})
if err != nil {
	log.Fatal(err)
}
defer client.DeleteFile(ctx, file.Name)

শেল

curl -X PATCH "https://generativelanguage.googleapis.com/v1beta/$CACHE_NAME?key=$GOOGLE_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} ফর্ম নেয়।

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

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

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

পাইথন

document = genai.upload_file(path=media / "a11.txt")
model_name = "gemini-1.5-flash-001"
cache = genai.caching.CachedContent.create(
    model=model_name,
    system_instruction="You are an expert analyzing transcripts.",
    contents=[document],
)
cache.delete()

Node.js

// Make sure to include these imports:
// import { GoogleAICacheManager, GoogleAIFileManager } from "@google/generative-ai/server";
const cacheManager = new GoogleAICacheManager(process.env.API_KEY);
const fileManager = new GoogleAIFileManager(process.env.API_KEY);

const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
  mimeType: "text/plain",
});

const cacheResult = await cacheManager.create({
  model: "models/gemini-1.5-flash-001",
  contents: [
    {
      role: "user",
      parts: [
        {
          fileData: {
            fileUri: uploadResult.file.uri,
            mimeType: uploadResult.file.mimeType,
          },
        },
      ],
    },
  ],
});
await cacheManager.delete(cacheResult.name);

যাও

file, err := client.UploadFileFromPath(ctx,
	filepath.Join(testDataDir, "a11.txt"),
	&genai.UploadFileOptions{MIMEType: "text/plain"})
if err != nil {
	log.Fatal(err)
}
defer client.DeleteFile(ctx, file.Name)

শেল

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

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

সফল হলে, প্রতিক্রিয়া বডি খালি।

REST সম্পদ: ক্যাশেড বিষয়বস্তু

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

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

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

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

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

tools[] object ( Tool )

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

createTime string ( Timestamp format)

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

RFC3339 UTC "জুলু" ফর্ম্যাটে একটি টাইমস্ট্যাম্প, ন্যানোসেকেন্ড রেজোলিউশন এবং নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা। উদাহরণ: "2014-10-02T15:01:23Z" এবং "2014-10-02T15:01:23.045123456Z"

updateTime string ( Timestamp format)

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

RFC3339 UTC "জুলু" ফর্ম্যাটে একটি টাইমস্ট্যাম্প, ন্যানোসেকেন্ড রেজোলিউশন এবং নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা। উদাহরণ: "2014-10-02T15:01:23Z" এবং "2014-10-02T15:01:23.045123456Z"

usageMetadata object ( UsageMetadata )

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

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

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

RFC3339 UTC "জুলু" ফর্ম্যাটে একটি টাইমস্ট্যাম্প, ন্যানোসেকেন্ড রেজোলিউশন এবং নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা। উদাহরণ: "2014-10-02T15:01:23Z" এবং "2014-10-02T15:01:23.045123456Z"

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)
  },

  // Union field expiration can be only one of the following:
  "expireTime": string,
  "ttl": string
  // End of list of possible types for union field expiration.
  "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 ক্ষেত্র কাঁচা বাইট দিয়ে পূর্ণ হয়।

ক্ষেত্র

ইউনিয়ন ক্ষেত্রের data

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

JSON প্রতিনিধিত্ব
{

  // Union field data can be only one of the following:
  "text": string,
  "inlineData": {
    object (Blob)
  },
  "functionCall": {
    object (FunctionCall)
  },
  "functionResponse": {
    object (FunctionResponse)
  },
  "fileData": {
    object (FileData)
  },
  "executableCode": {
    object (ExecutableCode)
  },
  "codeExecutionResult": {
    object (CodeExecutionResult)
  }
  // End of list of possible types for union field data.
}

ব্লব

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

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

ক্ষেত্র
mimeType string

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

data string ( bytes format)

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

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

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

ফাংশনকল

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

ক্ষেত্র
name string

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

args object ( Struct format)

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

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

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

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

ক্ষেত্র
name string

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

response object ( Struct format)

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

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

ফাইল ডেটা

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 কোড এক্সিকিউশন খুব বেশি সময় ধরে চলেছিল এবং বাতিল করা হয়েছিল৷ আংশিক আউটপুট উপস্থিত থাকতে পারে বা নাও থাকতে পারে।

টুল

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

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

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

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

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

codeExecution object ( CodeExecution )

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

JSON প্রতিনিধিত্ব
{
  "functionDeclarations": [
    {
      object (FunctionDeclaration)
    }
  ],
  "codeExecution": {
    object (CodeExecution)
  }
}

ফাংশন ঘোষণা

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

ক্ষেত্র
name string

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

description string

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

parameters object ( Schema )

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

JSON প্রতিনিধিত্ব
{
  "name": string,
  "description": string,
  "parameters": {
    object (Schema)
  }
}

স্কিমা

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

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

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

format string

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

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 এর প্রয়োজনীয় বৈশিষ্ট্য।

items object ( Schema )

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

JSON প্রতিনিধিত্ব
{
  "type": enum (Type),
  "format": string,
  "description": string,
  "nullable": boolean,
  "enum": [
    string
  ],
  "maxItems": string,
  "minItems": string,
  "properties": {
    string: {
      object (Schema)
    },
    ...
  },
  "required": [
    string
  ],
  "items": {
    object (Schema)
  }
}

টাইপ

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

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

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

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

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

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

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

অনুরোধে 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 মডেল কোনো ফাংশন কল ভবিষ্যদ্বাণী করবে না. মডেল আচরণ কোন ফাংশন ঘোষণা পাস না যখন একই.

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

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

ক্ষেত্র
totalTokenCount integer

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

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

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

পদ্ধতি: cachedContents.create

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

শেষবিন্দু

https://generativelanguage.googleapis.com/v1beta/cachedContents পোস্ট করুন

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

অনুরোধের মূল অংশে CachedContent একটি উদাহরণ রয়েছে।

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

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

tools[] object ( Tool )

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

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

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

RFC3339 UTC "জুলু" ফর্ম্যাটে একটি টাইমস্ট্যাম্প, ন্যানোসেকেন্ড রেজোলিউশন এবং নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা। উদাহরণ: "2014-10-02T15:01:23Z" এবং "2014-10-02T15:01:23.045123456Z"

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 )

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

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

মৌলিক

পাইথন

document = genai.upload_file(path=media / "a11.txt")
model_name = "gemini-1.5-flash-001"
cache = genai.caching.CachedContent.create(
    model=model_name,
    system_instruction="You are an expert analyzing transcripts.",
    contents=[document],
)
print(cache)

model = genai.GenerativeModel.from_cached_content(cache)
response = model.generate_content("Please summarize this transcript")
print(response.text)

Node.js

// Make sure to include these imports:
// import { GoogleAICacheManager, GoogleAIFileManager } from "@google/generative-ai/server";
// import { GoogleGenerativeAI } from "@google/generative-ai";
const cacheManager = new GoogleAICacheManager(process.env.API_KEY);
const fileManager = new GoogleAIFileManager(process.env.API_KEY);

const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
  mimeType: "text/plain",
});

const cacheResult = await cacheManager.create({
  model: "models/gemini-1.5-flash-001",
  contents: [
    {
      role: "user",
      parts: [
        {
          fileData: {
            fileUri: uploadResult.file.uri,
            mimeType: uploadResult.file.mimeType,
          },
        },
      ],
    },
  ],
});

console.log(cacheResult);

const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModelFromCachedContent(cacheResult);
const result = await model.generateContent(
  "Please summarize this transcript.",
);
console.log(result.response.text());

যাও

file, err := client.UploadFileFromPath(ctx,
	filepath.Join(testDataDir, "a11.txt"),
	&genai.UploadFileOptions{MIMEType: "text/plain"})
if err != nil {
	log.Fatal(err)
}
defer client.DeleteFile(ctx, file.Name)
fd := genai.FileData{URI: file.URI}

argcc := &genai.CachedContent{
	Model:             "gemini-1.5-flash-001",
	SystemInstruction: genai.NewUserContent(genai.Text("You are an expert analyzing transcripts.")),
	Contents:          []*genai.Content{genai.NewUserContent(fd)},
}
cc, err := client.CreateCachedContent(ctx, argcc)
if err != nil {
	log.Fatal(err)
}
defer client.DeleteCachedContent(ctx, cc.Name)

modelWithCache := client.GenerativeModelFromCachedContent(cc)
prompt := "Please summarize this transcript"
resp, err := modelWithCache.GenerateContent(ctx, genai.Text(prompt))
if err != nil {
	log.Fatal(err)
}

printResponse(resp)

শেল

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=$GOOGLE_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=$GOOGLE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
      "contents": [
        {
          "parts":[{
            "text": "Please summarize this transcript"
          }],
          "role": "user"
        },
      ],
      "cachedContent": "'$CACHE_NAME'"
    }'

নাম থেকে

পাইথন

document = genai.upload_file(path=media / "a11.txt")
model_name = "gemini-1.5-flash-001"
cache = genai.caching.CachedContent.create(
    model=model_name,
    system_instruction="You are an expert analyzing transcripts.",
    contents=[document],
)
cache_name = cache.name  # Save the name for later

# Later
cache = genai.caching.CachedContent.get(cache_name)
apollo_model = genai.GenerativeModel.from_cached_content(cache)
response = apollo_model.generate_content("Find a lighthearted moment from this transcript")
print(response.text)

Node.js

// Make sure to include these imports:
// import { GoogleAICacheManager, GoogleAIFileManager } from "@google/generative-ai/server";
// import { GoogleGenerativeAI } from "@google/generative-ai";
const cacheManager = new GoogleAICacheManager(process.env.API_KEY);
const fileManager = new GoogleAIFileManager(process.env.API_KEY);

const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
  mimeType: "text/plain",
});

const cacheResult = await cacheManager.create({
  model: "models/gemini-1.5-flash-001",
  contents: [
    {
      role: "user",
      parts: [
        {
          fileData: {
            fileUri: uploadResult.file.uri,
            mimeType: uploadResult.file.mimeType,
          },
        },
      ],
    },
  ],
});
const cacheName = cacheResult.name; // Save the name for later.

// Later
const getCacheResult = await cacheManager.get(cacheName);
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModelFromCachedContent(getCacheResult);
model.generateContent("Please summarize this transcript.");

যাও

file, err := client.UploadFileFromPath(ctx, filepath.Join(testDataDir, "a11.txt"), nil)
if err != nil {
	log.Fatal(err)
}
defer client.DeleteFile(ctx, file.Name)
fd := genai.FileData{URI: file.URI}

argcc := &genai.CachedContent{
	Model:             "gemini-1.5-flash-001",
	SystemInstruction: genai.NewUserContent(genai.Text("You are an expert analyzing transcripts.")),
	Contents:          []*genai.Content{genai.NewUserContent(fd)},
}
cc, err := client.CreateCachedContent(ctx, argcc)
if err != nil {
	log.Fatal(err)
}
defer client.DeleteCachedContent(ctx, cc.Name)

// Save the name for later
cacheName := cc.Name

// ... Later
cc2, err := client.GetCachedContent(ctx, cacheName)
if err != nil {
	log.Fatal(err)
}
modelWithCache := client.GenerativeModelFromCachedContent(cc2)
prompt := "Find a lighthearted moment from this transcript"
resp, err := modelWithCache.GenerateContent(ctx, genai.Text(prompt))
if err != nil {
	log.Fatal(err)
}

printResponse(resp)

চ্যাট থেকে

পাইথন

model_name = "gemini-1.5-flash-001"
system_instruction = "You are an expert analyzing transcripts."

model = genai.GenerativeModel(model_name=model_name, system_instruction=system_instruction)
chat = model.start_chat()
document = genai.upload_file(path=media / "a11.txt")
response = chat.send_message(["Hi, could you summarize this transcript?", document])
print("\n\nmodel:  ", response.text)
response = chat.send_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 = genai.caching.CachedContent.create(
    model=model_name,
    system_instruction=system_instruction,
    contents=chat.history,
)
model = genai.GenerativeModel.from_cached_content(cached_content=cache)

# Continue the chat where you left off.
chat = model.start_chat()
response = chat.send_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 these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
// import { GoogleAICacheManager, GoogleAIFileManager } from "@google/generative-ai/server";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const cacheManager = new GoogleAICacheManager(process.env.API_KEY);
const fileManager = new GoogleAIFileManager(process.env.API_KEY);

const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash-001" });
const chat = model.startChat();

const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
  mimeType: "text/plain",
});

let result = await chat.sendMessage([
  "Hi, could you summarize this transcript?",
  {
    fileData: {
      fileUri: uploadResult.file.uri,
      mimeType: uploadResult.file.mimeType,
    },
  },
]);
console.log(`\n\nmodel: ${result.response.text()}`);
result = await chat.sendMessage(
  "Okay, could you tell me more about the trans-lunar injection",
);
console.log(`\n\nmodel: ${result.response.text()}`);

const cacheResult = await cacheManager.create({
  model: "models/gemini-1.5-flash-001",
  contents: await chat.getHistory(),
});

const newModel = genAI.getGenerativeModelFromCachedContent(cacheResult);

const newChat = newModel.startChat();
result = await newChat.sendMessage(
  "I didn't understand that last part, could you explain it in simpler language?",
);
console.log(`\n\nmodel: ${result.response.text()}`);

যাও

file, err := client.UploadFileFromPath(ctx, filepath.Join(testDataDir, "a11.txt"), nil)
if err != nil {
	log.Fatal(err)
}
defer client.DeleteFile(ctx, file.Name)
fd := genai.FileData{URI: file.URI}

modelName := "gemini-1.5-flash-001"
model := client.GenerativeModel(modelName)
model.SystemInstruction = genai.NewUserContent(genai.Text("You are an expert analyzing transcripts."))

cs := model.StartChat()
resp, err := cs.SendMessage(ctx, genai.Text("Hi, could you summarize this transcript?"), fd)
if err != nil {
	log.Fatal(err)
}

resp, err = cs.SendMessage(ctx, genai.Text("Okay, could you tell me more about the trans-lunar injection"))
if err != nil {
	log.Fatal(err)
}

// To cache the conversation so far, pass the chat history as the list of
// contents.

argcc := &genai.CachedContent{
	Model:             modelName,
	SystemInstruction: model.SystemInstruction,
	Contents:          cs.History,
}
cc, err := client.CreateCachedContent(ctx, argcc)
if err != nil {
	log.Fatal(err)
}
defer client.DeleteCachedContent(ctx, cc.Name)

modelWithCache := client.GenerativeModelFromCachedContent(cc)
cs = modelWithCache.StartChat()
resp, err = cs.SendMessage(ctx, genai.Text("I didn't understand that last part, could you please explain it in simpler language?"))
if err != nil {
	log.Fatal(err)
}
printResponse(resp)

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

সফল হলে, রেসপন্স বডিতে 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} ফর্ম নেয়।

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

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

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

পাইথন

document = genai.upload_file(path=media / "a11.txt")
model_name = "gemini-1.5-flash-001"
cache = genai.caching.CachedContent.create(
    model=model_name,
    system_instruction="You are an expert analyzing transcripts.",
    contents=[document],
)
print(genai.caching.CachedContent.get(name=cache.name))

Node.js

// Make sure to include these imports:
// import { GoogleAICacheManager, GoogleAIFileManager } from "@google/generative-ai/server";
const cacheManager = new GoogleAICacheManager(process.env.API_KEY);
const fileManager = new GoogleAIFileManager(process.env.API_KEY);

const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
  mimeType: "text/plain",
});

const cacheResult = await cacheManager.create({
  model: "models/gemini-1.5-flash-001",
  contents: [
    {
      role: "user",
      parts: [
        {
          fileData: {
            fileUri: uploadResult.file.uri,
            mimeType: uploadResult.file.mimeType,
          },
        },
      ],
    },
  ],
});
const cacheGetResult = await cacheManager.get(cacheResult.name);
console.log(cacheGetResult);

যাও

file, err := client.UploadFileFromPath(ctx, filepath.Join(testDataDir, "a11.txt"), nil)
if err != nil {
	log.Fatal(err)
}
defer client.DeleteFile(ctx, file.Name)
fd := genai.FileData{URI: file.URI}

argcc := &genai.CachedContent{
	Model:             "gemini-1.5-flash-001",
	SystemInstruction: genai.NewUserContent(genai.Text("You are an expert analyzing transcripts.")),
	Contents:          []*genai.Content{genai.NewUserContent(fd)},
}
cc, err := client.CreateCachedContent(ctx, argcc)
if err != nil {
	log.Fatal(err)
}
defer client.DeleteCachedContent(ctx, cc.Name)

// Save the name for later
cacheName := cc.Name

// ... Later
cc2, err := client.GetCachedContent(ctx, cacheName)
if err != nil {
	log.Fatal(err)
}
modelWithCache := client.GenerativeModelFromCachedContent(cc2)
prompt := "Find a lighthearted moment from this transcript"
resp, err := modelWithCache.GenerateContent(ctx, genai.Text(prompt))
if err != nil {
	log.Fatal(err)
}

printResponse(resp)

শেল

curl "https://generativelanguage.googleapis.com/v1beta/$CACHE_NAME?key=$GOOGLE_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 । এই সম্পদের মেয়াদ কখন শেষ হবে তা নির্দিষ্ট করে। expiration নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:
expireTime string ( Timestamp format)

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

RFC3339 UTC "জুলু" ফর্ম্যাটে একটি টাইমস্ট্যাম্প, ন্যানোসেকেন্ড রেজোলিউশন এবং নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা। উদাহরণ: "2014-10-02T15:01:23Z" এবং "2014-10-02T15:01:23.045123456Z"

ttl string ( Duration format)

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

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

name string

ঐচ্ছিক। শনাক্তকারী। সম্পদের নাম ক্যাশে করা বিষয়বস্তু উল্লেখ করে। বিন্যাস: cachedContents/{id}

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

পাইথন

import datetime

document = genai.upload_file(path=media / "a11.txt")
model_name = "gemini-1.5-flash-001"
cache = genai.caching.CachedContent.create(
    model=model_name,
    system_instruction="You are an expert analyzing transcripts.",
    contents=[document],
)

# You can update the ttl
cache.update(ttl=datetime.timedelta(hours=2))
print(f"After update:\n {cache}")

# Or you can update the expire_time
cache.update(expire_time=datetime.datetime.now() + datetime.timedelta(minutes=15))

Node.js

// Make sure to include these imports:
// import { GoogleAICacheManager, GoogleAIFileManager } from "@google/generative-ai/server";
const cacheManager = new GoogleAICacheManager(process.env.API_KEY);
const fileManager = new GoogleAIFileManager(process.env.API_KEY);

const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
  mimeType: "text/plain",
});

const cacheResult = await cacheManager.create({
  model: "models/gemini-1.5-flash-001",
  contents: [
    {
      role: "user",
      parts: [
        {
          fileData: {
            fileUri: uploadResult.file.uri,
            mimeType: uploadResult.file.mimeType,
          },
        },
      ],
    },
  ],
});
console.log("initial cache data:", cacheResult);
const cacheUpdateResult = await cacheManager.update(cacheResult.name, {
  cachedContent: {
    // 2 hours
    ttlSeconds: 60 * 60 * 2,
  },
});
console.log("updated cache data:", cacheUpdateResult);

যাও

file, err := client.UploadFileFromPath(ctx,
	filepath.Join(testDataDir, "a11.txt"),
	&genai.UploadFileOptions{MIMEType: "text/plain"})
if err != nil {
	log.Fatal(err)
}
defer client.DeleteFile(ctx, file.Name)

শেল

curl -X PATCH "https://generativelanguage.googleapis.com/v1beta/$CACHE_NAME?key=$GOOGLE_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} ফর্ম নেয়।

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

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

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

পাইথন

document = genai.upload_file(path=media / "a11.txt")
model_name = "gemini-1.5-flash-001"
cache = genai.caching.CachedContent.create(
    model=model_name,
    system_instruction="You are an expert analyzing transcripts.",
    contents=[document],
)
cache.delete()

Node.js

// Make sure to include these imports:
// import { GoogleAICacheManager, GoogleAIFileManager } from "@google/generative-ai/server";
const cacheManager = new GoogleAICacheManager(process.env.API_KEY);
const fileManager = new GoogleAIFileManager(process.env.API_KEY);

const uploadResult = await fileManager.uploadFile(`${mediaPath}/a11.txt`, {
  mimeType: "text/plain",
});

const cacheResult = await cacheManager.create({
  model: "models/gemini-1.5-flash-001",
  contents: [
    {
      role: "user",
      parts: [
        {
          fileData: {
            fileUri: uploadResult.file.uri,
            mimeType: uploadResult.file.mimeType,
          },
        },
      ],
    },
  ],
});
await cacheManager.delete(cacheResult.name);

যাও

file, err := client.UploadFileFromPath(ctx,
	filepath.Join(testDataDir, "a11.txt"),
	&genai.UploadFileOptions{MIMEType: "text/plain"})
if err != nil {
	log.Fatal(err)
}
defer client.DeleteFile(ctx, file.Name)

শেল

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

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

সফল হলে, প্রতিক্রিয়া বডি খালি।

বিশ্রাম সংস্থান: ক্যাশেড কনটেন্টস

সংস্থান: ক্যাশেড কনটেন্ট

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

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

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

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

tools[] object ( Tool )

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

createTime string ( Timestamp format)

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

RFC3339 UTC "জুলু" ফর্ম্যাটে একটি টাইমস্ট্যাম্প, ন্যানোসেকেন্ড রেজোলিউশন এবং নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা। উদাহরণ: "2014-10-02T15:01:23Z" এবং "2014-10-02T15:01:23.045123456Z"

updateTime string ( Timestamp format)

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

RFC3339 UTC "জুলু" ফর্ম্যাটে একটি টাইমস্ট্যাম্প, ন্যানোসেকেন্ড রেজোলিউশন এবং নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা। উদাহরণ: "2014-10-02T15:01:23Z" এবং "2014-10-02T15:01:23.045123456Z"

usageMetadata object ( UsageMetadata )

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

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

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

RFC3339 UTC "জুলু" ফর্ম্যাটে একটি টাইমস্ট্যাম্প, ন্যানোসেকেন্ড রেজোলিউশন এবং নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা। উদাহরণ: "2014-10-02T15:01:23Z" এবং "2014-10-02T15:01:23.045123456Z"

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)
  },

  // Union field expiration can be only one of the following:
  "expireTime": string,
  "ttl": string
  // End of list of possible types for union field expiration.
  "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 অবশ্যই মিডিয়ার ধরণ এবং সাব টাইপ সনাক্তকারী একটি স্থির আইনা মাইম টাইপ থাকতে হবে।

ক্ষেত্র

ইউনিয়ন ক্ষেত্রের data

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

JSON প্রতিনিধিত্ব
{

  // Union field data can be only one of the following:
  "text": string,
  "inlineData": {
    object (Blob)
  },
  "functionCall": {
    object (FunctionCall)
  },
  "functionResponse": {
    object (FunctionResponse)
  },
  "fileData": {
    object (FileData)
  },
  "executableCode": {
    object (ExecutableCode)
  },
  "codeExecutionResult": {
    object (CodeExecutionResult)
  }
  // End of list of possible types for union field data.
}

ব্লব

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

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

ক্ষেত্র
mimeType string

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

data string ( bytes format)

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

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

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

ফাংশনকল

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

ক্ষেত্র
name string

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

args object ( Struct format)

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

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

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

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

ক্ষেত্র
name string

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

response object ( Struct format)

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

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

ফাইল ডেটা

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

ক্ষেত্র
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 কোড এক্সিকিউশন খুব দীর্ঘ সময় ধরে চলেছিল, এবং বাতিল করা হয়েছিল। আংশিক আউটপুট উপস্থিত থাকতে পারে বা নাও থাকতে পারে।

টুল

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

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

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

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

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

codeExecution object ( CodeExecution )

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

JSON প্রতিনিধিত্ব
{
  "functionDeclarations": [
    {
      object (FunctionDeclaration)
    }
  ],
  "codeExecution": {
    object (CodeExecution)
  }
}

ফাংশন ঘোষণা

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

ক্ষেত্র
name string

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

description string

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

parameters object ( Schema )

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

JSON প্রতিনিধিত্ব
{
  "name": string,
  "description": string,
  "parameters": {
    object (Schema)
  }
}

স্কিমা

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

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

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

format string

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

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

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

items object ( Schema )

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

JSON প্রতিনিধিত্ব
{
  "type": enum (Type),
  "format": string,
  "description": string,
  "nullable": boolean,
  "enum": [
    string
  ],
  "maxItems": string,
  "minItems": string,
  "properties": {
    string: {
      object (Schema)
    },
    ...
  },
  "required": [
    string
  ],
  "items": {
    object (Schema)
  }
}

টাইপ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

allowedFunctionNames[] string

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

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

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

মোড

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

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

Usagemetadata

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

ক্ষেত্র
totalTokenCount integer

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

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