Multimodal Live API

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

ক্ষমতা

মাল্টিমডাল লাইভ এপিআই নিম্নলিখিত মূল ক্ষমতাগুলি অন্তর্ভুক্ত করে:

  • মাল্টিমোডালিটি: মডেল দেখতে, শুনতে এবং কথা বলতে পারে।
  • কম লেটেন্সি রিয়েল-টাইম মিথস্ক্রিয়া: দ্রুত প্রতিক্রিয়া প্রদান করে।
  • সেশন মেমরি: মডেলটি একটি একক সেশনের মধ্যে সমস্ত ইন্টারঅ্যাকশনের স্মৃতি ধরে রাখে, পূর্বে শোনা বা দেখা তথ্য স্মরণ করে।
  • ফাংশন কলিং, কোড এক্সিকিউশন, এবং টুল হিসাবে অনুসন্ধানের জন্য সমর্থন: বাহ্যিক পরিষেবা এবং ডেটা উত্সগুলির সাথে একীকরণ সক্ষম করে৷
  • স্বয়ংক্রিয় ভয়েস অ্যাক্টিভিটি সনাক্তকরণ (VAD): ব্যবহারকারী কখন শুরু করে এবং কথা বলা বন্ধ করে মডেলটি সঠিকভাবে চিনতে পারে। এটি প্রাকৃতিক, কথোপকথনমূলক মিথস্ক্রিয়াগুলির জন্য অনুমতি দেয় এবং ব্যবহারকারীদের যে কোনও সময় মডেলটিকে বাধা দেওয়ার ক্ষমতা দেয়৷

আপনি Google AI স্টুডিওতে মাল্টিমোডাল লাইভ API ব্যবহার করে দেখতে পারেন।

শুরু করুন

মাল্টিমডাল লাইভ এপিআই হল একটি স্টেটফুল এপিআই যা ওয়েবসকেট ব্যবহার করে।

এই বিভাগে পাইথন 3.9+ ব্যবহার করে টেক্সট-টু-টেক্সট জেনারেশনের জন্য মাল্টিমোডাল লাইভ এপিআই কীভাবে ব্যবহার করা যায় তার একটি উদাহরণ দেখায়।

Gemini API লাইব্রেরি ইনস্টল করুন

google-genai প্যাকেজ ইনস্টল করতে, নিম্নলিখিত pip কমান্ডটি ব্যবহার করুন:

!pip3 install google-genai

আমদানি নির্ভরতা

নির্ভরতা আমদানি করতে:

from google import genai

পাঠান এবং একটি টেক্সট বার্তা গ্রহণ

import asyncio
from google import genai

client = genai.Client(api_key="GEMINI_API_KEY", http_options={'api_version': 'v1alpha'})
model_id = "gemini-2.0-flash-exp"
config = {"response_modalities": ["TEXT"]}

async def main():
    async with client.aio.live.connect(model=model_id, config=config) as session:
        while True:
            message = input("User> ")
            if message.lower() == "exit":
                break
            await session.send(message, end_of_turn=True)

            async for response in session.receive():
                if response.text is None:
                    continue
                print(response.text, end="")

if __name__ == "__main__":
    asyncio.run(main())

ইন্টিগ্রেশন গাইড

মাল্টিমোডাল লাইভ API-এর সাথে ইন্টিগ্রেশন কীভাবে কাজ করে তা এই বিভাগটি বর্ণনা করে।

সেশন

একটি সেশন ক্লায়েন্ট এবং জেমিনি সার্ভারের মধ্যে একটি একক WebSocket সংযোগ উপস্থাপন করে।

একটি ক্লায়েন্ট একটি নতুন সংযোগ শুরু করার পরে সেশনটি সার্ভারের সাথে বার্তা বিনিময় করতে পারে:

  • Gemini সার্ভারে পাঠ্য, অডিও বা ভিডিও পাঠান।
  • Gemini সার্ভার থেকে অডিও, টেক্সট, বা ফাংশন কল প্রতিক্রিয়া পান।

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

নিম্নলিখিত উদাহরণ কনফিগারেশন দেখুন:

{​​
  "model": string,
  "generation_config": {
    "candidate_count": integer,
    "max_output_tokens": integer,
    "temperature": number,
    "top_p": number,
    "top_k": integer,
    "presence_penalty": number,
    "frequency_penalty": number,
    "response_modalities": string,
    "speech_config":object
  },

  "system_instruction": "",
  "tools":[]
}

আরও তথ্যের জন্য, BidiGenerateContentSetup দেখুন।

বার্তা পাঠান

বার্তা হল JSON-ফরম্যাট করা স্ট্রিং যা WebSocket সংযোগের মাধ্যমে বিনিময় করা হয়।

একটি বার্তা পাঠাতে ক্লায়েন্টকে অবশ্যই একটি সমর্থিত ক্লায়েন্ট বার্তা পাঠাতে হবে একটি JSON ফরম্যাটেড স্ট্রিং-এ একটি খোলা WebSocket সংযোগের একটি সহ৷

সমর্থিত ক্লায়েন্ট বার্তা

নিম্নলিখিত টেবিলে সমর্থিত ক্লায়েন্ট বার্তাগুলি দেখুন:

বার্তা বর্ণনা
BidiGenerateContentSetup প্রথম বার্তায় সেশন কনফিগারেশন পাঠাতে হবে
BidiGenerateContentClientContent ক্লায়েন্ট থেকে বিতরণ করা বর্তমান কথোপকথনের ক্রমবর্ধমান বিষয়বস্তু আপডেট
BidiGenerateContentRealtimeInput রিয়েল টাইম অডিও বা ভিডিও ইনপুট
BidiGenerateContentToolResponse সার্ভার থেকে প্রাপ্ত একটি ToolCallMessage এর প্রতিক্রিয়া

বার্তা গ্রহণ

জেমিনি থেকে বার্তাগুলি পেতে, ওয়েবসকেট 'বার্তা' ইভেন্টটি শুনুন এবং তারপর সমর্থিত সার্ভার বার্তাগুলির সংজ্ঞা অনুসারে ফলাফলটি পার্স করুন৷

নিম্নলিখিত দেখুন:

ws.addEventListener("message", async (evt) => {
  if (evt.data instanceof Blob) {
    // Process the received data (audio, video, etc.)
  } else {
    // Process JSON response
  }
});

সমর্থিত সার্ভার বার্তা

নিম্নলিখিত টেবিলে সমর্থিত সার্ভার বার্তা দেখুন:

বার্তা বর্ণনা
BidiGenerateContentSetupComplete ক্লায়েন্ট থেকে একটি BidiGenerateContentSetup বার্তা, সেটআপ সম্পূর্ণ হলে পাঠানো হয়
BidiGenerateContentServerContent একটি ক্লায়েন্ট বার্তার প্রতিক্রিয়ায় মডেল দ্বারা উত্পন্ন সামগ্রী
BidiGenerateContentToolCall ক্লায়েন্টকে ফাংশন কল চালানোর জন্য অনুরোধ করুন এবং ম্যাচিং আইডিগুলির সাথে প্রতিক্রিয়াগুলি ফেরত দিন৷
BidiGenerateContentToolCallCancellation ব্যবহারকারীর মডেল আউটপুটে বাধা দেওয়ার কারণে একটি ফাংশন কল বাতিল হলে পাঠানো হয়

ইনক্রিমেন্টাল কন্টেন্ট আপডেট

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

নিম্নলিখিত উদাহরণ প্রসঙ্গ বার্তা দেখুন:

{
  "client_content": {
    "turns": [
      {
          "parts":[
          {
            "text": ""
          }
        ],
        "role":"user"
      },
      {
          "parts":[
          {
            "text": ""
          }
        ],
        "role":"model"
      }
    ],
    "turn_complete": true
  }
}

নোট করুন যে কন্টেন্ট অংশগুলি একটি functionResponse টাইপের হতে পারে, তবে মডেল দ্বারা জারি করা ফাংশন কলগুলির প্রতিক্রিয়া প্রদান করতে BidiGenerateContentClientContent ব্যবহার করা উচিত নয়৷ এর পরিবর্তে BidiGenerateContentToolResponse ব্যবহার করা উচিত। BidiGenerateContentClientContent শুধুমাত্র পূর্ববর্তী প্রসঙ্গ স্থাপন বা কথোপকথনে পাঠ্য ইনপুট প্রদান করতে ব্যবহার করা উচিত।

অডিও এবং ভিডিও স্ট্রিমিং

ফাংশন কলিং

BidiGenerateContentSetup বার্তার অংশ হিসাবে টুল সংজ্ঞা পাঠিয়ে সেশনের শুরুতে সমস্ত ফাংশন ঘোষণা করতে হবে।

ফাংশন কলিং সম্পর্কে আরও জানতে ফাংশন কলিং টিউটোরিয়াল দেখুন।

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

ক্লায়েন্টকে BidiGenerateContentToolResponse দিয়ে প্রতিক্রিয়া জানাতে হবে।

অডিও ইনপুট এবং অডিও আউটপুট নেতিবাচকভাবে মডেলের ফাংশন কলিং ব্যবহার করার ক্ষমতাকে প্রভাবিত করে।

অডিও ফরম্যাট

মাল্টিমোডাল লাইভ API নিম্নলিখিত অডিও ফর্ম্যাটগুলিকে সমর্থন করে:

  • ইনপুট অডিও ফরম্যাট: Raw 16 bit PCM অডিও 16kHz লিটল-এন্ডিয়ান
  • আউটপুট অডিও ফরম্যাট: 24kHz লিটল-এন্ডিয়ানে কাঁচা 16 বিট পিসিএম অডিও

সিস্টেম নির্দেশাবলী

আপনি মডেলের আউটপুট আরও ভালভাবে নিয়ন্ত্রণ করতে এবং অডিও প্রতিক্রিয়াগুলির স্বন এবং অনুভূতি নির্দিষ্ট করতে সিস্টেম নির্দেশাবলী প্রদান করতে পারেন৷

মিথস্ক্রিয়া শুরু হওয়ার আগে সিস্টেম নির্দেশাবলী প্রম্পটে যোগ করা হয় এবং পুরো সেশনের জন্য কার্যকর থাকে।

সিস্টেম নির্দেশাবলী শুধুমাত্র একটি অধিবেশনের শুরুতে সেট করা যেতে পারে, অবিলম্বে প্রাথমিক সংযোগ অনুসরণ করে। অধিবেশন চলাকালীন মডেলে আরও ইনপুট প্রদান করতে, ক্রমবর্ধমান সামগ্রী আপডেটগুলি ব্যবহার করুন৷

বাধা

ব্যবহারকারীরা যে কোনো সময় মডেলের আউটপুট ব্যাহত করতে পারেন. যখন ভয়েস অ্যাক্টিভিটি ডিটেকশন (VAD) কোনো বাধা শনাক্ত করে, তখন চলমান জেনারেশন বাতিল করা হয় এবং বাতিল করা হয়। শুধুমাত্র ক্লায়েন্টকে ইতিমধ্যে পাঠানো তথ্য সেশন ইতিহাসে রাখা হয়। সার্ভার তখন BidiGenerateContentServerContent কনটেন্ট বার্তা পাঠায় বিঘ্নের রিপোর্ট করতে।

এছাড়াও, জেমিনি সার্ভার কোনো মুলতুবি থাকা ফাংশন কল বাতিল করে এবং বাতিল করা কলগুলির আইডি সহ একটি BidiGenerateContentServerContent বার্তা পাঠায়।

কণ্ঠস্বর

মাল্টিমোডাল লাইভ API নিম্নলিখিত ভয়েসগুলিকে সমর্থন করে: Aoede, Charon, Fenrir, Kore এবং Puck।

একটি ভয়েস নির্দিষ্ট করতে, আপনার সেশন কনফিগারেশনের অংশ হিসাবে, speech_config অবজেক্টের মধ্যে voice_name সেট করুন।

একটি speech_config বস্তুর নিম্নলিখিত JSON উপস্থাপনা দেখুন:

{
  "voice_config": {
    "prebuilt_voice_config ": {
      "voice_name": <var>VOICE_NAME</var>
    }
  }
}

সীমাবদ্ধতা

আপনি যখন আপনার প্রকল্পের পরিকল্পনা করবেন তখন মাল্টিমোডাল লাইভ API এবং জেমিনি 2.0 এর নিম্নলিখিত সীমাবদ্ধতাগুলি বিবেচনা করুন৷

ক্লায়েন্ট প্রমাণীকরণ

মাল্টিমডাল লাইভ এপিআই শুধুমাত্র সার্ভারকে সার্ভার প্রমাণীকরণ প্রদান করে এবং সরাসরি ক্লায়েন্ট ব্যবহারের জন্য সুপারিশ করা হয় না। মাল্টিমোডাল লাইভ API-এর সাথে নিরাপদ প্রমাণীকরণের জন্য ক্লায়েন্ট ইনপুট একটি মধ্যবর্তী অ্যাপ্লিকেশন সার্ভারের মাধ্যমে রুট করা উচিত।

ওয়েব এবং মোবাইল অ্যাপের জন্য, আমরা দৈনিক আমাদের অংশীদারদের থেকে ইন্টিগ্রেশন ব্যবহার করার পরামর্শ দিই।

কথোপকথনের ইতিহাস

মডেলটি ইন-সেশন ইন্টারঅ্যাকশনের ট্র্যাক রাখে, কথোপকথনের ইতিহাস সংরক্ষণ করা হয় না। একটি অধিবেশন শেষ হলে, সংশ্লিষ্ট প্রসঙ্গ মুছে ফেলা হয়।

একটি পূর্ববর্তী সেশন পুনরুদ্ধার করতে বা ব্যবহারকারীর ইন্টারঅ্যাকশনের ঐতিহাসিক প্রেক্ষাপট সহ মডেলটি প্রদান করতে, অ্যাপ্লিকেশনটির নিজস্ব কথোপকথন লগ বজায় রাখা উচিত এবং একটি নতুন সেশনের শুরুতে এই তথ্য পাঠানোর জন্য একটি BidiGenerateContentClientContent বার্তা ব্যবহার করা উচিত৷

সেশনের সর্বোচ্চ সময়কাল

সেশনের সময়কাল অডিওর জন্য 15 মিনিট পর্যন্ত বা অডিও এবং ভিডিওর 2 মিনিট পর্যন্ত সীমাবদ্ধ। যখন সেশনের সময়সীমা সীমা অতিক্রম করে, সংযোগটি বন্ধ হয়ে যায়।

মডেলটি প্রসঙ্গ আকার দ্বারা সীমাবদ্ধ। ভিডিও এবং অডিও স্ট্রীমের পাশাপাশি কন্টেন্টের বড় অংশ পাঠানোর ফলে আগের সেশন বন্ধ হয়ে যেতে পারে।

ভয়েস কার্যকলাপ সনাক্তকরণ (VAD)

মডেলটি একটি অবিচ্ছিন্ন অডিও ইনপুট স্ট্রীমে স্বয়ংক্রিয়ভাবে ভয়েস অ্যাক্টিভিটি সনাক্তকরণ (VAD) সঞ্চালন করে। VAD সর্বদা সক্রিয় থাকে এবং এর পরামিতিগুলি কনফিগারযোগ্য নয়।

টোকেন গণনা

টোকেন গণনা সমর্থিত নয়।

হারের সীমা

নিম্নলিখিত হার সীমা প্রযোজ্য:

  • API কী প্রতি 3টি সমবর্তী সেশন
  • প্রতি মিনিটে 4M টোকেন

বার্তা এবং ঘটনা

বিডিজেনারেট কনটেন্ট ক্লায়েন্ট কনটেন্ট

ক্লায়েন্ট থেকে বিতরণ করা বর্তমান কথোপকথনের ক্রমবর্ধমান আপডেট। এখানে সমস্ত বিষয়বস্তু নিঃশর্তভাবে কথোপকথনের ইতিহাসে যুক্ত করা হয়েছে এবং সামগ্রী তৈরি করার জন্য মডেলের প্রম্পটের অংশ হিসাবে ব্যবহার করা হয়েছে।

এখানে একটি বার্তা যেকোনো বর্তমান মডেল প্রজন্মকে বাধাগ্রস্ত করবে।

ক্ষেত্র
turns[]

Content

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

একক-পালা প্রশ্নের জন্য, এটি একটি একক উদাহরণ। মাল্টি-টার্ন কোয়েরির জন্য, এটি একটি পুনরাবৃত্ত ক্ষেত্র যাতে কথোপকথনের ইতিহাস এবং সর্বশেষ অনুরোধ রয়েছে।

turn_ complete

bool

ঐচ্ছিক। সত্য হলে, নির্দেশ করে যে সার্ভারের বিষয়বস্তু তৈরি করা বর্তমানে জমা হওয়া প্রম্পট দিয়ে শুরু করা উচিত। অন্যথায়, সার্ভার প্রজন্ম শুরু করার আগে অতিরিক্ত বার্তার জন্য অপেক্ষা করে।

বিডিজেনারেট কনটেন্ট রিয়েলটাইম ইনপুট

ব্যবহারকারীর ইনপুট যা রিয়েল টাইমে পাঠানো হয়।

এটি BidiGenerateContentClientContent থেকে কয়েকটি উপায়ে আলাদা:

  • মডেল জেনারেশনে কোনো বাধা ছাড়াই ক্রমাগত পাঠানো যেতে পারে।
  • BidiGenerateContentClientContent এবং BidiGenerateContentRealtimeInput জুড়ে আন্তঃলিপ্ত ডেটা মিশ্রিত করার প্রয়োজন হলে, সার্ভারটি সর্বোত্তম প্রতিক্রিয়ার জন্য অপ্টিমাইজ করার চেষ্টা করে, কিন্তু কোন গ্যারান্টি নেই।
  • টার্নের শেষ স্পষ্টভাবে নির্দিষ্ট করা হয়নি, বরং ব্যবহারকারীর কার্যকলাপ থেকে উদ্ভূত হয়েছে (উদাহরণস্বরূপ, বক্তৃতার শেষ)।
  • এমনকি পালা শেষ হওয়ার আগে, মডেল থেকে প্রতিক্রিয়া দ্রুত শুরু করার জন্য অপ্টিমাইজ করার জন্য ডেটা ক্রমবর্ধমানভাবে প্রক্রিয়া করা হয়।
  • সর্বদা সরাসরি ব্যবহারকারীর ইনপুট যা রিয়েল টাইমে পাঠানো হয়। কোনো বাধা ছাড়াই ক্রমাগত পাঠানো যাবে। মডেলটি স্বয়ংক্রিয়ভাবে ব্যবহারকারীর বক্তৃতার শুরু এবং শেষ সনাক্ত করে এবং সেই অনুযায়ী প্রতিক্রিয়া স্ট্রিমিং শুরু বা বন্ধ করে। ডেটা আসার সাথে সাথে ক্রমবর্ধমানভাবে প্রক্রিয়া করা হয়, লেটেন্সি কমিয়ে দেয়।
ক্ষেত্র
media_ chunks[]

Blob

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

বিডিজেনারেট কনটেন্ট সার্ভার কন্টেন্ট

ক্লায়েন্ট বার্তাগুলির প্রতিক্রিয়া হিসাবে মডেল দ্বারা উত্পন্ন ক্রমবর্ধমান সার্ভার আপডেট৷

বিষয়বস্তু যত তাড়াতাড়ি সম্ভব তৈরি করা হয়, এবং বাস্তব সময়ে নয়। ক্লায়েন্টরা বাফার করতে এবং রিয়েল টাইমে এটি চালাতে বেছে নিতে পারে।

ক্ষেত্র
turn_ complete

bool

শুধুমাত্র আউটপুট। সত্য হলে, নির্দেশ করে যে মডেলটি তৈরি করা হয়েছে। জেনারেশন শুধুমাত্র অতিরিক্ত ক্লায়েন্ট বার্তার প্রতিক্রিয়ায় শুরু হবে। content পাশাপাশি সেট করা যেতে পারে, এটি নির্দেশ করে যে content পালাক্রমে শেষ।

