প্রকারভেদ

প্রকারগুলি আপনাকে ব্যবহারকারীর ইনপুট থেকে কাঠামোগত ডেটা বের করতে সহকারী NLU (প্রাকৃতিক ভাষা বোঝার) ইঞ্জিনকে কনফিগার করতে দেয়। আপনি নিম্নলিখিত পরিস্থিতিতে প্রকারগুলি ব্যবহার করতে পারেন:

  • ইন্টেন্টে , আপনি স্লট তৈরি করতে টাইপ সহ প্রশিক্ষণ বাক্যাংশ টীকা করতে পারেন। যখন ব্যবহারকারীরা এমন কিছু বলে যা একটি স্লটের সাথে মেলে, তখন NLU ইঞ্জিন এটিকে টাইপ করা প্যারামিটার হিসাবে বের করে, যাতে আপনি একটি দৃশ্যে এটি প্রক্রিয়া করতে পারেন।

  • একটি দৃশ্যের স্লট ভরাট পর্যায়ে, আপনি একাধিক স্লট নির্দিষ্ট করতে পারেন যা ব্যবহারকারীরা স্থানান্তর করতে বা দৃশ্য থেকে বেরিয়ে যাওয়ার আগে প্রদান করতে চান৷

  • একটি দৃশ্যের অবস্থার পর্যায়ে, আপনি একটি প্যারামিটারের একটি নির্দিষ্ট মান আছে কিনা যা একটি প্রকারের মধ্যে সংজ্ঞায়িত করা হয়েছে তার উপর ভিত্তি করে যুক্তি দিতে পারেন।

কাস্টম প্রকার

কাস্টম প্রকারগুলি আপনাকে আপনার নিজস্ব টাইপ স্পেসিফিকেশন তৈরি করতে দেয় যাতে একটি একক কীতে মানগুলির একটি সেট বরাদ্দ করার জন্য NLU-কে অবহিত করা যায়। আপনি বিভিন্ন উপায়ে প্রকারগুলি নির্দিষ্ট করতে পারেন:

  • শব্দ এবং প্রতিশব্দ আপনাকে একটি একক কীতে একাধিক মান ম্যাপ করতে দেয়, যাকে একটি এন্ট্রি বলা হয়। আপনার টাইপ এক বা একাধিক এন্ট্রি থাকতে পারে. আপনি যদি এই বিকল্পটি বেছে নেন, তাহলে আপনি নিম্নলিখিত NLU সেটিংসও সক্ষম করতে পারেন:
    • অস্পষ্ট ম্যাচিং সক্ষম করুন - এই বৈশিষ্ট্যটি একাধিক শব্দের সাথে এন্ট্রিগুলিকে মিল করার অনুমতি দেয়, এমনকি যখন শব্দগুলি একটি ভিন্ন ক্রমে বলা হয়।
    • অজানা মান গ্রহণ করুন - আপনি যখন সমস্ত সম্ভাব্য মান নির্দিষ্ট করতে পারবেন না, তখন ভাষা প্রসেসর আশেপাশের ইনপুট এবং অভিপ্রায় প্রশিক্ষণ ডেটার উপর ভিত্তি করে অজানা শব্দ বা বাক্যাংশ গ্রহণ করতে পারে, যেমন আইটেমগুলি যেগুলি একটি মুদির তালিকায় যোগ করা যেতে পারে৷
  • রেগুলার এক্সপ্রেশন টাইপকে Google-এর RE2 স্ট্যান্ডার্ডের উপর ভিত্তি করে রেগুলার এক্সপ্রেশন প্যাটার্ন ব্যবহার করে মানগুলির সাথে মেলাতে দেয়।
  • বিনামূল্যের ফর্ম টেক্সট টাইপকে ব্যবহারকারী যা বলে তা মেলে। এই প্রকারের সাথে একটি উদ্দেশ্য টীকা করা আপনাকে একটি প্যারামিটার হিসাবে সমস্ত ইনপুট ব্যবহার করতে দেয় যা আপনি আপনার নিজের NLU এ পাইপ করতে পারেন।

সিস্টেমের ধরন

সিস্টেমের প্রকারগুলি আপনাকে সিস্টেম-প্রদত্ত প্রশিক্ষণ ডেটা এবং মানগুলি ব্যবহার করে ব্যবহারকারীর ইনপুট থেকে সুপরিচিত ডেটা টীকা এবং বের করতে দেয়। নিম্নলিখিত সিস্টেম প্রকারগুলি সমর্থিত:

টাইপ বর্ণনা
actions.type.DateTime ব্যবহারকারীর ডিভাইস সেটিংসের উপর ভিত্তি করে তারিখ, সময় এবং সময় অঞ্চল রয়েছে৷ স্লট পূরণ এবং প্রশিক্ষণ বাক্যাংশ টীকা জন্য উপলব্ধ.
actions.type.Date শুধুমাত্র তারিখ রয়েছে। শুধুমাত্র স্লট ভর্তি জন্য উপলব্ধ.
actions.type.Time শুধুমাত্র সময় ধারণ করে। শুধুমাত্র স্লট ভর্তি জন্য উপলব্ধ.
actions.type.Number Number ধরনটি অর্ডিনাল এবং কার্ডিনাল সংখ্যার সাথে মিলে যায়।

DateTime , Date , এবং Time ব্যবহার

আপনি কোথায় টাইপ ব্যবহার করেন এবং টাইপের সাথে মেলে এমন ব্যবহারকারীর ইনপুটগুলির উপর নির্ভর করে এই প্রকারগুলি ভিন্নভাবে আচরণ করে৷

উদ্দেশ্য সঙ্গে ব্যবহার

ইন্টেন্টে প্রশিক্ষণ বাক্যাংশ টীকা করা শুধুমাত্র DateTime প্রকার সমর্থন করে। ব্যবহারকারীর ইনপুট একটি সম্পূর্ণ DateTime মান মেলে প্রয়োজন নেই. উদাহরণস্বরূপ, যদি একজন ব্যবহারকারী শুধুমাত্র বছর প্রদান করে, সেশন প্যারামিটারটি এইরকম দেখতে পারে:

"date_time": {
  "year": 2019
}

স্লট ভর্তি সঙ্গে ব্যবহার

স্লট ফিলিং DateTime , Date এবং Time সমর্থন করে।

  • যদি স্লটের ধরনটি DateTime হয়, তাহলে সহকারী একটি সম্পূর্ণ মান প্রদান না করা পর্যন্ত ব্যবহারকারীকে অনুরোধ করে।
  • যদি স্লটের ধরনটি Date হয় তবে সহকারী ব্যবহারকারীকে একটি তারিখের মান প্রদান না করা পর্যন্ত অনুরোধ করে। সংগ্রহ করা হলে, আপনি যে প্যারামিটারটি পান তা হল 00:00 সেট করা সময় সহ একটি সম্পূর্ণ DateTime সময়।
  • যদি স্লটের ধরনটি Time হয়, তাহলে সহকারী ব্যবহারকারীকে অনুরোধ করে যতক্ষণ না সময় মান প্রদান করা হয়। সংগ্রহ করা হলে, আপনার প্রাপ্ত প্যারামিটারটি বর্তমান তারিখে সেট করা তারিখ সহ একটি সম্পূর্ণ DateTime অবজেক্ট।

উদাহরণস্বরূপ, ধরুন লস অ্যাঞ্জেলেসের একজন ব্যবহারকারী বলেছেন, "হে গুগল, 15 জানুয়ারী, 2024 রাত 8 টায় একটি রিমাইন্ডার তৈরি করুন।" যখন DateTime একটি স্লট ভর্তি প্রক্রিয়ার অংশ হিসাবে বের করা হয়, তখন সম্পূর্ণ প্যারামিটারটি এইরকম দেখতে পারে:

"date_time": {
  "day": 15,
  "hours": 20,
  "minutes": 0,
  "month": 1,
  "nanos": 0,
  "seconds": 0,
  "time_zone": {
    "id": "America/Los_Angeles"
  },
  "year": 2024
}

শর্ত সহ ব্যবহার করা

শর্তগুলি শুধুমাত্র সংখ্যা এবং স্ট্রিং ব্যবহার করার অনুমতি দেয়, তাই শীর্ষ স্তরের DateTime পরামিতি ব্যবহার করলে শর্তের জন্য একটি মিথ্যা ফলাফল হয়৷ উদাহরণ স্বরূপ:

  • $session.params.my_dateTime.day > 5 একটি বৈধ শর্ত, কারণ day মান একটি সংখ্যা এবং এটি সমর্থিত।
  • $session.params.my_dateTime > "01-01-2010" একটি অবৈধ শর্ত, কারণ শীর্ষ স্তরের 'ডেটটাইম' বস্তুটি একটি সংখ্যা বা স্ট্রিং নয়৷

রানটাইম টাইপ ওভাররাইড করে

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

কীভাবে টাইপ ওভাররাইড তৈরি করবেন সে সম্পর্কে আরও তথ্যের জন্য ওয়েবহুক গাইড দেখুন।