জেমার সাথে ফাংশন কলিং

জেমার মতো একটি জেনারেটিভ কৃত্রিম বুদ্ধিমত্তা (AI) মডেল ব্যবহার করার সময়, আপনি কাজগুলি সম্পূর্ণ করতে বা প্রশ্নের উত্তর দেওয়ার জন্য প্রোগ্রামিং ইন্টারফেসগুলি পরিচালনা করতে মডেলটি ব্যবহার করতে চাইতে পারেন। একটি প্রোগ্রামিং ইন্টারফেস সংজ্ঞায়িত করে একটি মডেল নির্দেশ করা এবং তারপর সেই ইন্টারফেসটি ব্যবহার করে একটি অনুরোধ করাকে ফাংশন কলিং বলা হয়।

Gemma একটি টুল নির্দিষ্ট টোকেন আউটপুট না. আউটপুটের গঠন আপনার প্রম্পটেড ফাংশন আউটপুট স্পেসিফিকেশনের সাথে মেলে কিনা তা পরীক্ষা করে আপনার ফ্রেমওয়ার্ককে একটি টুল কল সনাক্ত করতে হবে।

আপনি বেশ কয়েকটি অ্যাপ্লিকেশনের জন্য ফাংশন কলিং ব্যবহার করতে পারেন:

  • প্রোগ্রামিং এপিআইয়ের জন্য একটি প্রাকৃতিক ভাষা ইন্টারফেস তৈরি করুন যাতে অ-প্রোগ্রামাররা কোডিং ছাড়াই একটি প্রোগ্রাম্যাটিক ইন্টারফেস পরিচালনা করতে পারে।
  • একটি এআই এজেন্ট ওয়ার্কফ্লো অংশ হিসাবে প্রোগ্রামিং কল তৈরি করুন

Gemma 3-এ ফাংশন কলিং সমর্থিত, তবে ফাংশন কলিং কৌশলটি জেমার পূর্ববর্তী সংস্করণগুলির সাথে ব্যবহার করা যেতে পারে। এই নির্দেশিকাটি কীভাবে ফাংশন কলিং ব্যবহার করে জেমা প্রম্পট তৈরি করতে হয় তার নির্দেশাবলী প্রদান করে। আমরা সেরা পারফরম্যান্সের জন্য Gemma3 27B এবং সুষম কর্মক্ষমতা এবং লেটেন্সির জন্য Gemma3 12B সুপারিশ করি।

প্রোগ্রামিং ফাংশন কল

আপনি আউটপুট বিন্যাস নির্দিষ্ট করে এবং উপলব্ধ ফাংশনগুলিকে সংজ্ঞায়িত করে এমন নির্দেশাবলী প্রদান করে এমন একটি প্রম্পট তৈরি করে Gemma-এর সাথে ফাংশন কলিং ব্যবহার করতে পারেন।

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

নিম্নলিখিত প্রম্পটিং নমুনা একটি ফাংশন সংজ্ঞা ব্লক দেখায়, একটি ফাংশন কল সিনট্যাক্স সহ, এবং মডেল থেকে একটি ফাংশন কল আউটপুট। নিম্নলিখিত উদাহরণ প্রম্পট একটি পণ্য ক্যাটালগের জন্য একটি প্রোগ্রামিং ইন্টারফেসের সাথে ব্যবহার করা বোঝানো হয়:

You have access to functions. If you decide to invoke any of the function(s),
 you MUST put it in the format of
[func_name1(params_name1=params_value1, params_name2=params_value2...), func_name2(params)]

You SHOULD NOT include any other text in the response if you call a function
[
  {
    "name": "get_product_name_by_PID",
    "description": "Finds the name of a product by its Product ID",
    "parameters": {
      "type": "object",
      "properties": {
        "PID": {
          "type": "string"
        }
      },
      "required": [
        "PID"
      ]
    }
  }
]
While browsing the product catalog, I came across a product that piqued my
interest. The product ID is 807ZPKBL9V. Can you help me find the name of this
product?

এই প্রম্পটটি নিম্নলিখিত প্রতিক্রিয়া তৈরি করবে:

[get_product_name_by_PID(PID="807ZPKBL9V")]

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

You have access to functions. If you decide to invoke any of the function(s),
you MUST put it in the format of
{"name": function name, "parameters": dictionary of argument name and its value}

You SHOULD NOT include any other text in the response if you call a function
[
  {
    "name": "get_product_name_by_PID",
    "description": "Finds the name of a product by its Product ID",
    "parameters": {
      "type": "object",
      "properties": {
        "PID": {
          "type": "string"
        }
      },
      "required": [
        "PID"
      ]
    }
  }
]
While browsing the product catalog, I came across a product that piqued my
interest. The product ID is 807ZPKBL9V. Can you help me find the name of this
product?

এই প্রম্পটটি নিম্নলিখিত প্রতিক্রিয়া তৈরি করবে:

{"name": "get_product_name_by_PID", "parameters": {"PID": "807ZPKBL9V"}}

ফাংশন কলিং প্রম্পটের উপাদান

জেমা মডেলের সাথে ফাংশন কলিং ব্যবহার করার সময়, আপনার মডেলের প্রম্পট এই নির্দিষ্ট ক্রম এবং কাঠামো অনুসরণ করা উচিত:

  1. ফাংশন কলিং সেটআপ
  2. ফাংশন সংজ্ঞা

নিম্নলিখিত বিভাগগুলি এই প্রম্পটিং উপাদানগুলির প্রতিটি সম্পর্কে আরও বিশদ প্রদান করে।

ফাংশন কলিং সেটআপ

ফাংশন কলিং প্রম্পটের সেটআপ বিভাগটি মডেলের সামগ্রিক প্রত্যাশিত আচরণ সেট করে। আপনি এই বিভাগে মডেলের আচরণের জন্য অতিরিক্ত, সাধারণ নির্দেশাবলী যোগ করতে পারেন, যেমন উল্লেখ করা যে আউটপুটটি একটি print বা console.log ফাংশন ব্যবহার করে প্রদর্শিত হবে। কোড সিনট্যাক্স নির্দেশ করতে মার্কডাউন-স্টাইলের একক ব্যাকটিক্স ( func_name ) ব্যবহার করুন।

You have access to functions. If you decide to invoke any of the function(s),
you MUST put it in the format of
{"name": function name, "parameters": dictionary of argument name and its value}

You SHOULD NOT include any other text in the response if you call a function

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

ফাংশন সংজ্ঞা

প্রম্পটের সংজ্ঞা বিভাগটি প্রতিটির জন্য একটি বিবরণ সহ ফাংশনের নাম, পরামিতি এবং আউটপুট প্রদান করে। আপনি প্রদর্শিত বিন্যাসে ফাংশন ঘোষণা করতে পারেন. একক বা একাধিক ফাংশন ফাংশন ঘোষণা ব্লকের মধ্যে সংজ্ঞায়িত করা যেতে পারে।

[
  {
    "name": "get_product_name_by_PID",
    "description": "Finds the name of a product by its Product ID",
    "parameters": {
      "type": "object",
      "properties": {
        "PID": {
          "type": "string"
        }
      },
      "required": [
        "PID"
      ]
    }
  },
  {
    "name": "get_product_price_by_PID",
    "description": "Finds the price of a product by its Product ID",
    "parameters": {
      "type": "object",
      "properties": {
        "PID": {
          "type": "string"
        }
      },
      "required": [
        "PID"
      ]
    }
  }
]

পরবর্তী পদক্ষেপ

জেমা মডেলগুলি স্থাপন এবং চালানোর উপায়গুলি দেখুন: