অ্যাকশন SDK ব্যবহার করে Google অ্যাসিস্ট্যান্টের জন্য অ্যাকশন তৈরি করুন (লেভেল 1)

১. সংক্ষিপ্ত বিবরণ

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

এই কোডল্যাবটিতে গুগল অ্যাসিস্ট্যান্টের অ্যাকশনস এসডিকে (Actions SDK) ব্যবহার করে ডেভেলপ করার জন্য প্রাথমিক স্তরের ধারণাগুলো আলোচনা করা হয়েছে; এটি সম্পন্ন করার জন্য প্ল্যাটফর্মটিতে আপনার কোনো পূর্ব অভিজ্ঞতার প্রয়োজন নেই। এই কোডল্যাবে, আপনি গুগল অ্যাসিস্ট্যান্টের জন্য একটি সাধারণ অ্যাকশন তৈরি করবেন, যা গ্রিফিনবার্গের পৌরাণিক ভূমিতে ব্যবহারকারীদের অভিযান শুরুর মুহূর্তে তাদের ভাগ্য বলে দেবে। অ্যাকশনস এসডিকে লেভেল ২ কোডল্যাবে, আপনি ব্যবহারকারীর ইনপুটের উপর ভিত্তি করে তার ভাগ্যকে কাস্টমাইজ করার জন্য এই অ্যাকশনটিকে আরও উন্নত করবেন।

আপনি যা তৈরি করবেন

এই কোডল্যাবে, আপনি নিম্নলিখিত ফাংশনগুলো ব্যবহার করে একটি সহজ অ্যাকশন তৈরি করবেন:

  • ব্যবহারকারীদের একটি শুভেচ্ছা বার্তা দিয়ে উত্তর দেয়।
  • ব্যবহারকারীদের একটি প্রশ্ন জিজ্ঞাসা করে এবং তাদের নির্বাচিত উত্তরের যথাযথ প্রতিক্রিয়া জানায়।
  • ইনপুট দেওয়ার জন্য সাজেশন চিপ রয়েছে, যেগুলোতে ব্যবহারকারীরা ক্লিক করতে পারেন।
  • ব্যবহারকারী পুরাতন কিনা তার উপর ভিত্তি করে শুভেচ্ছা বার্তা পরিবর্তন করে।

এই কোডল্যাবটি শেষ করার পর, আপনার তৈরি করা অ্যাকশনটির কথোপকথনের প্রবাহটি নিম্নরূপ হবে (মাইক্রোফোনের পাশের লেখাটি ব্যবহারকারীর ইনপুট এবং স্পিকারের পাশের লেখাটি অ্যাকশনটির প্রতিক্রিয়া নির্দেশ করে):

1c1e79902bed7230.png

18ef55647b4cb52c.png

আপনি যা শিখবেন

  • অ্যাকশন কনসোলে কীভাবে একটি প্রজেক্ট তৈরি করবেন
  • অ্যাকশন কনসোল এবং আপনার স্থানীয় ফাইল সিস্টেমের মধ্যে আপনার অ্যাকশন প্রজেক্ট পুশ ও পুল করতে gactions টুলটি কীভাবে ব্যবহার করবেন
  • ব্যবহারকারী আপনার অ্যাকশনটি চালু করার পর তাকে কীভাবে একটি প্রম্পট পাঠাবেন
  • ব্যবহারকারীর ইনপুট কীভাবে প্রক্রিয়া করবেন এবং প্রতিক্রিয়া ফেরত দেবেন
  • অ্যাকশন সিমুলেটরে আপনার অ্যাকশন কীভাবে পরীক্ষা করবেন
  • ক্লাউড ফাংশন এডিটর ব্যবহার করে কীভাবে ফুলফিলমেন্ট বাস্তবায়ন করবেন

আপনার যা যা লাগবে

আপনার পরিবেশে নিম্নলিখিত সরঞ্জামগুলি অবশ্যই থাকতে হবে:

  • আপনার পছন্দের একটি IDE বা টেক্সট এডিটর
  • Node.js এবং npm- এর জন্য শেল কমান্ড চালানোর একটি টার্মিনাল।
  • একটি ওয়েব ব্রাউজার, যেমন গুগল ক্রোম

২. স্থাপন করুন

নিম্নলিখিত বিভাগগুলিতে আপনার ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করার এবং আপনার অ্যাকশনস প্রজেক্ট তৈরি করার পদ্ধতি বর্ণনা করা হয়েছে।

আপনার গুগল অনুমতি সেটিংস পরীক্ষা করুন

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

অনুমতি সক্রিয় করতে, এই ধাপগুলো অনুসরণ করুন:

  1. অ্যাক্টিভিটি কন্ট্রোলস- এ যান।
  2. যদি আগে থেকে তা না করে থাকেন, তাহলে আপনার গুগল অ্যাকাউন্ট দিয়ে সাইন ইন করুন।
  3. নিম্নলিখিত অনুমতিগুলি সক্রিয় করুন:
  • ওয়েব ও অ্যাপ কার্যকলাপ
  • ওয়েব ও অ্যাপ অ্যাক্টিভিটি-এর অধীনে, “গুগল পরিষেবা ব্যবহারকারী সাইট, অ্যাপ এবং ডিভাইস থেকে ক্রোম হিস্ট্রি ও অ্যাক্টিভিটি অন্তর্ভুক্ত করুন ” চেকবক্সটি নির্বাচন করুন।

একটি অ্যাকশন প্রজেক্ট তৈরি করুন

Your Actions প্রজেক্টটি আপনার অ্যাকশনের জন্য একটি ধারক।

এই কোডল্যাবের জন্য আপনার অ্যাকশনস প্রজেক্ট তৈরি করতে, এই ধাপগুলো অনুসরণ করুন:

  1. অ্যাকশন কনসোলটি খুলুন।
  2. নতুন প্রজেক্ট-এ ক্লিক করুন।
  3. একটি প্রজেক্টের নাম লিখুন, যেমন actions-codelab । (এই নামটি শুধুমাত্র আপনার অভ্যন্তরীণ ব্যবহারের জন্য। পরবর্তীতে, আপনি আপনার প্রজেক্টের জন্য একটি বাহ্যিক নাম নির্ধারণ করতে পারেন।)

8cd05a84c1c0a32f.png

  1. প্রজেক্ট তৈরি করুন -এ ক্লিক করুন।
  2. 'আপনি কী ধরনের অ্যাকশন তৈরি করতে চান?' স্ক্রিনে, কাস্টম কার্ডটি নির্বাচন করুন।
  3. পরবর্তী ধাপে যান।
  4. 'আপনি এটি কীভাবে তৈরি করতে চান?' স্ক্রিনে, 'ব্ল্যাঙ্ক প্রজেক্ট কার্ড' নির্বাচন করুন।
  5. নির্মাণ শুরু করতে ক্লিক করুন।

আপনার কাজের জন্য প্রজেক্ট আইডি সংরক্ষণ করুন।

প্রজেক্ট আইডি হলো আপনার অ্যাকশনের একটি অনন্য শনাক্তকারী। এই কোডল্যাবের বিভিন্ন ধাপে আপনার প্রজেক্ট আইডি প্রয়োজন হবে।

আপনার প্রজেক্ট আইডি পুনরুদ্ধার করতে, এই ধাপগুলো অনুসরণ করুন:

  1. অ্যাকশন কনসোলে, তিনটি উল্লম্ব ডটে ক্লিক করুন (এখানে আইকন দিন)।
  2. প্রজেক্ট সেটিংস-এ ক্লিক করুন।

6f59050b85943073.png

  1. প্রজেক্ট আইডি কপি করুন।

একটি বিলিং অ্যাকাউন্ট সংযুক্ত করুন

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

আপনার প্রোজেক্টের সাথে একটি বিলিং অ্যাকাউন্ট যুক্ত করতে, এই ধাপগুলো অনুসরণ করুন:

  1. গুগল ক্লাউড প্ল্যাটফর্মের বিলিং পেজে যান।
  2. বিলিং অ্যাকাউন্ট যোগ করুন অথবা অ্যাকাউন্ট তৈরি করুন- এ ক্লিক করুন।
  3. আপনার পেমেন্টের তথ্য প্রবেশ করান।
  4. আমার ফ্রি ট্রায়াল শুরু করুন -এ ক্লিক করুন অথবা জমা দিন এবং বিলিং চালু করুন
  5. গুগল ক্লাউড প্ল্যাটফর্মের বিলিং পেজে যান।
  6. আমার প্রজেক্ট ট্যাবে ক্লিক করুন।
  7. কোডল্যাবের জন্য অ্যাকশনস প্রজেক্টের পাশে অ্যাকশনস- এর নিচে থাকা তিনটি ডটে ক্লিক করুন।
  8. বিলিং পরিবর্তন করুন -এ ক্লিক করুন।
  9. ড্রপ-ডাউন মেনু থেকে আপনার কনফিগার করা বিলিং অ্যাকাউন্টটি নির্বাচন করুন।
  10. অ্যাকাউন্ট সেট করুন -এ ক্লিক করুন।

চার্জ এড়ানোর জন্য, এই কোডল্যাবের শেষে 'আপনার প্রজেক্ট পরিষ্কার করুন' বিভাগে দেওয়া ধাপগুলো অনুসরণ করুন।

gactions কমান্ড-লাইন ইন্টারফেসটি ইনস্টল করুন

এই কোডল্যাবে, আপনি অ্যাকশনস কনসোল এবং আপনার লোকাল ফাইল সিস্টেমের মধ্যে অ্যাকশনস প্রজেক্ট সিঙ্ক্রোনাইজ করতে gactions কমান্ড-লাইন ইন্টারফেস (CLI) টুলটি ব্যবহার করবেন।

gactions CLI ইনস্টল করতে, "Install the gactions command-line tool" -এর নির্দেশাবলী অনুসরণ করুন।

আপনার অ্যাকশন প্রজেক্ট ডাউনলোড করুন

অ্যাকশন কনসোল থেকে আপনার অ্যাকশন প্রজেক্ট ডাউনলোড করে আপনার অ্যাকশন তৈরি করা শুরু করুন।

আপনার অ্যাকশন প্রজেক্টটি ডাউনলোড করতে, এই ধাপগুলো অনুসরণ করুন:

  1. একটি নতুন ডিরেক্টরি তৈরি করতে এবং সেই ডিরেক্টরিতে প্রবেশ করতে, নিম্নলিখিত কমান্ডগুলি চালান:
mkdir myproject
cd myproject
  1. আপনার অ্যাকশনস প্রজেক্টের কনফিগারেশন আপনার লোকাল ফাইল সিস্টেমে কপি করতে, নিম্নলিখিত কমান্ডটি চালান:
gactions pull --project-id <projectID>

ফাইল কাঠামো বুঝুন

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

2aefeeab7c8eb32f.png

ফাইল কাঠামোটি নিম্নলিখিত বিষয়গুলো নিয়ে গঠিত:

  • actions/ : আপনার অ্যাকশন প্রজেক্টকে বোঝায়। যখন আপনার অ্যাকশনটি চালু করা হয়, তখন সিস্টেম actions.yaml কল করে, যা পরবর্তীতে custom/global/actions.intent.MAIN.yaml ফাইলটিকে কল করে।
  • custom/ : যে ডিরেক্টরিতে আপনি আপনার অ্যাকশন পরিবর্তন করার জন্য কাজ করবেন।
  • global/ : এই ডিরেক্টরিতে সিস্টেম ইন্টেন্টগুলো থাকে, যেগুলো প্ল্যাটফর্ম স্বয়ংক্রিয়ভাবে আপনার প্রজেক্টে যোগ করে। এই কোডল্যাবের পরবর্তী অংশে আপনি সিস্টেম ইন্টেন্ট সম্পর্কে আরও জানতে পারবেন।
  • manifest.yaml : এমন একটি ফাইল যাতে এমন তথ্য থাকে যা স্থানান্তরযোগ্য, অর্থাৎ কোনো নির্দিষ্ট প্রকল্পের জন্য নয় এবং বিভিন্ন প্রকল্পের মধ্যে সরানো যায়।
  • settings/ : একটি অ্যাকশনস প্রজেক্টের সেটিংস উপস্থাপন করে, যেমন ডিসপ্লে নেম, ডিফল্ট লোকেল এবং ক্যাটাগরি।

