Caching

পদ্ধতি: cachedContents.create

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

শেষপ্রান্ত

https://generativelanguage.googleapis.com/v1beta/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(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());

নাম থেকে

পাইথন

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

চ্যাট থেকে

পাইথন

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()}`);

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

সফল হলে, রেসপন্স বডিতে 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);

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

সফল হলে, প্রতিক্রিয়া বডিতে 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 একটি উদাহরণ রয়েছে।

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

পাইথন

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

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

সফল হলে, প্রতিক্রিয়া বডিতে 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);

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

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

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

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

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

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

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

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

বিষয়বস্তু

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

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

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

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

role string

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

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

অংশ

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

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

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

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

ইউনিয়ন ক্ষেত্রের 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 প্রতিনিধিত্ব
{
  "mimeType": string,
  "data": string
}
ক্ষেত্র
mimeType string

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

data string ( bytes format)

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

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

ফাংশনকল

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

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

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

args object ( Struct format)

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

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

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

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

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

response object ( Struct format)

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

ফাইল ডেটা

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

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

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

fileUri string

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

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

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

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

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

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

code string

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

ভাষা

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

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

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

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

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

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

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

output string

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

ফলাফল

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

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

টুল

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

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

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

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

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

codeExecution object ( CodeExecution )

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

ফাংশন ঘোষণা

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

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

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

description string

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

parameters object ( Schema )

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

স্কিমা

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

JSON প্রতিনিধিত্ব
{
  "type": enum (Type),
  "format": string,
  "description": string,
  "nullable": boolean,
  "enum": [
    string
  ],
  "properties": {
    string: {
      object (Schema)
    },
    ...
  },
  "required": [
    string
  ],
  "items": {
    object (Schema)
  }
}
ক্ষেত্র
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"]}

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 এর উপাদানগুলির স্কিমা।

টাইপ

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

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

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

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

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

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

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

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

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

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

FunctionCallingConfig

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

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

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

allowedFunctionNames[] string

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

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

মোড

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

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

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

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

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

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