Gemini API ব্যবহার করে ফাংশন কলিং৷

জেনারেটিভ মডেল অনেক ধরনের সমস্যা সমাধানে শক্তিশালী। তবে, এগুলোর কিছু সীমাবদ্ধতা রয়েছে, যেমন:

  • প্রশিক্ষণের পর সেগুলো স্থবির হয়ে যায়, যার ফলে জ্ঞান বাসি হয়ে পড়ে।
  • তারা বাহ্যিক ডেটা অনুসন্ধান বা পরিবর্তন করতে পারে না।

ফাংশন কলিং আপনাকে এই সীমাবদ্ধতাগুলোর কিছু কাটিয়ে উঠতে সাহায্য করতে পারে। ফাংশন কলিংকে কখনও কখনও টুলের ব্যবহার বলা হয়, কারণ এটি একটি মডেলকে তার চূড়ান্ত প্রতিক্রিয়া তৈরি করার জন্য এপিআই (API) এবং ফাংশনের মতো বাহ্যিক টুল ব্যবহার করার সুযোগ দেয়।


এই নির্দেশিকাটি আপনাকে দেখাবে যে, এই পৃষ্ঠার পরবর্তী প্রধান অংশে বর্ণিত পরিস্থিতির অনুরূপ একটি ফাংশন কল সেটআপ আপনি কীভাবে বাস্তবায়ন করতে পারেন। মোটা দাগে, আপনার অ্যাপে ফাংশন কলিং সেট আপ করার ধাপগুলো হলো:

  • ধাপ ১ : এমন একটি ফাংশন লিখুন যা মডেলকে তার চূড়ান্ত প্রতিক্রিয়া তৈরি করার জন্য প্রয়োজনীয় তথ্য সরবরাহ করতে পারে (উদাহরণস্বরূপ, ফাংশনটি কোনো বাহ্যিক API কল করতে পারে)।

  • ধাপ ২ : একটি ফাংশন ডিক্লারেশন তৈরি করুন যা ফাংশন এবং এর প্যারামিটারগুলো বর্ণনা করে।

  • ধাপ ৩ : মডেল ইনিশিয়ালাইজেশনের সময় ফাংশন ডিক্লারেশনটি প্রদান করুন, যাতে মডেল জানতে পারে প্রয়োজনে কীভাবে ফাংশনটি ব্যবহার করতে হবে।

  • ধাপ ৪ : আপনার অ্যাপটি এমনভাবে সেট আপ করুন যাতে মডেলটি আপনার অ্যাপের ফাংশন কল করার জন্য প্রয়োজনীয় তথ্য পাঠাতে পারে।

  • ধাপ ৫ : ফাংশনের প্রতিক্রিয়াটি মডেলে ফেরত পাঠান, যাতে মডেলটি তার চূড়ান্ত প্রতিক্রিয়া তৈরি করতে পারে।

কোড বাস্তবায়নে যান

ফাংশন কলিং উদাহরণের সংক্ষিপ্ত বিবরণ

যখন আপনি মডেলে কোনো অনুরোধ পাঠান, তখন আপনি মডেলকে কিছু "টুল" (যেমন ফাংশন) প্রদান করতে পারেন, যা ব্যবহার করে এটি তার চূড়ান্ত প্রতিক্রিয়া তৈরি করতে পারে। এই ফাংশনগুলো ব্যবহার করতে এবং সেগুলোকে কল করতে ("ফাংশন কলিং"), মডেল এবং আপনার অ্যাপের মধ্যে তথ্য আদান-প্রদান করতে হয়, তাই ফাংশন কলিং ব্যবহারের জন্য মাল্টি-টার্ন চ্যাট ইন্টারফেস ব্যবহার করার পরামর্শ দেওয়া হয়।

ধরুন আপনার এমন একটি অ্যাপ আছে যেখানে একজন ব্যবহারকারী এই ধরনের একটি প্রশ্ন লিখতে পারেন: What was the weather in Boston on October 17, 2024?