৩. কথোপকথন শুরু করুন

ব্যবহারকারীরা ইনভোকেশনের মাধ্যমে আপনার অ্যাকশনের সাথে কথোপকথন শুরু করে। উদাহরণস্বরূপ, যদি আপনার MovieTime নামের একটি অ্যাকশন থাকে, তবে ব্যবহারকারীরা "Hey Google, talk to MovieTime" এর মতো একটি বাক্য বলে আপনার অ্যাকশনটি ইনভোক করতে পারে, যেখানে MovieTime হলো ডিসপ্লে নেম। আপনি যদি আপনার অ্যাকশনটি প্রোডাকশনে ডেপ্লয় করতে চান, তবে সেটির একটি ডিসপ্লে নেম অবশ্যই থাকতে হবে; তবে, আপনার অ্যাকশনটি পরীক্ষা করার জন্য ডিসপ্লে নেম নির্ধারণ করার প্রয়োজন নেই। এর পরিবর্তে, আপনি সিমুলেটরে আপনার অ্যাকশনটি ইনভোক করার জন্য "Talk to my test app" বাক্যটি ব্যবহার করতে পারেন। এই বিভাগের পরবর্তী অংশে আপনি সিমুলেটর সম্পর্কে আরও জানতে পারবেন।

কোনো ব্যবহারকারী আপনার অ্যাকশনটি চালু করার পর কী ঘটবে, তা নির্ধারণ করতে আপনাকে মূল আহ্বানটি অবশ্যই সম্পাদনা করতে হবে।

ডিফল্টরূপে, আপনার অ্যাকশনটি আহ্বান করা হলে একটি সাধারণ প্রম্পট প্রদান করে ( "প্রধান আহ্বান সংজ্ঞায়িত করে আপনার অ্যাকশন তৈরি করা শুরু করুন।")।

পরবর্তী অংশে, আপনি custom/global/actions.intent.MAIN.yaml ফাইলে আপনার প্রধান আহ্বানের জন্য প্রম্পটটি কাস্টমাইজ করবেন।

প্রধান আহ্বান সেট আপ করুন

আপনি actions.intent.MAIN.yaml ফাইলে আপনার প্রধান আহ্বান প্রম্পটটি সম্পাদনা করতে পারেন।

ব্যবহারকারী যখন আপনার অ্যাকশনটি চালু করেন, তখন অ্যাকশনটি তাকে যে প্রম্পটটি ফেরত পাঠায়, তা পরিবর্তন করতে এই ধাপগুলো অনুসরণ করুন:

  1. আপনার টেক্সট এডিটরে custom/global/actions.intent.MAIN.yaml খুলুন।
  2. speech ফিল্ডের ( Start building your action... ) লেখাটি নিম্নলিখিত স্বাগত বার্তা দিয়ে প্রতিস্থাপন করুন: A wondrous greeting, adventurer! Welcome to the mythical land of Gryffinberg! Based on your clothes, you are not from around these lands. It looks like you're on your way to an epic journey.

actions.intent.MAIN.yaml

handler:
  staticPrompt:
    candidates:
    - promptResponse:
        firstSimple:
          variants:
          - speech: A wondrous greeting, adventurer! Welcome to the mythical land of 
                Gryffinberg! Based on your clothes, you are not from around these lands. 
                It looks like you're on your way to an epic journey.
transitionToScene: actions.scene.END_CONVERSATION
  1. ফাইলটি সংরক্ষণ করুন।

সিমুলেটরে মূল আহ্বানটি পরীক্ষা করুন

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

যখন আপনি আপনার অ্যাকশনটি চালু করবেন, তখন এটি আপনার যোগ করা কাস্টমাইজড প্রম্পটটি ( "একটি চমৎকার অভিবাদন, অভিযাত্রী!...") দিয়ে সাড়া দেবে।

আপনার অ্যাকশনস প্রজেক্টের ভার্সন আপডেট না করেই কনসোলে আপনার অ্যাকশন পরীক্ষা করার জন্য আপনি gactions deploy preview কমান্ডটি ব্যবহার করতে পারেন। আপনি যখন এই কমান্ডটি চালান, তখন আপনার লোকাল ফাইল সিস্টেমে করা কোনো পরিবর্তনই আপনার অ্যাকশনস প্রজেক্টের ডেপ্লয় করা ভার্সনগুলোতে স্থানান্তরিত হয় না, কিন্তু আপনি সেগুলো একটি প্রিভিউ ভার্সনে পরীক্ষা করতে পারেন।

সিমুলেটরে আপনার অ্যাকশনের প্রধান আহ্বান পরীক্ষা করতে, এই ধাপগুলো অনুসরণ করুন:

  1. পরীক্ষার জন্য আপনার প্রজেক্টটি অ্যাকশন কনসোলে ডেপ্লয় করতে, টার্মিনালে নিম্নলিখিত কমান্ডটি চালান:
gactions deploy preview

আপনার প্রাপ্ত আউটপুটটি নিম্নলিখিতের মতো হবে:

✔ Done. You can now test your changes in Simulator with this URL: http://console.actions.google.com/project/{project-id}/simulator?disableAutoPreview
  1. প্রদত্ত URL-টি কপি করে ব্রাউজারে পেস্ট করুন।
  2. সিমুলেটরে আপনার অ্যাকশনটি চালু করতে, ইনপুট ফিল্ডে Talk to my test app টাইপ করুন এবং Enter চাপুন।

656f5736af6a5a07.png

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

ইভেন্ট লগ দেখুন

আপনি যখন অ্যাকশন কনসোলের টেস্ট ট্যাবে থাকেন, তখন প্যানেলটি ইভেন্ট লগগুলো দেখায়, যা কথোপকথনের ইতিহাসকে ইভেন্ট লগ হিসেবে প্রদর্শন করে। প্রতিটি ইভেন্ট লগ কথোপকথনের সেই পর্বে ঘটে যাওয়া ঘটনাগুলো প্রদর্শন করে।

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

