1. আপনি শুরু করার আগে
এই কোডল্যাবে, আপনি একটি ডায়ালগফ্লো অ্যাপের জন্য কথোপকথনের অভিজ্ঞতা তৈরি করতে ফ্রন্টএন্ড জ্যাঙ্গো ক্লায়েন্ট তৈরি করতে শিখবেন। বিশেষ করে, আপনি নিম্নলিখিতগুলি করবেন:
- জ্যাঙ্গো ফ্রন্টএন্ড ক্লায়েন্ট ডাউনলোড, সেট আপ এবং চালান।
- Django ফ্রন্টএন্ড ক্লায়েন্ট থেকে কল করার জন্য Dialogflow detectIntent এন্ডপয়েন্ট সেট আপ করুন।
- অ্যাপ ইঞ্জিনে Google ক্লাউডে অ্যাপটি স্থাপন করুন।
- প্রতি ব্যবহারকারীর অনুরোধে ক্যালেন্ডারের আমন্ত্রণগুলি সেট আপ করা হচ্ছে কিনা তা পরীক্ষা করুন।
পূর্বশর্ত
এগিয়ে যাওয়ার আগে, আপনাকে নিম্নলিখিত কোডল্যাবগুলি সম্পূর্ণ করতে হবে:
- Dialogflow এর সাথে একটি অ্যাপয়েন্টমেন্ট সময়সূচী তৈরি করুন
- ডায়ালগফ্লোতে সত্তাগুলিকে বুঝুন
- ক্যালেন্ডারের সাথে ডায়ালগফ্লোকে সংহত করে পরিপূর্ণতা বুঝুন
আপনি কি শিখবেন
- ডায়ালগফ্লো-এর জন্য কীভাবে জ্যাঙ্গো ফ্রন্টএন্ড ক্লায়েন্ট সেট আপ এবং চালাবেন
- অ্যাপ ইঞ্জিনে গুগল ক্লাউডে জ্যাঙ্গো ফ্রন্টএন্ড ক্লায়েন্ট কীভাবে স্থাপন করবেন
- একটি কাস্টম ফ্রন্টএন্ড থেকে একটি ডায়ালগফ্লো অ্যাপ কীভাবে পরীক্ষা করবেন
আপনি কি নির্মাণ করবেন
- আপনি Dialogflow এর জন্য একটি জ্যাঙ্গো ফ্রন্টএন্ড ক্লায়েন্ট সেট আপ করবেন এবং চালাবেন।
- আপনি অ্যাপ ইঞ্জিনে Google ক্লাউডে জ্যাঙ্গো ফ্রন্টএন্ড ক্লায়েন্ট স্থাপন করবেন।
- আপনি সেই কাস্টম ফ্রন্টএন্ড থেকে একটি ডায়ালগফ্লো অ্যাপ পরীক্ষা করবেন।
আপনি কি প্রয়োজন হবে
- পাইথনের একটি প্রাথমিক ধারণা
- ডায়ালগফ্লো সম্পর্কে একটি প্রাথমিক ধারণা
2. আর্কিটেকচারাল ওভারভিউ
আপনি অ্যাপয়েন্টমেন্ট শিডিউলার কথোপকথনের অভিজ্ঞতা ব্যবহার করবেন যা আপনি আগে তৈরি করেছিলেন এবং অ্যাপের জন্য একটি কাস্টম ফ্রন্টএন্ড তৈরি করবেন। আপনি জ্যাঙ্গো দিয়ে ফ্রন্টএন্ড তৈরি করবেন, স্থানীয়ভাবে চালাবেন এবং পরীক্ষা করবেন এবং অ্যাপ ইঞ্জিনে এটি স্থাপন করবেন।
ব্যবহারকারী ফ্রন্টএন্ডের মাধ্যমে একটি অ্যাপয়েন্টমেন্টের অনুরোধ পাঠাবে, যা অনুরোধকৃত তারিখ এবং সময়ের জন্য একটি অ্যাপয়েন্টমেন্ট সেট আপ করতে ডায়ালগফ্লো সনাক্তকারী এপিআইকে কল করবে। ডায়ালগফ্লো পূর্ণতা তারপর সংশ্লিষ্ট অ্যাপয়েন্টমেন্ট সেট করার জন্য ক্যালেন্ডারে একটি অনুরোধ পাঠাবে এবং Dialogflow এর মাধ্যমে ব্যবহারকারীকে একটি নিশ্চিতকরণ ফেরত দেবে।
শেষ ফলাফল এই মত দেখাবে:
3. ফ্রন্টএন্ড অ্যাপটি ডাউনলোড করুন এবং চালান
- আপনার কম্পিউটারের স্থানীয় টার্মিনালে এই কমান্ডটি টাইপ করে আপনার স্থানীয় মেশিনে সংগ্রহস্থল ক্লোন করুন:
git clone https://github.com/priyankavergadia/Django-Dialogflow-Appointment-Scheduler.git
- কোড রয়েছে এমন ডিরেক্টরিতে পরিবর্তন করুন। বিকল্পভাবে, আপনি একটি জিপ হিসাবে নমুনা ডাউনলোড করতে পারেন এবং এটি নিষ্কাশন করতে পারেন।
cd Django-Dialogflow-Appointment-Scheduler
4. আপনার স্থানীয় পরিবেশ সেট আপ করুন
মোতায়েন করা হলে, আপনার অ্যাপ ক্লাউড SQL প্রক্সি ব্যবহার করে যা অ্যাপ ইঞ্জিন স্ট্যান্ডার্ড এনভায়রনমেন্টে তৈরি করা হয়েছে আপনার ক্লাউড SQL দৃষ্টান্তের সাথে যোগাযোগ করতে। যাইহোক, স্থানীয়ভাবে আপনার অ্যাপ পরীক্ষা করতে, আপনাকে অবশ্যই আপনার ডেভেলপমেন্ট পরিবেশে ক্লাউড SQL প্রক্সির একটি স্থানীয় কপি ইনস্টল এবং ব্যবহার করতে হবে। আরও তথ্যের জন্য, ক্লাউড SQL প্রক্সি সম্পর্কে দেখুন।
আপনার ক্লাউড এসকিউএল ইনস্ট্যান্সে প্রাথমিক প্রশাসক কার্য সম্পাদন করতে, আপনি MySQL ক্লায়েন্টের জন্য Cloud SQL ব্যবহার করতে পারেন।
ক্লাউড এসকিউএল প্রক্সি ইনস্টল করুন
ক্লাউড এসকিউএল প্রক্সি ডাউনলোড এবং ইনস্টল করুন। ক্লাউড এসকিউএল প্রক্সি স্থানীয়ভাবে চালানোর সময় আপনার ক্লাউড এসকিউএল ইনস্ট্যান্সের সাথে সংযোগ করতে ব্যবহৃত হয়।
প্রক্সি ডাউনলোড করুন।
curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.amd64
প্রক্সি এক্সিকিউটেবল করুন।
chmod +x cloud_sql_proxy
একটি ক্লাউড এসকিউএল উদাহরণ তৈরি করুন
- MySQL দ্বিতীয় প্রজন্মের উদাহরণের জন্য একটি ক্লাউড SQL তৈরি করুন। উদাহরণের নাম "পোল-ইনস্ট্যান্স" বা অনুরূপ কিছু। দৃষ্টান্তটি প্রস্তুত হতে কয়েক মিনিট সময় লাগতে পারে। এটি প্রস্তুত হওয়ার পরে, এটি উদাহরণ তালিকায় দৃশ্যমান হওয়া উচিত।
- নিম্নলিখিত কমান্ডটি চালানোর জন্য gcloud টুল ব্যবহার করুন যেখানে
[YOUR_INSTANCE_NAME]
আপনার উদাহরণের নাম উপস্থাপন করে। পরবর্তী ধাপের জন্য উদাহরণ সংযোগ নামের জন্য দেখানো মানটির একটি নোট করুন, যা[PROJECT_NAME]:[REGION_NAME]:[INSTANCE_NAME].
gcloud sql instances describe [YOUR_INSTANCE_NAME]
বিকল্পভাবে, আপনি ইনস্ট্যান্স সংযোগের নাম দেখতে ইনস্ট্যান্সে ক্লিক করতে পারেন।
আপনার ক্লাউড এসকিউএল ইনস্ট্যান্স শুরু করুন
পূর্ববর্তী ধাপ থেকে ইনস্ট্যান্স সংযোগ নাম ব্যবহার করে ক্লাউড SQL প্রক্সি শুরু করুন। [YOUR_INSTANCE_CONNECTION_NAME]
কে আপনি আগের ধাপে রেকর্ড করা মান দিয়ে প্রতিস্থাপন করুন। এটি স্থানীয় পরীক্ষার উদ্দেশ্যে আপনার স্থানীয় কম্পিউটার থেকে আপনার উদাহরণে একটি সংযোগ স্থাপন করে। আপনি স্থানীয়ভাবে আপনার অ্যাপ পরীক্ষা করার সময় ক্লাউড SQL প্রক্সি চালু রাখুন।
./cloud_sql_proxy -instances="[YOUR_INSTANCE_CONNECTION_NAME]"=tcp:3306
এর পরে, একটি নতুন ক্লাউড এসকিউএল ব্যবহারকারী এবং ডাটাবেস তৈরি করুন।
- পোলস-ইনস্ট্যান্স নামে আপনার ক্লাউড SQL ইন্সট্যান্সের জন্য Google ক্লাউড কনসোল ব্যবহার করে একটি নতুন ডাটাবেস তৈরি করুন। উদাহরণস্বরূপ, আপনি নাম হিসাবে "নির্বাচন" লিখতে পারেন।
- পোলস-ইনস্ট্যান্স নামে আপনার ক্লাউড SQL ইন্সট্যান্সের জন্য ক্লাউড কনসোল ব্যবহার করে একটি নতুন ব্যবহারকারী অ্যাকাউন্ট তৈরি করুন।
ডাটাবেস সেটিংস কনফিগার করুন
- সম্পাদনার জন্য
mysite/settings.py
খুলুন। - দুটি জায়গায়,
[YOUR-USERNAME]
এবং[YOUR-PASSWORD]
কে আপনার আগের বিভাগে তৈরি করা ডাটাবেস ব্যবহারকারীর নাম এবং পাসওয়ার্ড দিয়ে প্রতিস্থাপন করুন। এটি অ্যাপ ইঞ্জিন স্থাপনা এবং স্থানীয় পরীক্ষার জন্য ডাটাবেসের সাথে সংযোগ সেট আপ করতে সহায়তা করে। - যে লাইনে বলা হয়েছে,
'HOST': 'cloudsql/ [PROJECT_NAME]:[REGION_NAME]:[INSTAN
CE_NAME],'
[PROJECT_NAME]:[REGION_NAME]:[INSTANCE_NAME]
আগের বিভাগে রেকর্ড করা মান দিয়ে প্রতিস্থাপন করুন। - নিম্নলিখিত কমান্ডটি চালান এবং পরবর্তী ধাপের জন্য আউটপুটেড ইনস্ট্যান্স সংযোগ নামের মানটি অনুলিপি করুন।
gcloud sql instances describe [YOUR_INSTANCE_NAME]
- পূর্ববর্তী বিভাগে আপনি যে মানটি রেকর্ড করেছেন তার সাথে
[YOUR-CONNECTION-NAME]
প্রতিস্থাপন করুন। - পূর্ববর্তী বিভাগে আপনি যে নামটি বেছে নিয়েছেন তার সাথে
[YOUR-DATABASE]
প্রতিস্থাপন করুন।
# [START db_setup] if os.getenv('GAE_APPLICATION', None): # Running on production App Engine, so connect to Google Cloud SQL using # the unix socket at /cloudsql/<your-cloudsql-connection string> DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'HOST': '/cloudsql/[PROJECT_NAME]:[REGION_NAME]:[INSTANCE_NAME]', 'USER': '[YOUR-USERNAME]', 'PASSWORD': '[YOUR-PASSWORD]', 'NAME': '[YOUR-DATABASE]', } } else: # Running locally so connect to either a local MySQL instance or connect to # Cloud SQL via the proxy. To start the proxy via command line: # $ cloud_sql_proxy -instances=[INSTANCE_CONNECTION_NAME]=tcp:3306 # See https://cloud.google.com/sql/docs/mysql-connect-proxy DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'HOST': '127.0.0.1', 'PORT': '3306', 'NAME': '[YOUR-DATABASE]', 'USER': '[YOUR-USERNAME]', 'PASSWORD': '[YOUR-PASSWORD]' } } # [END db_setup]
-
settings.py
বন্ধ করুন এবং সংরক্ষণ করুন।
5. পরিষেবা অ্যাকাউন্ট সেটআপ
- Dialogflow এর কনসোলে, ক্লিক করুন . প্রজেক্ট আইডির পাশের সাধারণ ট্যাবে, Google ক্লাউড- এ ক্লিক করুন .
- নেভিগেশন মেনুতে ক্লিক করুন ☰ > APIs & Services > Credentials .
- ক্রিয়েট ক্রেডেনশিয়াল > সার্ভিস অ্যাকাউন্টে ক্লিক করুন।
- পরিষেবা অ্যাকাউন্টের বিবরণে , পরিষেবা অ্যাকাউন্টের নাম হিসাবে "অ্যাপয়েন্টমেন্ট-শিডিউলার" লিখুন, তারপর তৈরি করুন ক্লিক করুন৷
- যেখানে বলা আছে এই পরিষেবা অ্যাকাউন্টটিকে প্রকল্পে অ্যাক্সেস দিন , এটি এড়িয়ে যেতে অবিরত ক্লিক করুন৷
- যেখানে বলা হয়েছে ব্যবহারকারীদের এই পরিষেবা অ্যাকাউন্টে অ্যাক্সেস দিন (ঐচ্ছিক) , Create Key > JSON > Create এ ক্লিক করুন।
একটি JSON ফাইল আপনার কম্পিউটারে ডাউনলোড হবে, যা আপনাকে নিম্নলিখিত সেটআপ বিভাগে প্রয়োজন হবে৷
6. অ্যাপ থেকে কল করার জন্য Dialogflow detectIntent এন্ডপয়েন্ট সেট আপ করুন
- চ্যাট ফোল্ডারে, আপনার শংসাপত্র JSON ফাইলের সাথে
AppointmentScheduler.json
প্রতিস্থাপন করুন। - চ্যাট ফোল্ডারের
views.py
এ,GOOGLE_PROJECT_ID = "<YOUR_PROJECT_ID>"
আপনার প্রকল্প আইডিতে পরিবর্তন করুন৷
7. স্থানীয়ভাবে অ্যাপটি তৈরি করুন এবং চালান
আপনার স্থানীয় কম্পিউটারে জ্যাঙ্গো অ্যাপ চালানোর জন্য, আপনাকে পাইথন, পিপ এবং ভার্চুয়ালেনভ সহ একটি পাইথন উন্নয়ন পরিবেশ সেট আপ করতে হবে। নির্দেশাবলীর জন্য, পাইথন ডেভেলপমেন্ট এনভায়রনমেন্ট সেট আপ করা দেখুন।
- একটি বিচ্ছিন্ন পাইথন পরিবেশ তৈরি করুন এবং নির্ভরতা ইনস্টল করুন:
virtualenv env source env/bin/activate pip install -r requirements.txt
- আপনার মডেল সেট আপ করতে জ্যাঙ্গো মাইগ্রেশন চালান।
python3 manage.py makemigrations python3 manage.py makemigrations polls python3 manage.py migrate
- একটি স্থানীয় ওয়েব সার্ভার শুরু করুন।
python3 manage.py runserver
- আপনার ওয়েব ব্রাউজারে, http://localhost:8000/ লিখুন। নিচের স্ক্রিনশটে দেখা হিসাবে আপনি একটি সাধারণ ওয়েবপৃষ্ঠা দেখতে পাবেন:
নমুনা অ্যাপ পৃষ্ঠাগুলি আপনার কম্পিউটারে চলমান জ্যাঙ্গো ওয়েব সার্ভার দ্বারা বিতরণ করা হয়। আপনি যখন এগিয়ে যাওয়ার জন্য প্রস্তুত হন, তখন স্থানীয় ওয়েব সার্ভার বন্ধ করতে Control+S
( Macintosh-এ Command+S
) টিপুন।
8. অ্যাপ ইঞ্জিন স্ট্যান্ডার্ড পরিবেশে অ্যাপটি স্থাপন করুন
settings.py
এ STATIC_ROOT
দ্বারা নির্দিষ্ট ফোল্ডারে অ্যাপের সমস্ত স্ট্যাটিক ফাইল সরাতে নিম্নলিখিত কমান্ডটি চালান:
python3 manage.py collectstatic
app.yaml
ফাইলটি যেখানে রয়েছে সেই অ্যাপের ডিরেক্টরিতে নিম্নলিখিত কমান্ডটি চালিয়ে অ্যাপটি আপলোড করুন:
gcloud app deploy
বার্তাটির জন্য অপেক্ষা করুন যা আপনাকে জানায় যে আপডেটটি সম্পন্ন হয়েছে।
9. ফ্রন্টএন্ড ক্লায়েন্ট পরীক্ষা করুন
আপনার ওয়েব ব্রাউজারে, https://<your_project_id>.appspot.com লিখুন।
এই সময়, আপনার অনুরোধ অ্যাপ ইঞ্জিন স্ট্যান্ডার্ড পরিবেশে চলমান একটি ওয়েব সার্ভার দ্বারা পরিবেশিত হয়৷
app deploy
কমান্ড app.yaml
এ বর্ণিত অ্যাপটিকে স্থাপন করে এবং নতুন স্থাপন করা সংস্করণটিকে ডিফল্ট সংস্করণ হিসাবে সেট করে, যার ফলে এটি সমস্ত নতুন ট্র্যাফিক পরিবেশন করে।
10. উৎপাদন
11. যখন আপনি আপনার সামগ্রী উৎপাদনে পরিবেশন করার জন্য প্রস্তুত হন, তখন mysite/settings.py-এ DEBUG ভেরিয়েবলটিকে False এ পরিবর্তন করুন।
12. আপনার চ্যাটবট পরীক্ষা করুন
https://<your_project_id>.appspot.com-এ নেভিগেট করুন এবং নিম্নলিখিতটি লিখুন:
- ব্যবহারকারী: "আগামীকাল বিকেল ৩টায় গাড়ির নিবন্ধনের জন্য একটি অ্যাপয়েন্টমেন্ট সেট করুন।"
- চ্যাটবট নিম্নরূপ প্রতিক্রিয়া জানায়:
- ক্যালেন্ডার বই সাড়া.
13. পরিষ্কার করুন
আপনি যদি অন্যান্য ডায়ালগফ্লো কোডল্যাবগুলি সম্পূর্ণ করার পরিকল্পনা করেন, তাহলে আপাতত এই অংশটি এড়িয়ে যান এবং পরে এটিতে ফিরে যান।
ডায়ালগফ্লো এজেন্ট মুছুন
- ক্লিক করুন আপনার বিদ্যমান এজেন্টের পাশে।
- সাধারণ ট্যাবে, নীচে স্ক্রোল করুন এবং এই এজেন্ট মুছুন ক্লিক করুন।
- প্রদর্শিত উইন্ডোতে মুছুন টাইপ করুন এবং মুছুন ক্লিক করুন।
14. অভিনন্দন
আপনি ডায়ালগফ্লোতে একটি চ্যাটবট তৈরি করেছেন এবং এটি ক্যালেন্ডারের সাথে একত্রিত করেছেন। আপনি এখন একজন চ্যাটবট বিকাশকারী!
আরও জানুন
আরও জানতে নিম্নলিখিত সংস্থানগুলি দেখুন:
- Dialogflow এর সাথে Vision API একত্রিত করুন
- ডায়ালগফ্লো গিথুব পৃষ্ঠায় কোড নমুনা