একটি ডায়ালগফ্লো-চালিত RBM এজেন্ট তৈরি করুন (উন্নত)

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

আপনি এই কোডল্যাবে কি তৈরি করতে যাচ্ছেন?

  • একটি ডায়ালগফ্লো এজেন্ট যা একটি RBM এজেন্টের কথোপকথনকে ক্ষমতা দেয়৷
  • একটি কাল্পনিক বাইকের দোকানের জন্য একটি কথোপকথন ইন্টারফেস যা ব্যবহারকারীদের বাইকের দোকান সম্পর্কে তথ্য জানাতে দেয় এবং তাদের বাইক ঠিক করতে বা পরিষেবা দেওয়ার জন্য অ্যাপয়েন্টমেন্ট সেট করতে দেয়

আপনি কি শিখবেন

  • একটি কথোপকথন ইন্টারফেস তৈরি করতে ডায়ালগফ্লো-এর তিনটি প্রধান নির্মাণ (ইন্টেন্ট, সত্তা এবং প্রসঙ্গ) কীভাবে ব্যবহার করবেন
  • ডায়ালগফ্লো-এর পূর্ণতা এবং ইনলাইন এডিটর (Firebase-এর জন্য ক্লাউড ফাংশন দ্বারা চালিত) ব্যবহার করে কীভাবে আপনার কথোপকথনমূলক ইন্টারফেসকে আপনার নিজস্ব পরিষেবা এবং API-এর সাথে সংযুক্ত করবেন
  • ব্যবহারকারীদের জন্য একটি সমৃদ্ধ RBM অভিজ্ঞতা তৈরি করার জন্য ডায়ালগফ্লো থেকে কীভাবে RBM প্রতিক্রিয়ার ধরন তৈরি করবেন

আপনি কি প্রয়োজন হবে

  • একটি Google অ্যাকাউন্ট

আপনার প্রথম এজেন্ট তৈরি করুন এবং জিজ্ঞাসা করুন

সময়কাল: 10:00

আপনার প্রথম ডায়ালগফ্লো এজেন্ট তৈরি করুন

একটি ডায়ালগফ্লো এজেন্ট তৈরি করতে:

  1. একটি নতুন ট্যাব খুলুন এবং ডায়ালগফ্লোতে সাইন ইন করুন
  2. বাম নেভিগেশন এজেন্ট তৈরি করুন ক্লিক করুন.

  3. আপনার এজেন্টের নামের জন্য "CodelabRBMBikeShop" লিখুন, ডিফল্ট ভাষা হিসাবে "ইংরেজি" এবং আপনার টাইমজোনে ডিফল্ট টাইমজোন সেট করুন৷ তারপর Create এ ক্লিক করুন।

ডায়ালগফ্লো কনসোল

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

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

ডানদিকে ডায়ালগফ্লো সিমুলেটর রয়েছে। এটি আপনাকে বার্তা বলার বা টাইপ করে আপনার এজেন্টকে চেষ্টা করতে দেয়।

আপনার এজেন্ট জিজ্ঞাসা

ডায়ালগফ্লো এজেন্টগুলিকে NLU (প্রাকৃতিক ভাষা বোঝার) মডিউল হিসাবে সর্বোত্তমভাবে বর্ণনা করা হয়। স্বাভাবিক ব্যবহারকারীর অনুরোধগুলিকে কার্যযোগ্য ডেটাতে রূপান্তর করতে এগুলি আপনার অ্যাপ, পণ্য বা পরিষেবাতে অন্তর্ভুক্ত করা যেতে পারে।

আপনার এজেন্ট চেষ্টা করার সময়! ডানদিকের সিমুলেটরে, টেক্সট ফিল্ডে ক্লিক করুন যেখানে লেখা আছে এখনই চেষ্টা করুন , "হাই" টাইপ করুন এবং এন্টার টিপুন।

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

একটি RBM এজেন্ট তৈরি করুন

বিজনেস কমিউনিকেশনস ডেভেলপার কনসোলে সাইন ইন করুন, তারপর এজেন্ট তৈরি করুন ক্লিক করুন।

নামের ক্ষেত্রে, "আপনার নামের বাইক শপ" লিখুন (যেমন "সিনের বাইক এজেন্ট"), একটি অঞ্চল নির্বাচন করুন এবং এজেন্ট তৈরি করুন ক্লিক করুন।

আপনার RBM এজেন্টকে Dialogflow-এর সাথে কানেক্ট করুন

আপনার RBM এজেন্ট তৈরি হওয়ার পর, এজেন্টের ওভারভিউ পৃষ্ঠা দেখতে এজেন্টে ক্লিক করুন। বাম নেভিগেশনে ইন্টিগ্রেশন লিঙ্কে ক্লিক করুন।

ডিফল্টরূপে, ব্যবহারকারীর বার্তা পরিচালনা করতে RBM এজেন্ট Google Cloud Pub/Sub ব্যবহার করে। আপনার RBM এজেন্টকে আপনি আগে তৈরি করা Dialogflow এজেন্টের সাথে সংযোগ করতে, Dialogflow ইন্টিগ্রেশনে ক্লিক করুন।

ডায়ালগে, বিদ্যমান মডেল কানেক্ট করুন ক্লিক করুন। আপনার ডায়ালগফ্লো এজেন্টকে কল করার জন্য আপনার RBM এজেন্টকে অনুমতি দেওয়ার জন্য নির্দেশাবলী অনুসরণ করুন, তারপর পরবর্তী ক্লিক করুন।

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

এটিতে ক্লিক করা আপনাকে মডেলের সেটিংসে নিয়ে যাবে। GOOGLE PROJECT-এর অধীনে, প্রজেক্ট আইডি খুঁজুন এবং কপি করুন।

বিজনেস কমিউনিকেশনস ডেভেলপার কনসোল খুলে আপনার ট্যাবে ফিরে যান, ডায়ালগে প্রোজেক্ট আইডি পেস্ট করুন, তারপর ইন্টিগ্রেশন শুরু করুন-এ ক্লিক করুন।

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

আপনার এজেন্টের কাছে আসা সমস্ত বার্তা এখন CodelabRBMBikeShop ডায়ালগফ্লো এজেন্ট দ্বারা পরিচালনা করা হচ্ছে।

আপনার পরীক্ষা ডিভাইস আমন্ত্রণ জানান এবং একটি বার্তা পাঠান

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

বিজনেস কমিউনিকেশনস ডেভেলপার কনসোল থেকে, বাম নেভিগেশনে ডিভাইসে ক্লিক করুন। ফর্মে, আপনার ডিভাইসের সম্পূর্ণ ফোন নম্বর E.164 ফর্ম্যাটে লিখুন (উদাহরণস্বরূপ, +12223334444) এবং যোগ করুন ক্লিক করুন

আপনার ডিভাইসে, আপনি পরীক্ষার আমন্ত্রণ পাবেন। আমাকে একজন পরীক্ষক করুন আলতো চাপুন।

আপনার ব্রাউজারে, ডিভাইসের তালিকায় আপনার ডিভাইসটি খুঁজুন এবং আপনার ডিভাইসটিকে একটি পরীক্ষামূলক বার্তা পাঠান। আপনি যদি আপনার RBM এজেন্টের কাছ থেকে আপনার ডিভাইসে একটি বার্তা পেয়ে থাকেন, তাহলে আপনি এই কোডল্যাবটি চালিয়ে যেতে প্রস্তুত।

আপনার স্বাগত অভিপ্রায় তৈরি

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

ডিফল্ট স্বাগতম অভিপ্রায়ে RBM প্রতিক্রিয়া যোগ করে শুরু করা যাক যাতে Dialogflow আপনার RBM এজেন্টের সাথে এটি ব্যবহার করতে পারে। প্রথমে ডায়ালগফ্লো খোলা আছে এমন ব্রাউজার ট্যাবে নেভিগেট করুন। ডিফল্ট স্বাগতম অভিপ্রায় ক্লিক করুন, প্রতিক্রিয়া বিভাগে স্ক্রোল করুন, প্রতিক্রিয়া প্রকারের তালিকায় + ক্লিক করুন এবং RCS বিজনেস মেসেজিং (RBM) নির্বাচন করুন।

প্রতিক্রিয়া যোগ করুন ক্লিক করুন, তারপর সহজ প্রতিক্রিয়া নির্বাচন করুন। সহজ প্রতিক্রিয়ার জন্য পাঠ্য ক্ষেত্রে লিখুন "হাই, হোগার্থের বাইকের দোকানে স্বাগতম। আমি কীভাবে সাহায্য করতে পারি?" (আপনার নাম দিয়ে Hogarth প্রতিস্থাপন করুন), তারপর Save এ ক্লিক করুন।

একটি কথোপকথন শুরু

এখন আপনার একটি স্বাগত অভিপ্রায় কনফিগার করা হয়েছে, আপনার পরীক্ষা ডিভাইসে ফিরে যান এবং "হাই" বার্তা পাঠান৷ এই বার্তাটি ডিফল্ট স্বাগত অভিপ্রায় ট্রিগার করে, এবং আপনি নীচের চিত্রের মতো কিছু দেখতে পাবেন৷

আপনার স্বাগত অভিপ্রায় আপডেট করুন

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

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

ডিফল্ট ওয়েলকাম ইন্টেন্টের , প্রতিক্রিয়া বিভাগে, RCS বিজনেস মেসেজিং (RBM) ট্যাবটি নির্বাচন করুন। ট্র্যাশ ক্যান আইকনে ক্লিক করে বিদ্যমান সহজ প্রতিক্রিয়া সরান। এরপরে, প্রতিক্রিয়া যোগ করুন ক্লিক করুন এবং স্বতন্ত্র রিচ কার্ড নির্বাচন করুন।

স্বতন্ত্র রিচ কার্ড ফর্মে, নিম্নলিখিত লিখুন:

  • কার্ডের শিরোনাম : হাই, হোগার্থের বাইকের দোকানে স্বাগতম।
  • কার্ডের বিবরণ : আমি কিভাবে আপনাকে সাহায্য করতে পারি? নীচের বিকল্পগুলি থেকে নির্বাচন করুন:
  • কার্ড ওরিয়েন্টেশন নির্বাচন করুন : উল্লম্ব
  • ছবি/ভিডিও URL : https://storage.googleapis.com/df-rbm-codelab/bike-shop.jpg
  • মিডিয়া উচ্চতা নির্বাচন করুন : মাঝারি

পরামর্শ যোগ করুন ক্লিক করুন এবং নিম্নলিখিত লিখুন:

  • সাজেশন টেক্সট : আপনার সময় কি?
  • সাজেশন পোস্টব্যাক : reply_hours

সাজেশন যোগ করুন ক্লিক করে এবং নিম্নলিখিতটি প্রবেশ করে অন্য একটি পরামর্শ যোগ করুন:

  • সাজেশন টেক্সট : একটি অ্যাপয়েন্টমেন্ট করুন
  • সাজেশন পোস্টব্যাক : রিপ্লাই_অ্যাপয়েন্টমেন্ট

সংরক্ষণ করুন ক্লিক করুন.

চেষ্টা কর!

মডেলটি একবার "এজেন্ট প্রশিক্ষণ সম্পূর্ণ" বলে, আপনার ডিভাইসে ফিরে যান এবং আপনার এজেন্টকে "হাই" বার্তা পাঠান৷ আপনি এখন ডিজাইন করা স্বতন্ত্র রিচ কার্ডটি দেখতে পাবেন।

আলতো চাপার চেষ্টা করুন আপনার সময় কি? . লক্ষ্য করুন যে ডিফল্ট ফলব্যাক ইন্টেন্ট ট্রিগার হয়ে গেছে। এর কারণ হল আপনার ডায়ালগফ্লো এজেন্ট এই পরামর্শের জন্য কনফিগার করা পোস্টব্যাক ডেটা কীভাবে পরিচালনা করবেন তা জানেন না, "reply_hours"৷

এর এটা ঠিক করা যাক.

আপনার ঘন্টা অভিপ্রায় তৈরি করা

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

এই সমস্ত প্রশ্নগুলি অনন্য কিন্তু একই উদ্দেশ্য: আমাদের বাইকের দোকান কখন খোলা থাকে সে সম্পর্কে তথ্য পেতে৷

এই প্রশ্নটি কভার করতে, একটি "ঘন্টা" অভিপ্রায় তৈরি করুন:

  1. বাম নেভিগেশনে, Intents এর পাশে + এ ক্লিক করুন।
  2. অভিপ্রায় নামের জন্য, "ঘন্টা" লিখুন।
  3. প্রশিক্ষণ বাক্যাংশের অধীনে, ব্যবহারকারীর অভিব্যক্তি যুক্ত করুন ক্লিক করুন এবং প্রতিটি প্রবেশের পরে এন্টার টিপে নিম্নলিখিতটি লিখুন:

    • When do you open?
    • What are your hours?
    • How late can I come in?
    • reply_hours

    এই শেষ প্রশিক্ষণ বাক্যাংশটি পোস্টব্যাক ডেটা ম্যাপ করতে ব্যবহৃত হয় যা আপনি এই অভিপ্রায়ের সাথে পূর্ববর্তী বিভাগে কনফিগার করেছেন।

  4. প্রতিক্রিয়াগুলির অধীনে, + ক্লিক করুন এবং RCS বিজনেস মেসেজিং (RBM) নির্বাচন করুন।

  5. প্রতিক্রিয়া যোগ করুন ক্লিক করুন এবং সরল প্রতিক্রিয়া নির্বাচন করুন।

  6. সহজ প্রতিক্রিয়ার জন্য পাঠ্য ক্ষেত্রে লিখুন "আমরা প্রতি সপ্তাহের দিন সকাল 9 টা থেকে বিকাল 5:30 পর্যন্ত খোলা থাকি।"

  7. সংরক্ষণ করুন ক্লিক করুন.

চেষ্টা কর!

এখন আপনার এজেন্টকে তার ঘন্টার জন্য জিজ্ঞাসা করার চেষ্টা করুন। আপনার ডিভাইসে, আপনার RBM এজেন্টের কথোপকথনে "আপনি কখন খুলছেন?" লিখুন এবং আপনার এজেন্টকে বার্তা পাঠান।

আপনার এজেন্ট এখন সঠিকভাবে প্রশ্নের উত্তর দেয়। লক্ষ্য করুন যে যদিও আপনার ক্যোয়ারীটি প্রশিক্ষণের বাক্যাংশ থেকে একটু ভিন্ন ছিল ("আপনি কখন খুলবেন?" বনাম "আপনি কখন খুলবেন?"), ডায়ালগফ্লো এখনও সঠিক অভিপ্রায়ের সাথে কোয়েরির সাথে মিলেছে। আপনি ট্যাপ করার চেষ্টা করতে পারেন আপনার সময় কি? সমৃদ্ধ কার্ডে।

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

পরিপূর্ণতা যোগ করা হচ্ছে

এটি কাজ করার সময়, আমরা যে এজেন্ট তৈরি করেছি তা একটু অস্বাভাবিক আচরণ করে। যখন ব্যবহারকারী "আপনি কি খোলা আছে?" এর মতো কিছু জিজ্ঞাসা করলে, এজেন্ট "আমরা প্রতি সপ্তাহের দিন সকাল 9 টা থেকে বিকাল 5:30 পর্যন্ত খোলা থাকি" এর সাথে উত্তর দেবে। এটা অনেক বেশি স্বাভাবিক—এবং সহায়ক—যদি এজেন্ট আমাদের সরাসরি বলে দেয় দোকান খোলা আছে কিনা।

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

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

আমরা এখন একটি পরিপূর্ণতা ওয়েবহুক স্থাপনের প্রক্রিয়ার মধ্য দিয়ে যাব যা আমাদের এজেন্টকে আরও সহায়কভাবে সাড়া দেয়।

সেটআপ: পূর্ণতা স্থাপন এবং সক্ষম করা

Firebase সম্পাদকের জন্য Dialogflow এর একটি অন্তর্নির্মিত ক্লাউড ফাংশন রয়েছে যা আপনাকে জাভাস্ক্রিপ্ট কোড লিখতে এবং স্থাপন করতে দেয় যা আপনার পরিপূর্ণতা পরিচালনা করবে।

ডায়ালগফ্লো -এর বাম নেভিগেশনে, পূর্ণতা পৃষ্ঠা খুলতে পূর্ণতা-এ ক্লিক করুন। Firebase সম্পাদকের জন্য ক্লাউড ফাংশন সক্ষম করতে ইনলাইন সম্পাদকের পাশের টগলটিতে ক্লিক করুন।

আপনি লক্ষ্য করবেন সম্পাদকটিতে দুটি ফাইল রয়েছে: "index.js", যা পূরণ করার জন্য প্রধান কোড ধারণ করে এবং "package.json", যার বিবরণ নির্ভরতা প্রয়োজন।

এখন আমরা কিছু নমুনা কোড আমদানি করতে যাচ্ছি যা আপনার পরিপূর্ণতাকে শক্তিশালী করবে।

এই ফাইলের পাঠ্যটিকে "index.js"-এ কপি করুন এবং পেস্ট করুন, এটির সমস্ত বর্তমান সামগ্রী প্রতিস্থাপন করুন:

https://storage.googleapis.com/df-rbm-codelab/index.js

এখন, পৃষ্ঠার নীচে স্ক্রোল করুন এবং DEPLOY এ ক্লিক করুন। এক মিনিট বা তার পরে, আপনার কোড ফায়ারবেসের জন্য ক্লাউড ফাংশনে স্থাপন করা হবে।

একবার ফাংশনটি স্থাপন করা হলে, আপনি পৃষ্ঠার নীচে স্থাপনের তারিখ এবং সময় দেখতে পাবেন:

পূর্ণতা কোড কটাক্ষপাত. দোকানটি currentlyOpen খোলা আছে কিনা তা নির্ধারণ করতে hoursHandler ফাংশন currentOpen কল করে এবং শর্তের উপর নির্ভর করে একটি ভিন্ন RBM প্রতিক্রিয়া যোগ করে।

function hoursHandler(agent) {
    let responseText = 'We\'re currently closed, but we open every weekday at 9am!';
    if (currentlyOpen()) {
      responseText = 'We\'re open now!! We close at 5pm today.';
    }

    let payload = {
    "fulfillmentMessages": [
        {
          "platform": "GOOGLE_RBM",
          "rbmText": {
              "text": responseText
          }
        }
      ]
    };

    return response.status(200).json(payload);
}

লাইন intentMap.set('Hours', hoursHandler); পরিপূর্ণতা লাইব্রেরীকে বলে যে hoursHandler ফাংশন চালানো উচিত যখন "ঘন্টা" অভিপ্রায় মিলে যায়। যাইহোক, আমাদের "ঘন্টা" উদ্দেশ্য পূরণ করতে ডায়ালগফ্লোকে বলতে হবে।

বাম নেভিগেশনে, ইন্টেন্টে ক্লিক করুন এবং "ঘন্টা" অভিপ্রায় খুলুন। নীচের অংশে পূর্ণতা বিভাগটি খুলুন এবং এই অভিপ্রায়ের জন্য ওয়েবহুক কল সক্ষম করুন নির্বাচন করুন, যাতে এটি টগল করা হয়।

আপনি অভিপ্রায় সংরক্ষণ করার পরে, আপনি এটি চেষ্টা করতে পারেন. ডানদিকে সিমুলেটরে, "আপনি কি খোলা?" লিখুন। আপনি যদি ডায়াগনস্টিক ইনফো ক্লিক করেন এবং API প্রতিক্রিয়া পরিদর্শন করেন, তাহলে আপনার পরিপূর্ণ প্রতিক্রিয়া দেখতে হবে। মনে রাখবেন যে Firebase সার্ভারের জন্য ক্লাউড ফাংশন দ্বারা ব্যবহৃত টাইমজোন হবে UTC, তাই আপনার বর্তমান স্থানীয় সময়ের জন্য প্রতিক্রিয়া সঠিক নাও হতে পারে।

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

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

সত্তার সাথে ডেটা বের করুন

সময়কাল: 12:00

এই বিভাগে, আমরা ব্যবহারকারীদের আমাদের বাইকের দোকানে পরিষেবা দিতে বা তাদের বাইক ঠিক করার জন্য একটি অ্যাপয়েন্টমেন্ট করতে দেওয়ার জন্য ব্যবহারকারীর প্রশ্ন থেকে কীভাবে ডেটা বের করতে হয় তা নিয়ে আলোচনা করব।

আপনার অভিপ্রায় পরামিতি যোগ করুন

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

  1. একটি নতুন অভিপ্রায় তৈরি করতে বাম নেভিগেশনে ইন্টেন্টের পাশে + ক্লিক করুন।
  2. অভিপ্রায়ের নামের জন্য, পৃষ্ঠার শীর্ষে "মেক অ্যাপয়েন্টমেন্ট" লিখুন।
  3. প্রশিক্ষণ বাক্যাংশ হিসাবে নিম্নলিখিত যোগ করুন:
    • reply_appointment
    • I'd like to schedule an appointment for next Thursday
    • I'd like to get my bike fixed , I have a mountain bike that needs servicing
    • My bike is broken
    • Can I schedule service for 4pm tomorrow?
    • Can you fix my road bike?
    • Can I set up an appointment for noon on Friday?

Dialogflow স্বয়ংক্রিয়ভাবে আপনার প্রশিক্ষণ বাক্যাংশে পরিচিত পরামিতি সনাক্ত করে এবং আপনার জন্য সেগুলি তৈরি করে।

প্রশিক্ষণ বাক্যাংশের নীচে, ডায়ালগফ্লো স্বয়ংক্রিয়ভাবে প্যারামিটার টেবিলটি যে তথ্য সংগ্রহ করে তা পূরণ করে:

  • প্যারামিটারটি ঐচ্ছিক (প্রয়োজনীয় নয়)
  • নাম তারিখ এবং সময়
  • @sys.date এবং @sys.time ** সিস্টেম সত্তা প্রকারের সাথে মিলে যায়
  • $date এবং $time এর মান আছে
  • একটি তালিকা নয়

প্যারামিটার ডেটা ব্যবহার করে

আপনি আপনার প্রতিক্রিয়াগুলিতে একটি প্যারামিটারের মান ব্যবহার করতে পারেন। এই ক্ষেত্রে, আপনি আপনার প্রতিক্রিয়াগুলিতে $date এবং $time ব্যবহার করতে পারেন এবং সেগুলি আপনার এজেন্টের ক্যোয়ারীতে নির্দিষ্ট তারিখ এবং সময় দিয়ে প্রতিস্থাপিত হয়।

রেসপন্সে , আরসিএস বিজনেস মেসেজিং ট্যাব যোগ করুন, একটি সিম্পল রেসপন্সে নিম্নলিখিত যোগ করুন এবং সংরক্ষণ করুন ক্লিক করুন:

Great! I've set up your appointment for $date at $time.  See you then!

চেষ্টা কর!

এখন, আপনার এজেন্টকে জিজ্ঞাসা করুন "আমি কি আগামীকাল দুপুর ২টার জন্য একটি অ্যাপয়েন্টমেন্ট পেতে পারি?" ডান প্যানেলে সিমুলেটরে।

আপনি সিমুলেটর আউটপুটের নীচে দেখতে পাচ্ছেন যে ডায়ালগফ্লো সঠিকভাবে কোয়েরি থেকে "আগামীকাল" এবং "2pm" প্যারামিটারগুলি বের করেছে এবং তারিখ এবং সময় হিসাবে সঠিকভাবে পার্স করেছে৷ এখন আপনার টেস্ট ডিভাইস থেকে একই জিনিস চেষ্টা করুন এবং দেখুন কিভাবে প্রতিক্রিয়া সঠিকভাবে পার্স করা তারিখ এবং সময় অন্তর্ভুক্ত করে।

প্রয়োজনীয় পরামিতি তৈরি করা

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

এখন প্রতিটি পরামিতি প্রয়োজন, আমাদের প্রতিটি প্যারামিটারের জন্য একটি প্রম্পট তৈরি করতে হবে। প্রম্পট ব্যবহারকারীকে যে কোনো প্যারামিটারের জন্য একটি মান প্রদান করতে বলে যখন ব্যবহারকারী প্রাথমিকভাবে তাদের উদ্দেশ্য নির্দেশ করে (এই ক্ষেত্রে, একটি অ্যাপয়েন্টমেন্ট করার জন্য)। একটি প্যারামিটারের জন্য একটি প্রম্পট তৈরি করতে প্রম্পট নির্ধারণ করুন ক্লিক করুন এবং প্রতিটি প্যারামিটারের জন্য নিম্নলিখিত প্রম্পটগুলি লিখুন:

প্যারামিটার শীঘ্র
তারিখ আপনি কোন দিন আসতে চান?
সময় আপনার জন্য কোন সময় কাজ করে?

প্রম্পটগুলি প্রবেশ করার পরে, সংরক্ষণ করুন ক্লিক করুন।

চেষ্টা কর!

আপনার ডিভাইসে, একটি অ্যাপয়েন্টমেন্ট সাজেশন করুন বা টাইপ করুন "আমি আমার বাইক ঠিক করতে চাই।" আপনি প্রতিক্রিয়া পাবেন "আপনি কোন দিন আসতে চান?"। একটি তারিখ নির্দেশ করুন ("আগামীকাল") এবং আপনি তারিখে একটি সময় জিজ্ঞাসা করে একটি প্রতিক্রিয়া পাবেন৷ এর উত্তর দিন এবং আপনি দেখতে পাবেন যে আপনার অ্যাপয়েন্টমেন্ট সেট করা হয়েছে।

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

কোন কোড এবং খুব কম সেটআপ ছাড়াই একটি সম্পূর্ণ অনন্য কথোপকথন তৈরি করতে আমরা ডায়ালগফ্লো সত্তা এবং প্যারামিটার ব্যবহার করেছি! পরবর্তীতে আমরা "আপনি কোন তারিখে অ্যাপয়েন্টমেন্টের সময়সূচী করতে চান?" এর মতো প্রম্পটগুলিতে ব্যবহারকারীর উত্তরগুলিকে গাইড করতে সহায়তা করার জন্য কীভাবে পরিপূর্ণতা ব্যবহার করবেন তা কভার করব।

সেটআপ: পরিপূর্ণতা সক্ষম করা

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

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

পূর্ণতা বাস্তবায়ন

ডায়ালগফ্লো -এর বাম নেভিগেশনে, পূর্ণতা পৃষ্ঠা খুলতে পূর্ণতা-এ ক্লিক করুন। লাইনে নিচে স্ক্রোল করুন

intentMap.set('Hours', hoursHandler);

এবং পরবর্তী লাইন হিসাবে নিম্নলিখিত যোগ করুন:

intentMap.set('Make Appointment', makeAppointment);

এটি পরিপূর্ণতা লাইব্রেরীকে বলে যে makeAppointment অ্যাপয়েন্টমেন্ট ফাংশনটি চালানো উচিত যখন "মেক অ্যাপয়েন্টমেন্ট" অভিপ্রায় মিলে যায়।

এর পরে, নীচের কোডটি অনুলিপি করুন এবং currentlyOpen ফাংশনের নীচে পেস্ট করুন। দুটি ফাংশন, getSuggestedTimes এবং getSuggestedDates , ব্যবহারকারীর প্রতিক্রিয়ার সুবিধার্থে সহায়ক চিপ তালিকা তৈরি করে।

function getSuggestedTimes() {
  return [
        {
          "reply": {
            "text": "9 am",
            "postbackData": "9:00am"
            }
        },
        {
          "reply": {
            "text": "10 am",
            "postbackData": "10:00am"
          }
        },
        {
          "reply": {
            "text": "1 pm",
            "postbackData": "1:00pm"
          }
        },
        {
          "reply": {
            "text": "2 pm",
            "postbackData": "2:00pm"
          }
        }
      ];
}

function getSuggestedDates() {
  return [
        {
          "reply": {
            "text": "Tomorrow",
            "postbackData": "Tomorrow"
          }
        },
        {
          "reply": {
            "text": "A week from now",
            "postbackData": "A week from now"
          }
        },
        {
          "reply": {
            "text": "Two weeks from now",
            "postbackData": "Two weeks from now"
          }
        }
      ];
}

এরপর, hoursHandler এর নীচে , নীচের কোডটি কপি করে পেস্ট করুন, তারপর Deploy এ ক্লিক করুন।

function makeAppointment(agent) {
    // extract required parameters
    const appointmentDate = agent.parameters.date;
    const appointmentTime = agent.parameters.time;

    const gotAppointmentDate = appointmentDate.length > 0;
    const gotAppointmentTime = appointmentTime.length > 0;

    let responseText = '';
    let suggestions = [];

    if(gotAppointmentDate && gotAppointmentTime) {
      // We have all required parameters, return success message
      responseText = 'Great! I\'ve set up your appointment for ' +
          appointmentDate + ' at ' + appointmentTime + '.  See you then!';
    }
    else if(gotAppointmentDate) {
      responseText = 'What time works for you?';
      suggestions = getSuggestedTimes();
    }
    else if(gotAppointmentTime) {
      responseText = 'What day do you want to come in?';
      suggestions = getSuggestedDates();
    }
    else {
      responseText = 'What day do you want to come in?';
      suggestions = getSuggestedDates();
    }

    let payload = {
      "fulfillmentMessages": [
      {
        "platform": "GOOGLE_RBM",
        "rbmText": {
          "text": responseText,
          "rbmSuggestion": suggestions
        }
      }
    ]
    };

    return response.status(200).json(payload);
  }

কোড পরিদর্শন করতে কয়েক মিনিট সময় নিন। লক্ষ্য করুন যে প্রয়োজনীয় প্যারামিটারগুলি মানগুলির জন্য পরীক্ষা করা হচ্ছে এবং যদি সেট না করা হয়, ব্যবহারকারীকে একটি উপযুক্ত বার্তা এবং পরামর্শের সেট সহ প্রম্পট করে৷

চেষ্টা কর!

আপনার ডিভাইসে, একটি অ্যাপয়েন্টমেন্ট সাজেশন করুন বা টাইপ করুন "আমি আমার বাইক ঠিক করতে চাই।" আপনি প্রতিক্রিয়া পাবেন "আপনি কোন দিন আসতে চান?" কিছু সহায়ক পরামর্শ সহ: "আগামীকাল", "এখন থেকে এক সপ্তাহ", এবং "এখন থেকে দুই সপ্তাহ"। একটি তারিখ নির্দেশ করুন ("আগামীকাল") এবং আপনি একটি সময় চেয়ে একটি প্রতিক্রিয়া ফিরে পাবেন৷ এর উত্তর দিন এবং আপনি দেখতে পাবেন যে আপনার অ্যাপয়েন্টমেন্ট সেট করা হয়েছে।

প্রসঙ্গ সহ রাজ্য পরিচালনা করুন

সময়কাল: 7:00

কথোপকথন অবস্থায় প্রসঙ্গ যোগ করুন

একবার আমাদের ব্যবহারকারী সফলভাবে একটি অ্যাপয়েন্টমেন্ট সেট আপ করলে, আমরা তাদের কাছ থেকে আরও কিছু তথ্য সংগ্রহ করতে চাই। কল্পনা করুন আমাদের বাইকের দোকান দুটি ধরণের অ্যাপয়েন্টমেন্ট অফার করে: মেরামত, বা টিউন-আপ। আমরা এই ব্যবহারকারীর প্রয়োজন জানতে চাই.

শুরু করার জন্য, আসুন ব্যবহারকারীকে তাদের কী ধরনের অ্যাপয়েন্টমেন্ট প্রয়োজন তা জিজ্ঞাসা করার জন্য "অ্যাপয়েন্টমেন্ট করুন" অভিপ্রায়ের প্রতিক্রিয়া আপডেট করি৷ আপনার makeAppointment পূর্ণতা ফাংশনে সফল প্রতিক্রিয়া নীচের পাঠ্যের সাথে প্রতিস্থাপন করুন, তারপর Deploy এ ক্লিক করুন।

responseText = 'Great! I\'ve set up your appointment for ' +
    appointmentDate + ' at ' + appointmentTime + '.  Do you need a repair for just a tune-up?';

এই প্রশ্নের উত্তর সংগ্রহ করার জন্য, আমাদের আরেকটি অভিপ্রায় তৈরি করতে হবে। যাইহোক, এটি গুরুত্বপূর্ণ যে এই নতুন অভিপ্রায়টি এই প্রশ্নের উত্তর দেওয়ার পরেই মিলছে। এটি প্রয়োগ করার জন্য, আমরা এটিকে একটি ফলো-আপ অভিপ্রায় হিসাবে সংজ্ঞায়িত করতে পারি।

ফলো-আপ ইন্টেন্টগুলি এমন উদ্দেশ্য যা শুধুমাত্র তাদের "পিতামাতার" অভিপ্রায়ের সাথে মিলিত হতে পারে, (এই ক্ষেত্রে আমাদের "অ্যাপয়েন্টমেন্ট করুন" অভিপ্রায়) মিলে গেছে। বাম নেভিগেশনে ইন্টেন্টে ক্লিক করুন (যদি মেনুটি লুকানো থাকে, উপরের বাম কোণে মেনু ☰ বোতামে ক্লিক করুন)। তারপরে আপনার মাউসকে "মেক অ্যাপয়েন্টমেন্ট" অভিপ্রায়ের উপর ঘোরান এবং অ্যাড ফলো-আপ ইন্টেন্টে ক্লিক করুন, যা অভিপ্রায় নামের ডানদিকে প্রদর্শিত হয়:

এরপরে, ড্রপডাউন মেনু থেকে কাস্টম ক্লিক করুন।

ডায়ালগফ্লো স্বয়ংক্রিয়ভাবে ফলো-আপ অভিপ্রায়কে "অ্যাপয়েন্টমেন্ট করুন - কাস্টম" নাম দিয়েছে এবং তীরটি উদ্দেশ্যগুলির মধ্যে সম্পর্ক নির্দেশ করে৷

অভিভাবক অভিপ্রায় মিলে যাওয়ার পরেই ফলো-আপের অভিপ্রায়গুলি মিলিত হতে পারে৷ যেহেতু এই অভিপ্রায়টি শুধুমাত্র "অ্যাপয়েন্টমেন্ট করুন" অভিপ্রায়ের পরে মিলিত হবে, তাই আমরা অনুমান করতে পারি যে ব্যবহারকারীকে এইমাত্র প্রশ্ন করা হয়েছে "আপনার কি মেরামত বা শুধু একটি টিউন-আপ দরকার?"।

এই প্রশ্নের উত্তর পেতে, আমাদের প্রথমে কিছু সত্তাকে সংজ্ঞায়িত করতে হবে।

আপনার প্রথম সত্তা তৈরি করা হচ্ছে

ডায়ালগফ্লো আপনাকে বিকাশকারী সত্তাগুলিকে সংজ্ঞায়িত করতে দেয়, যা ডায়ালগফ্লো-এর সিস্টেম সত্তার মতোই কাজ করে৷ একটি সত্তা টাইপ তৈরি করে শুরু করা যাক। যেহেতু আমরা চাই ব্যবহারকারীরা আমাদের দোকানের সাথে কোন ধরণের অ্যাপয়েন্টমেন্ট করতে চান তা চয়ন করতে সক্ষম হন, আসুন সত্তা টাইপ AppointmentType কল করি৷ আমরা দুটি ভিন্ন ধরনের অ্যাপয়েন্টমেন্টের জন্য AppointmentType সত্তা টাইপে দুটি সত্তা যোগ করব: service এবং fix

একটি সত্তা টাইপ তৈরি করতে:

  1. বাম নেভিগেশনে সত্তার পাশে + ক্লিক করুন।
  2. সত্তার প্রকারের নামের জন্য, "AppointmentType" লিখুন।
  3. পাঠ্য ক্ষেত্রে ক্লিক করুন এবং নিম্নলিখিত এন্ট্রি যোগ করুন:
    • সেবা
    • ঠিক করা
  4. যখন আপনি একটি এন্ট্রি প্রবেশ করেন, ট্যাব টিপে আপনার কার্সারকে সমার্থক ক্ষেত্রে নিয়ে যায়। প্রতিটি এন্ট্রির জন্য নিম্নলিখিত প্রতিশব্দ যোগ করুন। সম্পূর্ণ স্ট্রিং অনুলিপি এবং পেস্ট করার পরিবর্তে প্রতিটি শব্দ পৃথকভাবে যোগ করতে ভুলবেন না:
প্রবেশ সমার্থক শব্দ
সেবা
  • সেবা
  • ওভারহল
  • রক্ষণাবেক্ষণ
  • সুর ​​মিলাইয়া লত্তয়া
  • সুর ​​মিলাইয়া লত্তয়া
ঠিক করা
  • ঠিক করা
  • মেরামত
  • মেরামত
  • ভাঙ্গা
  • সমতল টায়ার
  • স্থির
  1. সংরক্ষণ করুন ক্লিক করুন.

প্রতিটি সত্তা টাইপের নিম্নলিখিতগুলি থাকতে হবে:

  • বিভাগটি সংজ্ঞায়িত করার জন্য একটি নাম ("অ্যাপয়েন্টমেন্ট টাইপ")
  • এক বা একাধিক এন্ট্রি ("পরিষেবা", "ফিক্স")
  • এক বা একাধিক প্রতিশব্দ ("রক্ষণাবেক্ষণ", "টিউন আপ" ইত্যাদি)

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

আপনার নতুন সত্তা যোগ করা হচ্ছে

এখন যেহেতু আমরা অ্যাপয়েন্টমেন্টের জন্য আমাদের সত্তার ধরণটি সংজ্ঞায়িত করেছি, আমরা এটিকে আমাদের "অ্যাপয়েন্টমেন্ট - কাস্টম" অভিপ্রায়ের প্রশিক্ষণ বাক্যাংশে ব্যবহার করতে পারি:

  1. বাম নেভিগেশনে ইন্টেন্টে ক্লিক করুন, তারপর তার ফলো-আপ অভিপ্রায়গুলি প্রকাশ করতে "অ্যাপয়েন্টমেন্ট করুন" অভিপ্রায়ের পাশের তীরটিতে ক্লিক করুন৷ "মেক অ্যাপয়েন্টমেন্ট - কাস্টম" অভিপ্রায় ক্লিক করুন।
  2. প্রশিক্ষণ বাক্যাংশ হিসাবে নিম্নলিখিত যোগ করুন:

    • আপনি কি আমার বাইক সার্ভিস দিতে পারেন?
    • আমি একটি মেরামত প্রয়োজন.

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

  4. প্রম্পট সংজ্ঞায়িত করুন ক্লিক করুন এবং লিখুন "আমরা আপনার বাইকের পরিষেবা বা মেরামত করতে পারি। আপনি কোনটি চান?"

  5. প্রতিক্রিয়াগুলিতে , প্রতিক্রিয়া পরিবর্তন করুন "ঠিক আছে, আমরা একটি $AppointmentType নির্ধারণ করব।", তারপর সংরক্ষণ করুন ক্লিক করুন।

চেষ্টা কর!

আপনার ডিভাইসে, একটি অ্যাপয়েন্টমেন্ট সাজেশন করুন বা টাইপ করুন "আমি আমার বাইক ঠিক করতে চাই।" আপনি প্রতিক্রিয়া পাবেন "আপনি কোন দিন আসতে চান?" কিছু সহায়ক পরামর্শ সহ: "আগামীকাল", "এখন থেকে এক সপ্তাহ", এবং "এখন থেকে দুই সপ্তাহ"। একটি তারিখ নির্দেশ করুন ("আগামীকাল") এবং আপনি তারিখে একটি সময় জিজ্ঞাসা করে একটি প্রতিক্রিয়া ফিরে পাবেন৷

একটি সময় নির্বাচন করুন, এবং আপনি আপনার তৈরি করা নতুন প্রতিক্রিয়া দেখতে পাচ্ছেন যে এটি পরিষেবা বা টিউন-আপের জন্য কিনা।

এরপরে, "আমার একটি মেরামত প্রয়োজন" লিখুন। আপনি প্রতিক্রিয়া দেখতে পাবেন "ঠিক আছে, আমরা একটি ফিক্স শিডিউল করব।", নির্দেশ করে যে ডায়ালগফ্লো একটি সত্তা হিসাবে সঠিক অ্যাপয়েন্টমেন্ট টাইপ বের করেছে।

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

উদ্দেশ্য এবং প্রসঙ্গ

"মেক অ্যাপয়েন্টমেন্ট" অভিপ্রায় থেকে সংগৃহীত একটি প্যারামিটারের সাথে প্রতিক্রিয়া জানাতে, আপনাকে জানতে হবে কিভাবে ফলো-আপ ইন্টেন্ট কাজ করে। একটি অভিভাবক অভিপ্রায় ট্রিগার করা হয়েছে কিনা তা ট্র্যাক রাখতে ফলো-আপ ইন্টেন্টগুলি প্রসঙ্গ ব্যবহার করে৷ আপনি যদি "মেক অ্যাপয়েন্টমেন্ট" অভিপ্রায় পরিদর্শন করেন, তাহলে আপনি "মেক অ্যাপয়েন্টমেন্ট-ফলোআপ" একটি আউটপুট প্রসঙ্গ হিসাবে তালিকাভুক্ত দেখতে পাবেন, যা 2 নম্বর দ্বারা পূর্বে দেওয়া হয়েছে:

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

বাম নেভিগেশনে ইন্টেন্টে ক্লিক করুন, তারপরে "মেক অ্যাপয়েন্টমেন্ট - কাস্টম" অভিপ্রায় ক্লিক করুন।

আপনি দেখতে পাচ্ছেন যে অভিপ্রায়টির একই ইনপুট প্রসঙ্গ ("মেক অ্যাপয়েন্টমেন্ট- ফলোআপ") "মেক অ্যাপয়েন্টমেন্ট" এর আউটপুট প্রসঙ্গ হিসাবে রয়েছে। এই কারণে, "মেক অ্যাপয়েন্টমেন্ট - কাস্টম" শুধুমাত্র "অ্যাপয়েন্টমেন্ট করুন" অভিপ্রায় মেলে।

প্রসঙ্গ এবং পরামিতি

প্রসঙ্গগুলি প্যারামিটারের মানগুলি সঞ্চয় করে, যার মানে আপনি "মেক অ্যাপয়েন্টমেন্ট - কাস্টম" এর মতো অন্যান্য ইন্টেন্টে "মেক অ্যাপয়েন্টমেন্ট" ইন্টেটে সংজ্ঞায়িত প্যারামিটারের মানগুলি অ্যাক্সেস করতে পারেন।

"MakeAppointment - কাস্টম" অভিপ্রায়ে নিম্নলিখিত প্রতিক্রিয়া যোগ করুন এবং সংরক্ষণ করুন ক্লিক করুন : "ঠিক আছে, আমরা একটি $AppointmentType, #MakeAppointment- followup.date, #MakeAppointment-followup.time-এ শিডিউল করব। তারপরে আমরা আপনার সাথে দেখা করব।"

এখন আপনি আবার আপনার এজেন্টকে জিজ্ঞাসা করতে পারেন এবং সঠিক প্রতিক্রিয়া পেতে পারেন। প্রথমে লিখুন "আমি কি আগামীকাল সকাল 11টায় আমার বাইকের পরিষেবা দেওয়ার জন্য একটি অ্যাপয়েন্টমেন্ট সেট করতে পারি?", এবং তারপর "আমার একটি মেরামত দরকার" দিয়ে প্রশ্নের উত্তর দিন।

অ্যাপয়েন্টমেন্ট নিশ্চিত করার প্রতিক্রিয়াতে, আপনার দেখতে হবে যে তারিখ এবং সময়ের প্যারামিটার মানগুলি প্রসঙ্গ থেকে পুনরুদ্ধার করা হয়েছে।

প্রতিক্রিয়া বিন্যাস উন্নতি

সময়কাল: 5:00

তারিখ এবং সময় ফর্ম্যাট করতে পূরণ ব্যবহার করুন

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

বাম নেভিগেশনে ইন্টেন্টে ক্লিক করে আপনার "মেক অ্যাপয়েন্টমেন্ট - কাস্টম" অভিপ্রায়ে নেভিগেট করুন এবং তারপরে "মেক অ্যাপয়েন্টমেন্ট - কাস্টম" অভিপ্রায়ে ক্লিক করুন। পৃষ্ঠার নীচে স্ক্রোল করুন এবং এই অভিপ্রায়ের জন্য ওয়েবহুক কল সক্ষম করুন এ টগল করুন, তারপর সংরক্ষণ করুন ক্লিক করুন৷

বাম নেভিগেশনে পূর্ণতা লিঙ্কে ক্লিক করে পূর্ণতায় নেভিগেট করুন। নিচের কোডটি কপি করুন এবং makeAppointment ফাংশনের নিচে পেস্ট করুন।

function makeAppointmentFollowUp(agent) {
    let context = agent.getContext('makeappointment-followup');

    // extract required parameters
    const appointmentDate = new Date(context.parameters.date);
    const appointmentTime = new Date(context.parameters.time);
    const appointmentType = agent.parameters.AppointmentType;

    // format date and time to be human-readable
    const dateAsString = appointmentDate.toLocaleDateString('en-US',
        { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' });
    const timeAsString = appointmentTime.toLocaleString('en-US',
        { hour: 'numeric', minute: 'numeric', hour12: true });

    // compose response for user
    let responseText = 'Okay, we'll schedule a ' + appointmentType + ', ' + dateAsString +
        ', at ' + timeAsString + '.  We'll see you then.';

    let payload = {
      "fulfillmentMessages": [
      {
        "platform": "GOOGLE_RBM",
        "rbmText": {
          "text": responseText
        }
      }
    ]
    };

    return response.status(200).json(payload);
  }

এই ফাংশনের নীচে, লাইনটি intentMap.set('Make appointment', makeAppointment); এবং intentMap.set('Make appointment - custom', makeAppointmentFollowUp); যাতে ফলো-আপ অভিপ্রায় আহ্বান করা হয়, আপনি আগে যে ফাংশন পেস্ট করেছেন তাকে বলা হয়।

makeAppointmentFollowUp কোডটি একবার দেখুন এবং দেখুন কিভাবে প্যারামিটারগুলি ইনকামিং প্রসঙ্গ এবং এই অভিপ্রায় থেকে বের করা হচ্ছে। responseText টেক্সট তৈরি হওয়ার আগে, কোডটি এখন মানুষ-পাঠযোগ্য হওয়ার জন্য তারিখ এবং সময় ফর্ম্যাট করছে।

চেষ্টা কর!

আপনার ডিভাইসে, একটি অ্যাপয়েন্টমেন্ট সাজেশন করুন বা টাইপ করুন "আমি আমার বাইক ঠিক করতে চাই।" আপনি প্রতিক্রিয়া পাবেন "আপনি কোন দিন আসতে চান?" কিছু সহায়ক পরামর্শ সহ: "আগামীকাল", "এখন থেকে এক সপ্তাহ", এবং "এখন থেকে দুই সপ্তাহ"। একটি তারিখ নির্দেশ করুন ("আগামীকাল") এবং আপনি তারিখে একটি সময় জিজ্ঞাসা করে একটি প্রতিক্রিয়া ফিরে পাবেন৷

একটি সময় নির্বাচন করুন, এবং আপনি আপনার তৈরি করা নতুন প্রতিক্রিয়া দেখতে পাচ্ছেন যে এটি পরিষেবা বা টিউন-আপের জন্য কিনা।

এরপরে, "আমার একটি মেরামত প্রয়োজন" লিখুন। আপনি একটি পঠনযোগ্য বিন্যাসে অ্যাপয়েন্টমেন্টের ধরন, তারিখ এবং সময় সহ অ্যাপয়েন্টমেন্ট নিশ্চিত করে প্রতিক্রিয়া দেখতে পাবেন।

তুমি করেছ!

সময়কাল: 1:00

চমৎকার কাজ!

আপনি এখন ডায়ালগফ্লো দ্বারা চালিত একটি RBM এজেন্ট তৈরির সমস্ত ধাপ অতিক্রম করেছেন৷

এই উত্তেজনাপূর্ণ নতুন প্ল্যাটফর্মের জন্য বিকাশে মজা করুন!