a1b748d1fcebca80.png

ইভেন্ট লগে Talk to my test app পাশে থাকা নিচের দিকে নির্দেশ করা তীরচিহ্নে ক্লিক করলে, আপনি কথোপকথনের সেই পর্বে ঘটে যাওয়া ইভেন্টগুলো কালানুক্রমিকভাবে সাজানো দেখতে পাবেন:

  • userInput : ব্যবহারকারীর ইনপুট ( "আমার টেস্ট অ্যাপের সাথে কথা বলুন" )
  • interactionMatch : এটি আপনার অ্যাকশনের মূল আহ্বানের প্রতিক্রিয়ার সাথে সঙ্গতিপূর্ণ, যা ব্যবহারকারীর ইনপুটের মাধ্যমে সক্রিয় হয়েছিল। আপনি যদি তীরচিহ্নে ক্লিক করে এই সারিটি প্রসারিত করেন, তাহলে মূল আহ্বানের জন্য আপনার যোগ করা প্রম্পটটি দেখতে পাবেন ( A wondrous greeting, adventurer!... )
  • endConversation : এটি Main invocation intent-এ নির্বাচিত ট্রানজিশনকে নির্দেশ করে, যা বর্তমানে কথোপকথনটি শেষ করে। এই কোডল্যাবের পরবর্তী অংশে আপনি ট্রানজিশন সম্পর্কে আরও জানতে পারবেন।

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

fcc389b59af5bef1.png

৪. আপনার অ্যাকশনের কথোপকথন তৈরি করুন

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

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

উদাহরণস্বরূপ, এমন একটি কাল্পনিক অ্যাকশনের কথা ভাবুন যা ব্যবহারকারীকে প্রাণী সম্পর্কিত তথ্য প্রদান করে। যখন ব্যবহারকারী এই অ্যাকশনটি চালু করেন, তখন Main invocation ইন্টেন্টটি ম্যাচ হয় এবং Facts. এই ট্রানজিশনটি Facts সিনটিকে সক্রিয় করে, যা ব্যবহারকারীকে নিম্নলিখিত প্রম্পটটি পাঠায়: Would you like to hear a fact about cats or dogs? Facts সিনের মধ্যে Cat নামে একটি কাস্টম ইন্টেন্ট রয়েছে, যাতে এমন কিছু প্রশিক্ষণমূলক বাক্যাংশ থাকে যা ব্যবহারকারী বিড়াল সম্পর্কিত তথ্য শোনার জন্য বলতে পারেন, যেমন "আমি বিড়াল সম্পর্কিত একটি তথ্য শুনতে চাই" বা "বিড়াল" । যখন ব্যবহারকারী বিড়াল সম্পর্কিত তথ্য শুনতে চান, তখন ' Cat ইন্টেন্টটি ম্যাচ হয় এবং Cat fact. ' Cat fact সিনটি সক্রিয় হয় এবং ব্যবহারকারীকে একটি প্রম্পট পাঠায় যাতে বিড়াল সম্পর্কিত একটি তথ্য অন্তর্ভুক্ত থাকে।

a78f549c90c3bff6.png

চিত্র ১. অ্যাকশনস এসডিকে (Actions SDK) দিয়ে নির্মিত একটি অ্যাকশনের মধ্যে একটি সাধারণ কথোপকথনের পালাপ্রবাহ।

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

মূল আহ্বান থেকে দৃশ্যে রূপান্তর

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

এই দৃশ্যটি তৈরি করতে এবং এতে একটি ট্রানজিশন যোগ করতে, এই ধাপগুলো অনুসরণ করুন:

  1. আপনার টেক্সট এডিটরে custom/global/actions.intent.MAIN.yaml খুলুন।
  2. transitionToScene ফিল্ডের ( actions.scene.END_CONVERSATION ) লেখাটি নিম্নলিখিত দিয়ে প্রতিস্থাপন করুন: transitionToScene: Start

actions.intent.MAIN.yaml

handler:
  staticPrompt:
    candidates:
    - promptResponse:
        firstSimple:
          variants:
          - speech: Welcome to the mythical land of  Gryffinberg! Based on your clothes,
              you are not from around these lands. It looks like you're on your way
              to an epic journey.
transitionToScene: Start

এটি আপনার অ্যাকশনকে মূল আহ্বান থেকে Start দৃশ্যে স্থানান্তরিত হতে নির্দেশ দেয়।

  1. ফাইলটি সংরক্ষণ করুন।
  2. টার্মিনালে, custom ডিরেক্টরির মধ্যে একটি নতুন scenes ডিরেক্টরি তৈরি করুন:
mkdir custom/scenes 
  1. scenes ডিরেক্টরিতে Start.yaml নামে একটি নতুন ফাইল তৈরি করুন, যা আপনার অ্যাকশনের start সিনকে উপস্থাপন করবে:
touch custom/scenes/Start.yaml 
  1. আপনার টেক্সট এডিটরে Start.yaml খুলুন।
  2. নিম্নলিখিত কোডটি Start.yaml ফাইলে পেস্ট করুন:

Start.yaml

onEnter:
  staticPrompt:
    candidates:
    - promptResponse:
        firstSimple:
          variants:
          - speech: Before you continue on your quest, would you like your fortune
              told?

Start.yaml ফাইলের কোডে onEnter নামে একটি ফিল্ড আছে, যা একটি সিন-এর লাইফসাইকেলে চালিত হওয়া প্রথম পর্যায়।

এক্ষেত্রে, ব্যবহারকারী যখন প্রথমবার Start সিনে প্রবেশ করেন, তখন ( Before you continue on your quest... ) প্রম্পটটি প্রম্পট কিউতে যুক্ত হয়।

পরামর্শ চিপস যোগ করুন

সাজেশন চিপ ব্যবহারকারীকে ক্লিকযোগ্য পরামর্শ দেয়, যা আপনার অ্যাকশন ব্যবহারকারীর ইনপুট হিসেবে প্রসেস করে। এই বিভাগে, আপনি Yes এবং No সাজেশন চিপ যোগ করেন, যা স্ক্রিনযুক্ত ডিভাইসের ব্যবহারকারীদের সুবিধা দেওয়ার জন্য আপনার সদ্য কনফিগার করা প্রম্পটের ( Before you continue on your quest, would you like your fortune told? ) নিচে প্রদর্শিত হয়।