interrupted

bool

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

grounding_ metadata

GroundingMetadata

শুধুমাত্র আউটপুট। জেনারেট করা সামগ্রীর জন্য গ্রাউন্ডিং মেটাডেটা।

model_ turn

Content

শুধুমাত্র আউটপুট। ব্যবহারকারীর সাথে বর্তমান কথোপকথনের অংশ হিসাবে মডেলটি যে সামগ্রী তৈরি করেছে৷

বিডিজেনারেট কনটেন্ট সেটআপ

প্রথম এবং একমাত্র প্রথম ক্লায়েন্ট বার্তায় বার্তা পাঠানো হবে। কনফিগারেশন রয়েছে যা স্ট্রিমিং সেশনের সময়কালের জন্য প্রযোজ্য হবে।

কোনো অতিরিক্ত বার্তা পাঠানোর আগে গ্রাহকদের একটি BidiGenerateContentSetupComplete বার্তার জন্য অপেক্ষা করা উচিত।

ক্ষেত্র
model

string

প্রয়োজন। মডেলের সম্পদের নাম। এটি মডেল ব্যবহার করার জন্য একটি আইডি হিসাবে কাজ করে।

বিন্যাস: models/{model}

generation_ config

GenerationConfig

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

নিম্নলিখিত ক্ষেত্র সমর্থিত নয়:

  • response_logprobs
  • response_mime_type
  • logprobs
  • response_schema
  • stop_sequence
  • routing_config
  • audio_timestamp
system_ instruction

Content

ঐচ্ছিক। ব্যবহারকারী মডেলের জন্য সিস্টেম নির্দেশাবলী প্রদান করেছে।

দ্রষ্টব্য: অংশগুলিতে শুধুমাত্র পাঠ্য ব্যবহার করা উচিত এবং প্রতিটি অংশের বিষয়বস্তু একটি পৃথক অনুচ্ছেদে থাকবে।

tools[]

Tool

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

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

বিডি জেনারেট কনটেন্ট সেটআপ সম্পূর্ণ

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

ক্লায়েন্টের কাছ থেকে একটি BidiGenerateContentSetup বার্তার জবাবে পাঠানো হয়েছে।

বিডিজেনারেট কনটেন্ট টুলকল

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

ক্ষেত্র
function_ calls[]

FunctionCall

শুধুমাত্র আউটপুট। ফাংশন কল নির্বাহ করা হবে.

BidiGenerateContentToolCallCancellation

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

ক্ষেত্র
ids[]

string

শুধুমাত্র আউটপুট। টুলের আইডি বাতিল করতে হবে।

বিডিজেনারেট কনটেন্ট টুল রেসপন্স

ক্লায়েন্ট সার্ভার থেকে প্রাপ্ত একটি ToolCall প্রতিক্রিয়া তৈরি করেছে। স্বতন্ত্র FunctionResponse অবজেক্টগুলি id ফিল্ড দ্বারা সংশ্লিষ্ট FunctionCall অবজেক্টের সাথে মিলে যায়।

উল্লেখ্য যে ইউনারি এবং সার্ভার-স্ট্রিমিং GenerateContent API-এ ফাংশন কলিং হয় Content অংশ বিনিময়ের মাধ্যমে, যখন বিডিতে GenerateContent APIs ফাংশন কলিং এই উত্সর্গীকৃত বার্তাগুলির উপর ঘটে।

ক্ষেত্র
function_ responses[]

FunctionResponse

ঐচ্ছিক। ফাংশন কল প্রতিক্রিয়া.

সাধারণ ধরনের সম্পর্কে আরও তথ্য

সাধারণত-ব্যবহৃত API রিসোর্স ধরনের Blob , Content , FunctionCall , FunctionResponse , GenerationConfig , GroundingMetadata , এবং Tool সম্পর্কে আরও তথ্যের জন্য, সামগ্রী তৈরি করা দেখুন।