জেমিনি মডেলগুলো হয়তো এই আবহাওয়ার তথ্য জানে না; তবে, কল্পনা করুন যে আপনি এমন একটি বাহ্যিক আবহাওয়া পরিষেবা এপিআই (API)-এর কথা জানেন যা এই তথ্য সরবরাহ করতে পারে। আপনি ফাংশন কলিং ব্যবহার করে জেমিনি মডেলকে সেই এপিআই এবং তার আবহাওয়ার তথ্যে পৌঁছানোর একটি পথ করে দিতে পারেন।

প্রথমে, আপনার অ্যাপে fetchWeather নামে একটি ফাংশন লিখুন যা এই কাল্পনিক বাহ্যিক API-এর সাথে যোগাযোগ করবে, যার এই ইনপুট এবং আউটপুট রয়েছে:

প্যারামিটার প্রকার প্রয়োজনীয় বর্ণনা
ইনপুট
location বস্তু হ্যাঁ যে শহর ও রাজ্যের আবহাওয়া জানা যাবে, তার নাম।
শুধুমাত্র মার্কিন যুক্তরাষ্ট্রের শহরগুলো সমর্থিত। এটি অবশ্যই city এবং state একটি নেস্টেড অবজেক্ট হতে হবে।
date স্ট্রিং হ্যাঁ যে তারিখের আবহাওয়ার তথ্য সংগ্রহ করতে হবে (তা অবশ্যই YYYY-MM-DD ফরম্যাটে হতে হবে)।
আউটপুট
temperature পূর্ণসংখ্যা হ্যাঁ তাপমাত্রা (ফারেনহাইট এককে)
chancePrecipitation স্ট্রিং হ্যাঁ বৃষ্টিপাতের সম্ভাবনা (শতাংশে প্রকাশিত)
cloudConditions স্ট্রিং হ্যাঁ মেঘের অবস্থা ( clear , partlyCloudy , mostlyCloudy , cloudy এর মধ্যে যেকোনো একটি)

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