Start সিন-এর প্রম্পটে সাজেশন চিপ যোগ করতে, এই ধাপগুলো অনুসরণ করুন:

  1. Start.yaml এর কোডটি নিম্নলিখিত কোড স্নিপেটের সাথে মিলিয়ে আপডেট করুন, যেখানে সাজেশন চিপ কনফিগার করার কোড অন্তর্ভুক্ত রয়েছে:

Start.yaml

onEnter:
  staticPrompt:
    candidates:
    - promptResponse:
        firstSimple:
          variants:
          - speech: Before you continue on your quest, would you like your fortune
              told?
        suggestions:
        - title: "Yes"
        - title: "No"
  1. ফাইলটি সংরক্ষণ করুন।

সিমুলেটরে আপনার অ্যাকশন পরীক্ষা করুন

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

সিমুলেটরে আপনার অ্যাকশনটি পরীক্ষা করতে, এই ধাপগুলো অনুসরণ করুন:

  1. টার্মিনালে নিম্নলিখিত কমান্ডটি চালান:
gactions deploy preview

আপনার প্রাপ্ত আউটপুটটি নিম্নলিখিতের মতো হবে:

✔ Done. You can now test your changes in Simulator with this URL: http://console.actions.google.com/project/{project-id}/simulator?disableAutoPreview
  1. প্রদত্ত URL-টি কপি করে ব্রাউজারে পেস্ট করুন।
  2. সিমুলেটরে যেতে টেস্ট-এ ক্লিক করুন।
  3. ইনপুট ফিল্ডে Talk to my test app টাইপ করুন এবং Enter চাপুন। আপনার অ্যাকশনটি Main invocation প্রম্পট এবং অতিরিক্ত Start সিন প্রম্পট, "Before you continue on your quest, would you like your fortune told?" , সহ সাজেশন চিপগুলো প্রদর্শন করবে।

নিম্নলিখিত স্ক্রিনশটটি এই মিথস্ক্রিয়াটি দেখায়:

3c2013ebb2da886a.png

  1. নির্দেশনাটির উত্তর দিতে হ্যাঁ বা না- এর সাজেশন চিপটিতে ক্লিক করুন। (আপনি মুখে 'হ্যাঁ' বা 'না' বলতে পারেন অথবা ইনপুট ফিল্ডে Yes বা No লিখতে পারেন।)

আপনি যখন প্রম্পটে সাড়া দেন, তখন আপনার অ্যাকশনটি একটি বার্তা দিয়ে জানায় যে এটি আপনার ইনপুট বুঝতে পারছে না: "দুঃখিত, আমি বুঝতে পারিনি। আপনি কি আবার চেষ্টা করতে পারেন?" যেহেতু আপনি এখনও আপনার অ্যাকশনকে "হ্যাঁ" বা "না" ইনপুট বুঝতে এবং সে অনুযায়ী সাড়া দেওয়ার জন্য কনফিগার করেননি, তাই আপনার অ্যাকশনটি আপনার ইনপুটকে একটি NO_MATCH ইন্টেন্টের সাথে মিলিয়ে নেয়।

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

yes এবং no অভিপ্রায় যোগ করুন

এখন যেহেতু ব্যবহারকারীরা আপনার অ্যাকশনের করা প্রশ্নের উত্তর দিতে পারে, আপনি তাদের উত্তর ( "হ্যাঁ" বা "না" ) বোঝার জন্য আপনার অ্যাকশনটি কনফিগার করতে পারেন। পরবর্তী বিভাগগুলিতে, আপনি কাস্টম ইন্টেন্ট তৈরি করবেন যা ব্যবহারকারী "হ্যাঁ" বা "না" বললে ম্যাচ হবে, এবং এই ইন্টেন্টগুলি Start সিনে যুক্ত করবেন।

yes অভিপ্রায় তৈরি করুন

yes ইন্টেন্ট তৈরি করতে, এই ধাপগুলো অনুসরণ করুন:

  1. টার্মিনালে, custom ডিরেক্টরির ভেতরে intents নামে একটি নতুন ডিরেক্টরি তৈরি করুন:
mkdir custom/intents 
  1. intents ডিরেক্টরিতে yes.yaml নামে একটি নতুন ফাইল তৈরি করুন:
touch custom/intents/yes.yaml
  1. আপনার টেক্সট এডিটরে yes.yaml খুলুন।
  2. প্রশিক্ষণের বাক্যাংশগুলো সম্বলিত নিম্নলিখিত কোড স্নিপেটটি yes.yaml ফাইলে পেস্ট করুন:

হ্যাঁ.yaml

trainingPhrases:
- of course
- let's do it
- ok
- sure
- "y"
- "yes"
  1. ফাইলটি সংরক্ষণ করুন।

Start সিনে yes ' ইন্টেন্ট যোগ করুন

এখন, অ্যাকশনটি বুঝতে পারে কখন একজন ব্যবহারকারী "হ্যাঁ" বলার ইচ্ছা প্রকাশ করছেন। আপনি Start সিনে ' yes ' কাস্টম ইন্টেন্টটি যোগ করতে পারেন, কারণ ব্যবহারকারী Start প্রম্পটের (" আপনার অনুসন্ধান চালিয়ে যাওয়ার আগে, আপনি কি আপনার ভাগ্য গণনা করাতে চান?" ) উত্তর দিচ্ছেন।

Start সিনে এই কাস্টম ইন্টেন্টটি যোগ করতে, এই ধাপগুলো অনুসরণ করুন:

  1. আপনার টেক্সট এডিটরে custom/scenes/Start.yaml খুলুন।
  2. Start.yaml ফাইলের শেষে intentEvents এবং yes হ্যান্ডলার যোগ করুন:

Start.yaml

