জেনারেটিভ মডেল অনেক ধরনের সমস্যা সমাধানে শক্তিশালী। যাইহোক, তারা সীমাবদ্ধতা দ্বারা সীমাবদ্ধ যেমন:
- তারা প্রশিক্ষণের পরে হিমায়িত হয়, যা বাসি জ্ঞানের দিকে পরিচালিত করে।
- তারা বহিরাগত ডেটা অনুসন্ধান বা সংশোধন করতে পারে না।
ফাংশন কলিং আপনাকে এই সীমাবদ্ধতার কিছু কাটিয়ে উঠতে সাহায্য করতে পারে। ফাংশন কলিংকে কখনও কখনও টুল ব্যবহার হিসাবে উল্লেখ করা হয় কারণ এটি একটি মডেলকে তার চূড়ান্ত প্রতিক্রিয়া তৈরি করতে API এবং ফাংশনের মতো বাহ্যিক সরঞ্জামগুলি ব্যবহার করার অনুমতি দেয়।
আপনি Google Cloud ডকুমেন্টেশনে ফাংশন কলিং সম্পর্কে আরও জানতে পারেন, ফাংশন কলিংয়ের জন্য ব্যবহারের ক্ষেত্রের একটি সহায়ক তালিকা সহ।
ফাংশন কলিং জেমিনি 1.0 প্রো, জেমিনি 1.5 প্রো এবং জেমিনি 1.5 ফ্ল্যাশ দ্বারা সমর্থিত।
এই নির্দেশিকা আপনাকে দেখায় কিভাবে আপনি এই পৃষ্ঠার পরবর্তী প্রধান বিভাগে বর্ণিত উদাহরণের মতো একটি ফাংশন কল সেটআপ বাস্তবায়ন করতে পারেন। উচ্চ-স্তরে, আপনার অ্যাপে ফাংশন কলিং সেট আপ করার ধাপগুলি এখানে রয়েছে:
এমন একটি ফাংশন লিখুন যা মডেলটিকে তার চূড়ান্ত প্রতিক্রিয়া তৈরি করার জন্য প্রয়োজনীয় তথ্য সরবরাহ করতে পারে (উদাহরণস্বরূপ, ফাংশনটি একটি বহিরাগত API কল করতে পারে)।
একটি ফাংশন ঘোষণা তৈরি করুন যা ফাংশন এবং এর পরামিতিগুলি বর্ণনা করে।
মডেল ইনিশিয়ালাইজেশনের সময় ফাংশন ডিক্লেয়ারেশন প্রদান করুন যাতে মডেল জানে যে এটি কীভাবে ফাংশন ব্যবহার করতে পারে, যদি প্রয়োজন হয়।
আপনার অ্যাপ সেট আপ করুন যাতে মডেলটি আপনার অ্যাপের ফাংশনটি কল করার জন্য প্রয়োজনীয় তথ্য পাঠাতে পারে।
ফাংশনের প্রতিক্রিয়াটি মডেলে ফেরত দিন যাতে মডেলটি তার চূড়ান্ত প্রতিক্রিয়া তৈরি করতে পারে।
একটি ফাংশন কলিং উদাহরণের ওভারভিউ
আপনি যখন মডেলটিতে একটি অনুরোধ পাঠান, আপনি মডেলটিকে "সরঞ্জাম" (যেমন ফাংশন) এর একটি সেটও প্রদান করতে পারেন যা এটি তার চূড়ান্ত প্রতিক্রিয়া তৈরি করতে ব্যবহার করতে পারে। এই ফাংশনগুলি ব্যবহার করতে এবং তাদের কল করার জন্য ("ফাংশন কলিং"), মডেল এবং আপনার অ্যাপকে একে অপরের কাছে তথ্য পাঠাতে হবে, তাই ফাংশন কলিং ব্যবহার করার প্রস্তাবিত উপায় হল মাল্টি-টার্ন চ্যাট ইন্টারফেসের মাধ্যমে .
কল্পনা করুন যে আপনার কাছে এমন একটি অ্যাপ আছে যেখানে একজন ব্যবহারকারী একটি প্রম্পট লিখতে পারে যেমন: What was the weather in Boston on October 17, 2024?
.
মিথুন মডেলরা হয়তো এই আবহাওয়ার তথ্য জানেন না; যাইহোক, কল্পনা করুন যে আপনি একটি বহিরাগত আবহাওয়া পরিষেবা API সম্পর্কে জানেন যা এটি প্রদান করতে পারে। আপনি Gemini মডেলকে সেই 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
ফাংশনকে কল করতে পারে। যখন আপনার অ্যাপ এপিআই থেকে আবহাওয়ার অবস্থা ফিরে পায়, তখন এটি মডেলে তথ্য পাঠায়। এই আবহাওয়ার তথ্য মডেলটিকে তার চূড়ান্ত প্রক্রিয়াকরণ সম্পূর্ণ করতে এবং 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.
ফাংশন কলিং বাস্তবায়ন
আপনি শুরু করার আগে
আপনি যদি ইতিমধ্যেই না করে থাকেন, Vertex AI in Firebase জন্য শুরু করার নির্দেশিকাটি সম্পূর্ণ করুন। নিশ্চিত করুন যে আপনি নিম্নলিখিত সমস্ত কাজ করেছেন:
ব্লেজ প্রাইসিং প্ল্যান ব্যবহার করা এবং প্রয়োজনীয় এপিআই সক্ষম করা সহ একটি নতুন বা বিদ্যমান ফায়ারবেস প্রকল্প সেট আপ করুন৷
আপনার অ্যাপটি রেজিস্টার করা এবং আপনার অ্যাপে আপনার Firebase কনফিগার যোগ করা সহ আপনার অ্যাপটিকে Firebase-এ সংযুক্ত করুন।
SDK যোগ করুন এবং আপনার অ্যাপে Vertex AI পরিষেবা এবং জেনারেটিভ মডেল শুরু করুন।
আপনি আপনার অ্যাপটিকে Firebase-এ সংযুক্ত করার পরে, SDK যোগ করার পরে এবং Vertex AI পরিষেবা এবং জেনারেটিভ মডেল শুরু করার পরে, আপনি Gemini API কল করতে প্রস্তুত৷
এই গাইডের অবশিষ্ট ধাপগুলি আপনাকে দেখায় যে কীভাবে একটি ফাংশন কলিং উদাহরণের ওভারভিউতে বর্ণিত ওয়ার্কফ্লো অনুরূপ একটি ফাংশন কল সেটআপ বাস্তবায়ন করতে হয় (এই পৃষ্ঠার শীর্ষ বিভাগটি দেখুন)।
আপনি পরে এই পৃষ্ঠায় এই ফাংশন কলিং উদাহরণের জন্য সম্পূর্ণ কোড নমুনা দেখতে পারেন।
ধাপ 1 : ফাংশন লিখুন
কল্পনা করুন যে আপনার কাছে এমন একটি অ্যাপ আছে যেখানে একজন ব্যবহারকারী একটি প্রম্পট লিখতে পারে যেমন: What was the weather in Boston on October 17, 2024?
. মিথুন মডেলরা হয়তো এই আবহাওয়ার তথ্য জানেন না; যাইহোক, কল্পনা করুন যে আপনি একটি বহিরাগত আবহাওয়া পরিষেবা API সম্পর্কে জানেন যা এটি প্রদান করতে পারে। এই গাইডের উদাহরণ এই অনুমানমূলক বাহ্যিক API এর উপর নির্ভর করে।
আপনার অ্যাপে ফাংশনটি লিখুন যা অনুমানমূলক বাহ্যিক API এর সাথে ইন্টারঅ্যাক্ট করবে এবং মডেলটিকে তার চূড়ান্ত অনুরোধ তৈরি করতে প্রয়োজনীয় তথ্য সরবরাহ করবে। এই আবহাওয়ার উদাহরণে, এটি একটি fetchWeather
ফাংশন হবে যা এই অনুমানমূলক বাহ্যিক API এ কল করে।
ধাপ 2 : একটি ফাংশন ঘোষণা তৈরি করুন
ফাংশন ঘোষণা তৈরি করুন যা আপনি পরে মডেলকে প্রদান করবেন (এই গাইডের পরবর্তী ধাপ)।
আপনার ঘোষণায়, ফাংশন এবং এর পরামিতিগুলির বিবরণে যতটা সম্ভব বিস্তারিত অন্তর্ভুক্ত করুন।
কোন ফাংশন নির্বাচন করতে হবে এবং ফাংশনে প্রকৃত কলের জন্য কীভাবে প্যারামিটার মান প্রদান করতে হবে তা নির্ধারণ করতে মডেলটি ফাংশন ঘোষণার তথ্য ব্যবহার করে। মডেলটি কীভাবে ফাংশনগুলির মধ্যে বেছে নিতে পারে, সেইসাথে আপনি কীভাবে সেই পছন্দটি নিয়ন্ত্রণ করতে পারেন তার জন্য এই পৃষ্ঠায় পরে অতিরিক্ত আচরণ এবং বিকল্পগুলি দেখুন৷
আপনি যে স্কিমা প্রদান করেন সে সম্পর্কে নিম্নলিখিত নোট করুন:
আপনাকে অবশ্যই একটি স্কিমা বিন্যাসে ফাংশন ঘোষণা প্রদান করতে হবে যা OpenAPI স্কিমার সাথে সামঞ্জস্যপূর্ণ। Vertex AI OpenAPI স্কিমার সীমিত সমর্থন প্রদান করে।
নিম্নলিখিত বৈশিষ্ট্যগুলি সমর্থিত:
type
,nullable
,required
,format
,description
,properties
,items
,enum
।নিম্নলিখিত বৈশিষ্ট্যগুলি সমর্থিত নয় :
default
,optional
,maximum
,oneOf
.
ডিফল্টরূপে, Vertex AI in Firebase জন্য, আপনি
optionalProperties
অ্যারেতে ঐচ্ছিক হিসাবে উল্লেখ না করলে সমস্ত ক্ষেত্রকে প্রয়োজনীয় বলে মনে করা হয়। এই ঐচ্ছিক ক্ষেত্রগুলির জন্য, মডেলটি ক্ষেত্রগুলি পূরণ করতে পারে বা সেগুলি এড়িয়ে যেতে পারে৷ মনে রাখবেন যে এটি Vertex AI Gemini API এর ডিফল্ট আচরণের বিপরীত।
নাম এবং বর্ণনার টিপস সহ ফাংশন ঘোষণার সাথে সম্পর্কিত সর্বোত্তম অনুশীলনের জন্য, Google Cloud ডকুমেন্টেশনে সেরা অনুশীলনগুলি দেখুন।
এখানে আপনি কিভাবে একটি ফাংশন ঘোষণা লিখতে পারেন:
ধাপ 3 : মডেল শুরু করার সময় ফাংশন ঘোষণা প্রদান করুন
toolConfig
অনুরোধের সাথে সর্বাধিক সংখ্যক ফাংশন ঘোষণা প্রদান করতে পারেন । ফাংশন কলিং মোড )।
কীভাবে একটি মিথুন মডেল এবং ঐচ্ছিকভাবে আপনার ব্যবহারের ক্ষেত্রে এবং অ্যাপের জন্য উপযুক্ত একটি অবস্থান চয়ন করবেন তা জানুন।
ধাপ 4 : বাহ্যিক API চালু করতে ফাংশনটি কল করুন
যদি মডেল সিদ্ধান্ত নেয় যে fetchWeather
ফাংশন প্রকৃতপক্ষে এটিকে একটি চূড়ান্ত প্রতিক্রিয়া তৈরি করতে সাহায্য করতে পারে, তাহলে আপনার অ্যাপটিকে মডেলের দেওয়া কাঠামোগত ইনপুট ডেটা ব্যবহার করে সেই ফাংশনে প্রকৃত কল করতে হবে।
যেহেতু মডেল এবং অ্যাপের মধ্যে তথ্যগুলিকে সামনের দিকে পাস করা দরকার, তাই ফাংশন কলিং ব্যবহার করার প্রস্তাবিত উপায় হল মাল্টি-টার্ন চ্যাট ইন্টারফেসের মাধ্যমে৷
নিম্নলিখিত কোড স্নিপেট দেখায় কিভাবে আপনার অ্যাপকে বলা হয়েছে যে মডেলটি fetchWeather
ফাংশন ব্যবহার করতে চায়। এটি আরও দেখায় যে মডেলটি ফাংশন কলের জন্য প্রয়োজনীয় ইনপুট প্যারামিটার মান প্রদান করেছে (এবং এর অন্তর্নিহিত বহিরাগত API)।
এই উদাহরণে, আগত অনুরোধে প্রম্পট রয়েছে What was the weather in Boston on October 17, 2024?
. এই প্রম্পট থেকে, মডেলটি ইনপুট প্যারামিটারগুলি অনুমান করেছে যা fetchWeather
ফাংশনের জন্য প্রয়োজনীয় (অর্থাৎ, city
, state
, এবং date
)।
ধাপ 5 : চূড়ান্ত প্রতিক্রিয়া তৈরি করতে মডেলটিতে ফাংশনের আউটপুট প্রদান করুন
fetchWeather
ফাংশন আবহাওয়ার তথ্য ফেরত দেওয়ার পরে, আপনার অ্যাপটিকে এটিকে মডেলে ফেরত দিতে হবে।
তারপরে, মডেলটি তার চূড়ান্ত প্রক্রিয়াকরণ করে, এবং একটি চূড়ান্ত প্রাকৃতিক-ভাষা প্রতিক্রিয়া তৈরি করে যেমন: On October 17, 2024 in Boston, it was 38 degrees Fahrenheit with partly cloudy skies.
অতিরিক্ত আচরণ এবং বিকল্প
এখানে ফাংশন কলিংয়ের জন্য কিছু অতিরিক্ত আচরণ রয়েছে যা আপনাকে আপনার কোড এবং বিকল্পগুলিতে মিটমাট করতে হবে যা আপনি নিয়ন্ত্রণ করতে পারেন।
মডেল আবার একটি ফাংশন বা অন্য ফাংশন কল করতে বলতে পারে.
যদি একটি ফাংশন কলের প্রতিক্রিয়া মডেলটির চূড়ান্ত প্রতিক্রিয়া তৈরি করার জন্য অপর্যাপ্ত হয়, তাহলে মডেলটি একটি অতিরিক্ত ফাংশন কলের জন্য জিজ্ঞাসা করতে পারে বা সম্পূর্ণ ভিন্ন ফাংশনে একটি কলের জন্য জিজ্ঞাসা করতে পারে। পরবর্তীটি শুধুমাত্র তখনই ঘটতে পারে যখন আপনি আপনার ফাংশন ঘোষণা তালিকায় মডেলটিতে একাধিক ফাংশন প্রদান করেন।
মডেল অতিরিক্ত ফাংশন কল জন্য জিজ্ঞাসা করতে পারে যে আপনার অ্যাপ্লিকেশন মিটমাট করা প্রয়োজন.
মডেল একই সময়ে একাধিক ফাংশন কল করতে বলতে পারে.
আপনি মডেলকে আপনার ফাংশন ঘোষণা তালিকায় 128টি ফাংশন প্রদান করতে পারেন। এটি দেওয়া, মডেলটি সিদ্ধান্ত নিতে পারে যে এটির চূড়ান্ত প্রতিক্রিয়া তৈরি করতে সহায়তা করার জন্য একাধিক ফাংশন প্রয়োজন। এবং এটি একই সময়ে এই ফাংশনগুলির কয়েকটিকে কল করার সিদ্ধান্ত নিতে পারে – এটিকে সমান্তরাল ফাংশন কলিং বলা হয়।
আপনার অ্যাপ্লিকেশানটিকে মানিয়ে নিতে হবে যে মডেলটি একই সময়ে চলমান একাধিক ফাংশনের জন্য জিজ্ঞাসা করতে পারে এবং আপনার অ্যাপটিকে ফাংশন থেকে মডেলে সমস্ত প্রতিক্রিয়া প্রদান করতে হবে৷
প্যারালাল ফাংশন কলিং জেমিনি 1.5 প্রো এবং জেমিনি 1.5 ফ্ল্যাশ দ্বারা সমর্থিত।
আপনি নিয়ন্ত্রণ করতে পারেন কিভাবে এবং যদি মডেল ফাংশন কল করতে বলতে পারে।
প্রদত্ত ফাংশন ঘোষণাগুলি কীভাবে এবং মডেলটি ব্যবহার করা উচিত সে সম্পর্কে আপনি কিছু সীমাবদ্ধতা রাখতে পারেন। একে ফাংশন কলিং মোড সেটিং বলা হয়। এখানে কিছু উদাহরণ আছে:
মডেলটিকে একটি তাত্ক্ষণিক প্রাকৃতিক ভাষা প্রতিক্রিয়া এবং একটি ফাংশন কলের মধ্যে বেছে নেওয়ার অনুমতি দেওয়ার পরিবর্তে, আপনি এটিকে সর্বদা ফাংশন কল ব্যবহার করতে বাধ্য করতে পারেন। একে জোর করে ফাংশন কলিং বলা হয়।
আপনি যদি একাধিক ফাংশন ঘোষণা প্রদান করেন, আপনি মডেলটিকে শুধুমাত্র প্রদত্ত ফাংশনগুলির একটি উপসেট ব্যবহার করার জন্য সীমাবদ্ধ করতে পারেন।
আপনি প্রম্পট এবং ফাংশন ঘোষণার সাথে একটি টুল কনফিগারেশন ( toolConfig
) যোগ করে এই সীমাবদ্ধতাগুলি (বা মোড) বাস্তবায়ন করেন। টুল কনফিগারেশনে, আপনি নিম্নলিখিত মোডগুলির মধ্যে একটি নির্দিষ্ট করতে পারেন। সবচেয়ে দরকারী মোড হল ANY
।
মোড | বর্ণনা |
---|---|
AUTO | ডিফল্ট মডেল আচরণ. মডেল একটি ফাংশন কল বা একটি প্রাকৃতিক ভাষা প্রতিক্রিয়া ব্যবহার করার সিদ্ধান্ত নেয়। |
ANY | মডেলটিকে অবশ্যই ফাংশন কল ব্যবহার করতে হবে ("ফোর্সড ফাংশন কলিং")। মডেলটিকে ফাংশনের একটি উপসেটে সীমাবদ্ধ করতে, allowedFunctionNames অনুমোদিত ফাংশনের নামগুলি নির্দিষ্ট করুন। |
NONE | মডেলটি অবশ্যই ফাংশন কল ব্যবহার করবে না। এই আচরণটি কোনও যুক্ত ফাংশন ঘোষণা ছাড়াই একটি মডেল অনুরোধের সমতুল্য। |
ফাংশন কলিং মোড জেমিনি 1.5 প্রো এবং জেমিনি 1.5 ফ্ল্যাশ দ্বারা সমর্থিত।
আপনি আর কি করতে পারেন?
Gemini API এর অন্যান্য ক্ষমতা ব্যবহার করে দেখুন
- মাল্টি-টার্ন কথোপকথন তৈরি করুন (চ্যাট) ।
- শুধুমাত্র পাঠ্য প্রম্পট থেকে পাঠ্য তৈরি করুন।
- মাল্টিমোডাল প্রম্পট থেকে পাঠ্য তৈরি করুন (পাঠ্য, চিত্র, পিডিএফ, ভিডিও এবং অডিও সহ)।
বিষয়বস্তু তৈরি নিয়ন্ত্রণ কিভাবে শিখুন
- সর্বোত্তম অনুশীলন, কৌশল এবং উদাহরণ প্রম্পট সহ প্রম্পট ডিজাইন বুঝুন ।
- তাপমাত্রা এবং সর্বোচ্চ আউটপুট টোকেন মত মডেল প্যারামিটার কনফিগার করুন ।
- ক্ষতিকারক বলে বিবেচিত প্রতিক্রিয়া পাওয়ার সম্ভাবনা সামঞ্জস্য করতে নিরাপত্তা সেটিংস ব্যবহার করুন ।
মিথুন মডেল সম্পর্কে আরও জানুন
বিভিন্ন ব্যবহারের ক্ষেত্রে উপলব্ধ মডেল এবং তাদের কোটা এবং মূল্য সম্পর্কে জানুন।Vertex AI in Firebase এর সাথে আপনার অভিজ্ঞতা সম্পর্কে মতামত দিন