আগত অনুরোধটি আবার দেখুন: What was the weather in Boston on October 17, 2024? মডেলটি সম্ভবত সিদ্ধান্ত নেবে যে ` fetchWeather ফাংশনটি এটিকে একটি প্রতিক্রিয়া তৈরি করতে সাহায্য করতে পারে। মডেলটি দেখবে fetchWeather জন্য কী কী ইনপুট প্যারামিটার প্রয়োজন এবং তারপর ফাংশনটির জন্য কাঠামোগত ইনপুট ডেটা তৈরি করবে যা দেখতে মোটামুটি এইরকম:

{
  functionName: fetchWeather,
  location: {
    city: Boston,
    state: Massachusetts  // the model can infer the state from the prompt
  },
  date: 2024-10-17
}

মডেলটি এই কাঠামোগত ইনপুট ডেটা আপনার অ্যাপে পাঠায়, যাতে আপনার অ্যাপ fetchWeather ফাংশনটি কল করতে পারে। যখন আপনার অ্যাপ এপিআই (API) থেকে আবহাওয়ার অবস্থা সম্পর্কে তথ্য পায়, তখন এটি সেই তথ্য মডেলের কাছে পাঠিয়ে দেয়। এই আবহাওয়ার তথ্য মডেলকে তার চূড়ান্ত প্রক্রিয়াকরণ সম্পন্ন করতে এবং What was the weather in Boston on October 17, 2024? এই প্রাথমিক অনুরোধের প্রতিক্রিয়া তৈরি করতে সাহায্য করে।

মডেলটি চূড়ান্তভাবে স্বাভাবিক ভাষায় এই ধরনের একটি প্রতিক্রিয়া দিতে পারে: On October 17, 2024, in Boston, it was 38 degrees Fahrenheit with partly cloudy skies.

ডায়াগ্রামটি দেখাচ্ছে কিভাবে ফাংশন কলিং-এর মাধ্যমে মডেল আপনার অ্যাপের একটি ফাংশনের সাথে ইন্টারঅ্যাক্ট করে।

আপনি জেমিনি ডেভেলপার এপিআই ডকুমেন্টেশনে ফাংশন কলিং সম্পর্কে আরও জানতে পারবেন।

ফাংশন কলিং বাস্তবায়ন করুন

এই নির্দেশিকার নিম্নলিখিত ধাপগুলো আপনাকে দেখাবে কীভাবে "একটি ফাংশন কলিং উদাহরণের সংক্ষিপ্ত বিবরণ" (এই পৃষ্ঠার উপরের অংশ দেখুন) অংশে বর্ণিত কর্মপ্রবাহের অনুরূপ একটি ফাংশন কল সেটআপ বাস্তবায়ন করতে হয়।

সমর্থিত মডেল

  • gemini-3.1-pro-preview
  • gemini-3.7-flash (এবং পুরোনো gemini-3.6-flashgemini-3.5-flash )
  • gemini-3.5-flash-lite (এবং পুরোনো gemini-3.1-flash-lite )

সাধারণ ব্যবহারের জেমিনি ২.৫ মডেলগুলিতে এই সক্ষমতা ছিল, কিন্তু সেগুলি এখন আর ব্যবহৃত হয় না।

Gemini Live API মডেলগুলোও এই সক্ষমতা সমর্থন করে, কিন্তু এই গাইডের সমস্ত কোড নমুনা সাধারণ ব্যবহারের জেমিনি মডেলগুলোর জন্য।

শুরু করার আগে

এই পৃষ্ঠায় প্রদানকারী-নির্দিষ্ট বিষয়বস্তু এবং কোড দেখতে আপনার জেমিনি এপিআই প্রদানকারীর উপর ক্লিক করুন।

যদি আপনি ইতিমধ্যে তা না করে থাকেন, তাহলে ‘ গেটিং স্টার্টেড গাইড’টি সম্পূর্ণ করুন, যেখানে আপনার Firebase প্রজেক্ট সেট আপ করা, আপনার অ্যাপকে Firebase-এর সাথে সংযুক্ত করা, SDK যোগ করা, আপনার নির্বাচিত Gemini API প্রোভাইডারের জন্য ব্যাকএন্ড সার্ভিস ইনিশিয়ালাইজ করা এবং একটি GenerativeModel ইনস্ট্যান্স তৈরি করার পদ্ধতি বর্ণনা করা হয়েছে।

আপনার প্রম্পটগুলো পরীক্ষা ও পরিমার্জন করার জন্য আমরা গুগল এআই স্টুডিও ব্যবহার করার পরামর্শ দিই।

ধাপ ১ : ফাংশনটি লিখুন

ধরুন আপনার এমন একটি অ্যাপ আছে যেখানে একজন ব্যবহারকারী এই ধরনের একটি প্রশ্ন করতে পারেন: What was the weather in Boston on October 17, 2024? জেমিনি মডেলগুলো হয়তো এই আবহাওয়ার তথ্য জানে না; তবে, কল্পনা করুন যে আপনি এমন একটি বাহ্যিক আবহাওয়া পরিষেবা এপিআই (API)-এর কথা জানেন যা এই তথ্যটি সরবরাহ করতে পারে। এই নির্দেশিকার পরিস্থিতিটি এই কাল্পনিক বাহ্যিক এপিআই-এর উপর নির্ভর করে।

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

সুইফট

// This function calls a hypothetical external API that returns
// a collection of weather information for a given location on a given date.
func fetchWeather(city: String, state: String, date: String) -> JSONObject {

  // TODO(developer): Write a standard function that would call an external weather API.

  // For demo purposes, this hypothetical response is hardcoded here in the expected format.
  return