intentEvents:
- handler:
    staticPrompt:
      candidates:
      - promptResponse:
          firstSimple:
            variants:
            - speech: Your future depends on the item you choose to use for your quest. Choose wisely! Farewell, stranger.
  intent: "yes"
  transitionToScene: actions.scene.END_CONVERSATION

যখন ' yes ইন্টেন্টটি মিলে যায়, তখন "Your future depends on the item you choose to use for your quest..." এই প্রম্পটটি প্রম্পট কিউতে যুক্ত হয়। এরপর Start সিনটি actions.scene.END_CONVERSATION সিস্টেম সিনে ট্রানজিশন করে, যা প্রম্পট কিউতে থাকা প্রম্পটগুলো ডেলিভার করে এবং কথোপকথনটি শেষ করে দেয়।

সিমুলেটরে yes অভিপ্রায় পরীক্ষা করুন

এই পর্যায়ে, আপনার অ্যাকশনটি বুঝতে পারে কখন ব্যবহারকারী তার ভাগ্য জানতে চায় এবং সেই অনুযায়ী প্রতিক্রিয়া জানায়।

সিমুলেটরে এই ইনটেন্টটি পরীক্ষা করতে, এই ধাপগুলো অনুসরণ করুন:

  1. টার্মিনালে নিম্নলিখিত কমান্ডটি চালান:
gactions deploy preview

আপনার প্রাপ্ত আউটপুটটি নিম্নলিখিতের মতো হবে:

✔ Done. You can now test your changes in Simulator with this URL: http://console.actions.google.com/project/{project-id}/simulator?disableAutoPreview
  1. প্রদত্ত URL-টি কপি করে ব্রাউজারে পেস্ট করুন।
  2. সিমুলেটরে যেতে টেস্ট-এ ক্লিক করুন।
  3. সিমুলেটরে আপনার অ্যাকশনটি পরীক্ষা করতে, ইনপুট ফিল্ডে Talk to my test app টাইপ করুন এবং Enter চাপুন।
  4. ইনপুট ফিল্ডে Yes টাইপ করুন এবং Enter চাপুন। বিকল্পভাবে, Yes সাজেশন চিপটিতে ক্লিক করুন।

f131998710d8ffd8.png

আপনার অ্যাকশনটি ব্যবহারকারীকে সাড়া দেয় এবং জানায় যে তাদের ভাগ্য নির্ভর করছে তারা কোন সাহায্য বেছে নিচ্ছে তার উপর। এরপর আপনার অ্যাকশনটি সেশনটি শেষ করে দেয়, কারণ আপনি yes ইন্টেন্টের জন্য ' End conversation ট্রানজিশনটি কনফিগার করেছেন।

কোনো উদ্দেশ্য তৈরি করবেন no

এখন, আপনি ' no ইন্টেন্ট' তৈরি করতে পারেন, যাতে ব্যবহারকারী যখন তার ভাগ্য জানতে না চান, তখন আপনার অ্যাকশন তা বুঝতে পারে এবং সেই অনুযায়ী সাড়া দিতে পারে।

এই ইন্টেন্টটি তৈরি করতে, এই ধাপগুলো অনুসরণ করুন:

  1. টার্মিনালে, intents ডিরেক্টরিতে no.yaml নামে একটি নতুন ফাইল তৈরি করুন:
touch custom/intents/no.yaml
  1. আপনার টেক্সট এডিটরে no.yaml খুলুন।
  2. নিম্নলিখিত প্রশিক্ষণ বাক্যাংশগুলি no.yaml ফাইলে পেস্ট করুন:

no.yaml

trainingPhrases:
- nope
- I don't want
- "n"
- "no"
- nah
- no thanks
  1. ফাইলটি সংরক্ষণ করুন।

Start সিনে no

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

Start সিন-এর জন্য এই ইন্টেন্টটি যোগ করতে, এই ধাপগুলো অনুসরণ করুন:

  1. আপনার টেক্সট এডিটরে custom/scenes/Start.yaml খুলুন।
  2. Start.yamlyes হ্যান্ডলারের নিচে নিম্নলিখিত no হ্যান্ডলারটি যোগ করুন:

Start.yaml

- handler:
    staticPrompt:
      candidates:
      - promptResponse:
          firstSimple:
            variants:
            - speech: I understand, stranger. Best of luck on your quest! Farewell.
  intent: "no"
  transitionToScene: actions.scene.END_CONVERSATION
  1. ফাইলটি সংরক্ষণ করুন।

সিমুলেটরে কোনো অভিপ্রায় পরীক্ষা করা no

এই পর্যায়ে, আপনার অ্যাকশনটি বুঝতে পারে যে ব্যবহারকারী তার ভাগ্য শুনতে চান না এবং সেই অনুযায়ী প্রতিক্রিয়া জানায়।

সিমুলেটরে এই ইনটেন্টটি পরীক্ষা করতে, এই ধাপগুলো অনুসরণ করুন:

  1. টার্মিনালে নিম্নলিখিত কমান্ডটি চালান:
gactions deploy preview

আপনার প্রাপ্ত আউটপুটটি নিম্নলিখিতের মতো হবে:

✔ Done. You can now test your changes in Simulator with this URL: http://console.actions.google.com/project/{project-id}/simulator?disableAutoPreview
  1. প্রদত্ত URL-টি কপি করে ব্রাউজারে পেস্ট করুন।
  2. সিমুলেটরে যেতে টেস্ট-এ ক্লিক করুন।
  3. ইনপুট ফিল্ডে Talk to my test app টাইপ করুন এবং Enter চাপুন।
  4. ইনপুট ফিল্ডে No টাইপ করুন এবং Enter চাপুন। বিকল্পভাবে, No সাজেশন চিপটিতে ক্লিক করুন।

c0c8b04066577eb2.png

ব্যবহারকারীকে তার ভাগ্য জানানোর পরিবর্তে, আপনার অ্যাকশনটি তার যাত্রার জন্য শুভকামনা জানায়। এরপর আপনার অ্যাকশনটি সেশনটি শেষ করে দেয়, কারণ আপনি no ইন্টেন্ট'-এর জন্য End conversation ট্রানজিশনটি কনফিগার করেছেন।

৫. বাস্তবায়ন করুন

বর্তমানে, আপনার অ্যাকশনের প্রতিক্রিয়াগুলো স্থির; যখন কোনো প্রম্পটযুক্ত সিন সক্রিয় করা হয়, আপনার অ্যাকশন প্রতিবার একই প্রম্পট পাঠায়। এই অংশে, আপনি এমন একটি ফুলফিলমেন্ট বাস্তবায়ন করবেন, যাতে একটি গতিশীল কথোপকথনমূলক প্রতিক্রিয়া তৈরি করার লজিক থাকবে।

আপনার কাজটি সম্পন্ন করার মাধ্যমে ব্যবহারকারীটি পুরনো নাকি নতুন, তা শনাক্ত করা হয় এবং পুরনো ব্যবহারকারীদের জন্য অ্যাকশনটির অভিবাদন বার্তাটি পরিবর্তন করা হয়। পুরনো ব্যবহারকারীদের জন্য অভিবাদন বার্তাটি সংক্ষিপ্ত করা হয় এবং ব্যবহারকারীর ফিরে আসাকে স্বীকার করা হয়: " অসাধারণ অভিবাদন, অভিযাত্রী! গ্রিফিনবার্গের পৌরাণিক রাজ্যে তোমাকে আবার স্বাগত জানাই!"

এই কোডল্যাবের জন্য, আপনি আপনার ফুলফিলমেন্ট কোড সম্পাদনা ও স্থাপন করতে ক্লাউড ফাংশনস এডিটর ব্যবহার করবেন।

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

আপনার পরিপূর্ণতা গড়ে তুলুন

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

আপনার পরিপূর্ণতায় এই যুক্তিটি যোগ করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. টার্মিনালে, আপনার প্রজেক্টের রুট ডিরেক্টরিতে আছেন কিনা তা নিশ্চিত করুন এবং একটি নতুন webhooks ডিরেক্টরি তৈরি করুন:
mkdir webhooks 
  1. webhooks ডিরেক্টরিতে ActionsOnGoogleFulfillment.yaml নামে একটি নতুন ফাইল তৈরি করুন:
touch webhooks/ActionsOnGoogleFulfillment.yaml
  1. আপনার টেক্সট এডিটরে ActionsOnGoogleFulfillment.yaml খুলুন।
  2. ActionsOnGoogleFulfillment.yaml ফাইলে greeting হ্যান্ডলার এবং inlineCloudFunction কন্টেন্ট যোগ করুন:

ActionsOnGoogleFulfillment.yaml

handlers:
- name: greeting
inlineCloudFunction:
  executeFunction: ActionsOnGoogleFulfillment

ActionsOnGoogleFulfillment.yaml ফাইলটি আপনার ওয়েবহুক হ্যান্ডলারগুলো (যেমন greeting হ্যান্ডলার) নির্ধারণ করে এবং আপনার অ্যাকশনকে ওয়েবহুক এন্ডপয়েন্ট হিসেবে ক্লাউড ফাংশন ব্যবহার করতে নির্দেশ দেয়।

  1. webhooks ডিরেক্টরিতে ActionsOnGoogleFulfillment নামে একটি নতুন ডিরেক্টরি তৈরি করুন:
mkdir webhooks/ActionsOnGoogleFulfillment
  1. ActionsOnGoogleFulfillment ডিরেক্টরিতে index.js নামে একটি নতুন ফাইল তৈরি করুন:
touch webhooks/ActionsOnGoogleFulfillment/index.js
  1. আপনার টেক্সট এডিটরে index.js খুলুন।
  2. index.js এ নিম্নলিখিত কোডটি যোগ করুন:

index.js

const { conversation } = require('@assistant/conversation');
const functions = require('firebase-functions');

const app = conversation({debug: true});

app.handle('greeting', conv => {
 let message = 'A wondrous greeting, adventurer! Welcome back to the mythical land of Gryffinberg!';
 if (!conv.user.lastSeenTime) {
   message = 'Welcome to the mythical land of  Gryffinberg! Based on your clothes, you are not from around these lands. It looks like you\'re on your way to an epic journey.';
 }
 conv.add(message);
});


exports.ActionsOnGoogleFulfillment = functions.https.onRequest(app);

এই কোডটি greeting হ্যান্ডলারকে সংজ্ঞায়িত করে, যা প্রাপকের কাছে উপযুক্ত অভিবাদন পাঠায়।

ব্যবহারকারী।

  1. ফাইলটি সংরক্ষণ করুন।
  2. ActionsOnGoogleFulfillment ডিরেক্টরিতে package.json নামে একটি নতুন ফাইল তৈরি করুন:
touch webhooks/ActionsOnGoogleFulfillment/package.json

package.json ফাইলটি আপনার ওয়েবহুকের জন্য নির্ভরতা এবং অন্যান্য মেটাডেটা নির্দিষ্ট করে।

  1. আপনার টেক্সট এডিটরে package.json খুলুন।
  2. এই গিটহাব রিপোজিটরি থেকে কোডটি কপি করে package.json ফাইলে পেস্ট করুন।
  3. ফাইলটি সংরক্ষণ করুন।

কোডটি বুঝুন

আপনার ফুলফিলমেন্ট, যা Node.js-এর জন্য Actions on Google Fulfillment লাইব্রেরি ব্যবহার করে, গুগল অ্যাসিস্ট্যান্টের HTTP অনুরোধে সাড়া দেয়।

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

ওয়েবহুক ট্রিগার করতে মূল আহ্বানটি আপডেট করুন।

এখন যেহেতু আপনি greeting ফাংশনটি সংজ্ঞায়িত করেছেন, আপনি আপনার প্রধান ইনভোকেশন ইন্টেন্টে greeting ইভেন্ট হ্যান্ডলারটি কনফিগার করতে পারেন, যাতে ব্যবহারকারী যখন আপনার অ্যাকশনটি ইনভোক করবে, তখন অ্যাকশনটি এই ফাংশনটি কল করতে পারে।

নতুন greeting হ্যান্ডলারকে কল করার জন্য আপনার অ্যাকশনটি কনফিগার করতে, এই ধাপগুলো অনুসরণ করুন:

  1. আপনার টেক্সট এডিটরে custom/global/actions.intent.MAIN.yaml খুলুন।
  2. actions.intent.MAIN.yaml ফাইলের কোডটি নিচের কোড দিয়ে প্রতিস্থাপন করুন:

actions.intent.MAIN.yaml

handler:
  webhookHandler: greeting
transitionToScene: Start
  1. ফাইলটি সংরক্ষণ করুন।

এখন, যখন আপনার মূল ইনভোকেশন ইনটেন্টটি মিলে যায়, তখন greeting ওয়েবহুক হ্যান্ডলারটি কল করা হয়।

সিমুলেটরে আপডেট করা প্রধান আহ্বান পরীক্ষা করুন

সিমুলেটরে আপনার অ্যাকশনটি পরীক্ষা করতে, এই ধাপগুলো অনুসরণ করুন:

  1. টার্মিনালে নিম্নলিখিত কমান্ডটি চালান:
gactions deploy preview

আপনার প্রাপ্ত আউটপুটটি নিম্নলিখিতের মতো হবে:

✔ Done. You can now test your changes in Simulator with this URL: http://console.actions.google.com/project/{project-id}/simulator?disableAutoPreview
  1. প্রদত্ত URL-টি কপি করে ব্রাউজারে পেস্ট করুন।
  2. সিমুলেটরে আপনার অ্যাকশনটি পরীক্ষা করতে, ইনপুট ফিল্ডে Talk to my test app টাইপ করুন এবং Enter চাপুন।

যেহেতু আপনি এই কোডল্যাবে আগেই আপনার অ্যাকশনটি পরীক্ষা করেছেন, তাই আপনি একজন নতুন ব্যবহারকারী নন, এবং সেই কারণে আপনি নিম্নলিখিত সংক্ষিপ্ত সম্ভাষণটি পাবেন: " এক বিস্ময়কর সম্ভাষণ, অভিযাত্রী! গ্রিফিনবার্গের পৌরাণিক ভূমিতে আপনাকে পুনরায় স্বাগত জানাই!..."

৬. অ্যাকশন বিল্ডারের সাহায্যে অ্যাকশনকে দৃশ্যমান করুন

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

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

আপনার অ্যাকশনস প্রজেক্টটি পুশ করতে এবং অ্যাকশনস কনসোলে তা দেখতে, এই ধাপগুলো অনুসরণ করুন:

  1. আপনার প্রজেক্টটি অ্যাকশন কনসোলে পুশ করতে টার্মিনালে নিম্নলিখিত কমান্ডটি চালান:
gactions push

আপনার প্রাপ্ত আউটপুটটি নিম্নলিখিতের মতো হবে:

✔ Done. Files were pushed to Actions Console, and you can now view your project with this URL: https://console.actions.google.com/project/{project-id}/overview. If you want to test your changes, run "gactions deploy preview", or navigate to the Test section in the Console.
  1. প্রদত্ত URL-টি কপি করে ব্রাউজারে পেস্ট করুন।
  2. অ্যাকশন কনসোলে , উপরের নেভিগেশন বারে থাকা ডেভেলপ- এ ক্লিক করুন।
  3. Scenes- এর পাশের ড্রপ-ডাউন তীরটিতে ক্লিক করুন এবং Start-এ ক্লিক করুন। আপনি আপনার Action-এর Start scene-এর একটি ভিজ্যুয়াল উপস্থাপনা দেখতে পাবেন, যেমনটি নিম্নলিখিত স্ক্রিনশটে দেখানো হয়েছে:

332404b148609e96.png

আপনার প্রকল্পটি পরিচ্ছন্ন করুন [প্রস্তাবিত]

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

  1. ক্লাউড প্রজেক্ট এবং রিসোর্সগুলো ডিলিট করতে, 'প্রজেক্ট বন্ধ করা (ডিলিট করা)' বিভাগে তালিকাভুক্ত ধাপগুলো সম্পূর্ণ করুন।
  1. ঐচ্ছিক: অ্যাকশন কনসোল থেকে আপনার প্রজেক্টটি অবিলম্বে মুছে ফেলার জন্য, 'একটি প্রজেক্ট মুছুন' বিভাগে তালিকাভুক্ত ধাপগুলি সম্পূর্ণ করুন। আপনি যদি এই ধাপটি সম্পূর্ণ না করেন, তাহলে প্রায় ৩০ দিন পর আপনার প্রজেক্টটি স্বয়ংক্রিয়ভাবে মুছে যাবে।

৭. অভিনন্দন!

আপনি অ্যাকশনস এসডিকে ব্যবহার করে গুগল অ্যাসিস্ট্যান্টের জন্য অ্যাকশন তৈরির প্রাথমিক বিষয়গুলো জানেন।

আপনি যা কভার করেছেন

  • অ্যাকশন কনসোলে কীভাবে একটি অ্যাকশন প্রজেক্ট সেট আপ করবেন
  • আপনার স্থানীয় ফাইল সিস্টেমে আপনার অ্যাকশন প্রজেক্ট তৈরি করতে অ্যাকশন এসডিকে কীভাবে ব্যবহার করবেন
  • মূল আহ্বানে কীভাবে একটি প্রম্পট যোগ করবেন যাতে ব্যবহারকারীরা আপনার অ্যাকশনের সাথে কথোপকথন শুরু করতে পারে
  • সিন, ইনটেন্ট, ট্রানজিশন, সাজেশন চিপ এবং ফুলফিলমেন্ট ব্যবহার করে কীভাবে একটি কথোপকথনমূলক ইন্টারফেস তৈরি করবেন
  • অ্যাকশন সিমুলেটরের সাহায্যে আপনার অ্যাকশন কীভাবে পরীক্ষা করবেন

আরও জানুন

গুগল অ্যাসিস্ট্যান্টের জন্য অ্যাকশন তৈরি করার বিষয়ে আরও জানতে নিম্নলিখিত রিসোর্সগুলো দেখুন:

Follow @ActionsOnGoogle on Twitter for the latest announcements and tweet with #AoGDevs to share what you build!

মতামত সমীক্ষা

Before you go, please fill out a brief survey about your experience.