১. শুরু করার আগে
এই কোডল্যাবটি আপনাকে ডেটা কোয়েরি করার জন্য নিজস্ব চ্যাট অ্যাপ্লিকেশন তৈরি করতে লুকার (Looker) এবং বিগকোয়েরি (BigQuery)-এর সাথে কনভারসেশনাল অ্যানালিটিক্স এপিআই (CA API) ব্যবহারের পদ্ধতি শেখাবে। এর থেকে সর্বাধিক সুবিধা পেতে হলে, আপনার বিগকোয়েরি, লুকার, এলএলএম ও এজেন্ট এবং পাইথন সম্পর্কে ধারণা থাকা উচিত।
আপনি যা শিখবেন
এই কোডল্যাবটি অনুসরণ করার পর, আপনি যা শিখবেন:
- লুকারের সাথে কনভারসেশনাল অ্যানালিটিক্স কীভাবে ব্যবহার করবেন
- কনভারসেশনাল অ্যানালিটিক্স পাইথন স্ট্রিমলিট কুইকস্টার্ট অ্যাপটি কীভাবে সেট আপ এবং ব্যবহার করবেন (এবং অ্যাপটি কীভাবে কাজ করে)
- কনভারসেশনাল অ্যানালিটিক্স-এর সাথে সিমান্টিক মডেলিং-এর জন্য লুকার ব্যবহারের সুবিধাসমূহ
আপনার যা যা লাগবে
এই কোডল্যাবটি সম্পন্ন করতে আপনার প্রয়োজন হবে:
- ASC ডেমোগ্রাফিক ডেটা লুকার ব্লক ইনস্টল করা একটি লুকার ইনস্ট্যান্স
- আপনার Looker ইনস্ট্যান্সে API এবং ডেভেলপার অ্যাক্সেস
- পাইথন ৩.১১+ সংস্করণ, গিট এবং জিক্লাউড ইনস্টল করা একটি স্থানীয় পরিবেশ।
- একটি ক্লাউড প্রজেক্ট যেখানে আপনার ইউজার অ্যাকাউন্টের জন্য এই IAM রোলগুলো সেট আপ করা আছে:
-
roles/bigquery.dataViewerBigQuery ডেটা ভিউয়ার -
roles/bigquery.userবিগকোয়েরি ব্যবহারকারী -
roles/looker.instanceUserলুকার ইনস্ট্যান্স ইউজার
২. BigQuery ব্যবহার করে আপনার চ্যাট অ্যাপটি তৈরি করুন এবং পরীক্ষা করে দেখুন।
চলুন প্রথমে BigQuery-কে ডেটা সোর্স হিসেবে ব্যবহার করে কনভারসেশনাল অ্যানালিটিক্স কুইকস্টার্ট অ্যাপটি সেট আপ করে পরীক্ষা করে দেখি।
ক্লাউড এপিআই প্রমাণীকরণ এবং সক্রিয় করুন
- আপনার ব্যবহারকারী অ্যাকাউন্ট দিয়ে স্থানীয়ভাবে প্রমাণীকরণ করুন:
gcloud auth login
- ক্লাউড প্রজেক্ট এপিআই সক্রিয় করুন। অনুগ্রহ করে
YOUR_PROJECT_IDজায়গায় আপনার গুগল ক্লাউড প্রজেক্টের আইডি লিখুন:
gcloud services enable geminidataanalytics.googleapis.com bigquery.googleapis.com cloudaicompanion.googleapis.com --project=YOUR_PROJECT_ID
- অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল (ADC) এবং বিলিং সেট করুন:
gcloud auth application-default login
gcloud auth application-default set-quota-project YOUR_PROJECT_ID
কুইকস্টার্ট অ্যাপটি সেট আপ করুন
- কুইকস্টার্ট গিটহাব রিপোটি আপনার লোকাল এনভায়রনমেন্টে ক্লোন করুন। নিচে দেওয়া উদাহরণ কমান্ডটি দেখুন:
git clone "https://github.com/looker-open-source/ca-api-quickstarts"
- আপনার ক্লোন করা
ca-api-quickstartsডিরেক্টরিতে প্রবেশ করুন:
cd ca-api-quickstarts
-
.streamlitডিরেক্টরিতে একটিsecrets.tomlফাইল তৈরি করুন।YOUR_LOOKER_CLIENT_IDএবংYOUR_LOOKER_CLIENT_SECRETহবে আপনার Looker ইনস্ট্যান্সের Looker ক্লায়েন্ট আইডি এবং Looker ক্লায়েন্ট সিক্রেট। ফাইলটির বিষয়বস্তু নিম্নরূপ হবে:
[cloud]
project_id = "YOUR_PROJECT_ID"
[looker]
client_id = "YOUR_LOOKER_CLIENT_ID"
client_secret = "YOUR_LOOKER_CLIENT_SECRET"
ফাইলটি তৈরি করতে আপনি নিম্নলিখিত উদাহরণ কমান্ডটি ব্যবহার করতে পারেন। আপনার প্রজেক্ট আইডি, ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট দিয়ে মানগুলি প্রতিস্থাপন করতে ভুলবেন না:
cat > .streamlit/secrets.toml <<'EOF'
[cloud]
project_id = "YOUR_PROJECT_ID"
[looker]
client_id = "YOUR_LOOKER_CLIENT_ID"
client_secret = "YOUR_LOOKER_CLIENT_SECRET"
EOF
- কুইকস্টার্ট অ্যাপের জন্য প্রয়োজনীয় পাইথন ইনস্টল করুন:
pip install -r requirements.txt
- কুইকস্টার্ট অ্যাপটি চালান:
streamlit run app.py
- আপনার পছন্দের ব্রাউজারে https://localhost:8501 খুলুন।
কুইকস্টার্ট অ্যাপটি ব্যবহার করে দেখুন
আপনি এখন কুইকস্টার্ট অ্যাপের এজেন্ট পেজে আছেন। আপনার কোনো ডেটা এজেন্ট উপলব্ধ নেই।
- এখন চলুন 'Create Agent' ফর্মে এমন একটি ডেটা এজেন্ট তৈরি করি যা জলদস্যুর মতো কথা বলে:
- ডিসপ্লে নেম ফিল্ডটি সেট করুন:
Pirate BQ Agent
- সিস্টেম নির্দেশাবলী ক্ষেত্রটি সেট করুন:
You are a pirate. Answer questions like a pirate
- BigQuery বিকল্পটি নির্বাচন করুন।
- প্রজেক্ট ফিল্ডটি সেট করুন:
bigquery-public-data
- ডেটাসেট ফিল্ডটি সেট করুন:
google_trends
- টেবিল ফিল্ডটি সেট করুন:
top_rising_terms
- এজেন্ট তৈরি করুন নির্বাচন করুন।
- এবার বাম দিকের প্রধান নেভিগেশনের মাধ্যমে চ্যাট পেজে যাওয়া যাক। আমাদের নতুন তৈরি করা এজেন্টটি চ্যাট করার জন্য প্রস্তুত। একটি প্রম্পট/মেসেজ যোগ করে চ্যাট শুরু করা যাক: "হ্যালো, কেমন আছেন?"
- এখন চলুন এই ডেটাসেটটি সম্পর্কে একটু জেনে নেওয়া যাক: "এই ডেটাসেটটি কী বিষয়ক?"
- আরেকটি প্রশ্ন করুন - অনেকটা এইরকম:
- ডেটাসেটে কোন কোন [রাজ্যের নাম লিখুন] অবস্থান রয়েছে?
- আপনি কি আমাকে [শহর, রাজ্য]-এর গত ২ সপ্তাহের তথ্য দিতে পারবেন?
- আপনি কি একটি ভিজ্যুয়ালাইজেশন তৈরি করতে পারেন?
আপনি এইমাত্র আপনার নিজের চ্যাট অ্যাপ্লিকেশনে আপনার ডেটা এজেন্ট এবং BigQuery ডেটার সাথে একটি বহু-পর্যায়ের কথোপকথন সম্পন্ন করেছেন।
৩. লুকারে আপনার ডেটা মডেল করুন এবং অন্বেষণ করুন।
এবার Looker-এ সেই একই BigQuery ডেটা মডেল করে বিশ্লেষণ করা যাক।
BigQuery আদমশুমারির ডেটা অনুসন্ধান করুন
যখন আমরা একটি বৃহত্তর, রিলেশনাল ডেটাসেটের সাথে সংযোগ স্থাপন করি তখন কী ঘটে? প্রথমে আমরা একটি নতুন এজেন্ট তৈরি করব।
- এজেন্ট পেজের ' এজেন্ট তৈরি করুন ' ফর্মে ফিরে যান।
- ডিসপ্লে নেম ফিল্ডটি সেট করুন:
BQ Census Agent
- সিস্টেম নির্দেশাবলী ক্ষেত্রটি সেট করুন:
You are really excited about census data, you love learning about the demographics in your area because you want to come up with marketing campaigns for your company
- BigQuery বিকল্পটি নির্বাচন করুন।
- প্রজেক্ট ফিল্ডটি সেট করুন:
bigquery-public-data
- ডেটাসেট ফিল্ডটি সেট করুন:
census_bureau_acs
- টেবিল ফিল্ডটি সেট করুন:
blockgroup_2018_5yr
- এজেন্ট তৈরি করুন নির্বাচন করুন।
- নতুন তৈরি করা এজেন্টকে এই দুটি প্রশ্নই জিজ্ঞাসা করুন:
- আপনার কাছে কী ডেটা আছে?
- আপনি কি আমাকে আমার ডেটার একটি প্রিভিউ দেখাতে পারেন?
জনগণনার ডেটা মডেল করতে লুকার ব্যবহার করুন।
এখন আমরা BigQuery সেন্সাস ডেটা সংজ্ঞায়িত করতে একটি LookML মডেল ব্যবহার করব। আমরা কিছুক্ষণ আগে দেখা সমস্যাগুলো সমাধান করব।
- আপনার Looker ইনস্ট্যান্সে লগ ইন করুন
- আপনার ACS জনসংখ্যাতাত্ত্বিক ডেটা ব্লক ফাইলগুলি খুঁজে পেতে, বাম দিকের প্রধান নেভিগেশনে যান, 'Develop' নির্বাচন করুন এবং তারপরে 'marketplace_acs_census-v2' নির্বাচন করুন।
- চলুন একটি লুকার ভিউ দেখি।
imported_projectডিরেক্টরি,acs_census-v2ডিরেক্টরি এবংgeographyডিরেক্টরি খুলুন। - অবশেষে,
cbsa.viewফাইলটি খুলুন। - ১৭ নম্বর লাইনে আমরা দেখতে পাচ্ছি যে LookML একটি ডিরাইভড টেবিল তৈরি করছে। অন্য কথায়, এই কোডটি দুটি পাবলিক BigQuery ডেটাসেটকে জয়েন করে একটি নতুন, সম্মিলিত টেবিল তৈরি করছে, যার একটিতে রয়েছে আদমশুমারির ডেটা এবং অন্যটিতে ভৌগোলিক সীমানার ডেটা। LookML একটি পারসিস্টেন্ট ডিরাইভড টেবিল তৈরি করে কোয়েরি করার মাধ্যমে আমাদেরকে একাধিক ডেটাসেটের উপর জয়েন করার সুযোগ দেয়।
এছাড়াও, সিস্টেম নির্দেশাবলীর পরিবর্তে জয়েনটি ভার্সনযোগ্য কোডে (LookML) সংজ্ঞায়িত করা হয়, যা এজেন্ট ডেভেলপমেন্টকে আরও স্কেলেবল করে তোলে। LookML-এর সাহায্যে, আপনি আপনার ডেটার চারপাশে নির্দিষ্ট অনুমান এবং সীমাবদ্ধতা নির্ধারণ করতে পারেন, যা আপনার ব্যবহারকারীদের ডেটা এজেন্টের মাধ্যমে ডেটার সাথে চ্যাট করার সময় সহায়তা করে।
লুকার মডেলকৃত আদমশুমারির তথ্য অন্বেষণ করুন
চলুন, Explore-এ একটি দ্রুত কোয়েরি চালিয়ে দেখানো যাক যে, কোয়েরি করার জন্য আমাদের একটিই কেন্দ্রীভূত ডেটা উৎস রয়েছে।
- বাম দিকের প্রধান নেভিগেশন মেনু থেকে, Explore , তারপর Census Data Block, এবং তারপর State and County নির্বাচন করুন।
- শিক্ষা > অ্যাসোসিয়েটস ডিগ্রি পরিমাপটি নির্বাচন করুন।
- নিম্নলিখিত মাত্রাগুলি নির্বাচন করুন:
- ভূগোল > ব্লক গ্রুপ
- ভূগোল > কাউন্টি > কাউন্টির নাম
- ভূগোল > রাজ্য > রাজ্য ।
- কোয়েরিটি (উপরে ডানদিকে) চালান এবং আপনি এখন দেখতে পাবেন যে ওই জিওগ্রাফি আইডিগুলো (যাদের 'ব্লক গ্রুপ' বলা হচ্ছে) এখন পাঠযোগ্য স্ট্রিংয়ের সাথে যুক্ত হয়েছে।
- ভিজ্যুয়ালাইজেশন ট্যাবটি খুলুন এবং আপনি এই ডেটা একটি মানচিত্রে দেখতে পাবেন।
৪. লুকার-এর চ্যাট অ্যাপটি ব্যবহার করে দেখুন।
এবার লুকারের জন্য একটি ডেটা এজেন্ট তৈরি করা যাক।
- আপনার কুইকস্টার্ট অ্যাপের এজেন্ট পেজের ' এজেন্ট তৈরি করুন ' ফর্মে যান:
- ডিসপ্লে নেম ফিল্ডটি সেট করুন:
Cartoon character data analyst
- সিস্টেম নির্দেশাবলী ক্ষেত্রটি সেট করুন:
You are [fill in your favorite cartoon character, Bugs Bunny is a favorite]. Answer questions like that cartoon character
- লুকার বিকল্পটি নির্বাচন করুন।
- `Url` ফিল্ডটি আপনার লুকার ইনস্ট্যান্সের URL-এ সেট করুন: "https://..."
- মডেল ক্ষেত্রটি সেট করুন:
data_block_acs_bigquery
- এক্সপ্লোর ফিল্ডটি সেট করুন:
cbsa
- এজেন্ট তৈরি করুন নির্বাচন করুন।
- চ্যাট পৃষ্ঠায় যান এবং নতুন তৈরি করা এজেন্টটিকে নির্বাচন করুন।
- একটি প্রম্পট/মেসেজ যোগ করে চ্যাট শুরু করা যাক: "হ্যালো, কেমন আছেন?"
- চলুন এজেন্টকে ডেটাসেটটি বর্ণনা করতে বলি: "আপনার কাছে কী কী ডেটা উপলব্ধ আছে?"
- চলুন আরও কয়েকটি প্রশ্ন করা যাক:
- নিউইয়র্কের কোন কাউন্টির জনসংখ্যা সবচেয়ে বেশি?
- মাথাপিছু উচ্চ বিদ্যালয় স্নাতকের সংখ্যা কেমন?
- আপনি কি আমাকে লিঙ্গ ও রাজ্য অনুযায়ী জনসংখ্যা জানাতে পারবেন?
- সর্বাধিক জনসংখ্যাবিশিষ্ট শীর্ষ ১০টি রাজ্যের একটি বার চার্ট দেখতে চাই।
৫. কুইকস্টার্ট অ্যাপটি আর কী কী করতে পারে?
আপনি এখন:
- স্থানীয়ভাবে চ্যাট অ্যাপটি সেট আপ করুন
- একটি BigQuery ডেটা এজেন্ট এবং একটি Looker ডেটা এজেন্ট তৈরি করা হয়েছে
- আপনার ডেটা এজেন্টদের সাথে কথোপকথন অনুষ্ঠিত হয়েছে
- আপনার চ্যাটের প্রেক্ষাপট হিসেবে লুকার সিমান্টিক মডেলিংয়ের সুবিধাগুলো সম্পর্কে জানলাম।
চলুন কুইকস্টার্ট অ্যাপটির অন্যান্য সুবিধাগুলো পরীক্ষা করে দেখি:
- কুইকস্টার্ট অ্যাপের ওয়েব পেজটি রিলোড করুন এবং চ্যাট পেজে যান।
- আপনি আপনার BigQuery এবং Looker এজেন্ট উভয় থেকেই আপনার অতীতের কথোপকথনগুলো এবং সেগুলোর সমস্ত বার্তা দেখতে পারেন। অ্যাপটির ফ্রন্টএন্ড অতীতের কথোপকথন বা বার্তাগুলো সংরক্ষণ করছে না, বরং CA API থেকে সেগুলো সংগ্রহ করছে।
- এখন এজেন্ট পেজে যান এবং তালিকা থেকে আপনার লুকার এজেন্টকে বেছে নিন।
- আপনি চাইলে এজেন্টের কনফিগারেশন আপডেট করতে বা এজেন্টটি মুছে ফেলতে পারেন। অ্যাপের ফ্রন্টএন্ডে কোনো এজেন্ট সংরক্ষিত থাকে না।
৬. ঐচ্ছিক চ্যালেঞ্জ এবং আরও অনুসন্ধান
আপনি চাইলে এই সুযোগে কনভারসেশনাল অ্যানালিটিক্স এবং কুইকস্টার্ট অ্যাপটির সাথে পরিচিত হয়ে নিতে পারেন। অথবা কুইকস্টার্ট অ্যাপটি পরিবর্তন করার চ্যালেঞ্জ নিতে পারেন। আপনি নিচের কিছু পরামর্শ ও চ্যালেঞ্জ চেষ্টা করে দেখতে পারেন অথবা সরাসরি শেষ অংশে চলে যেতে পারেন।
CA API এবং কুইকস্টার্ট অ্যাপ সম্পর্কে আরও ভালোভাবে জেনে নিন।
- আপনার এজেন্টের আচরণ নিয়ন্ত্রণ করার জন্য বিস্তারিত সিস্টেম নির্দেশাবলী সম্পর্কে আরও জানুন।
- একটি নতুন BigQuery ডেটাসেটকে নির্দেশ করে আরেকটি ডেটা এজেন্ট সেট আপ করুন।
- আপনার Looker ইনস্ট্যান্সে একটি নতুন Looker ব্লক ইনস্টল করুন, একটি এজেন্ট তৈরি করুন এবং এটিকে একটি নতুন Looker ডেটাসেটের দিকে নির্দেশ করুন।
কুইকস্টার্ট অ্যাপ পরিবর্তনের চ্যালেঞ্জ
- আপনি কি লুকার এমবেডিং সম্পর্কে পরিচিত? যদি তাই হয়, তাহলে কুইকস্টার্ট অ্যাপের ভিতরে একটি লুকার ড্যাশবোর্ড এমবেড করার চেষ্টা করুন। স্ট্রিমলিটের আইফ্রেম কম্পোনেন্ট ব্যবহার করার কথা বিবেচনা করতে পারেন।
- ভিডিও ইউআরএল সম্বলিত একটি পাবলিক ডেটাসেট খুঁজুন এবং চ্যাটে ভিডিও দেখানোর জন্য অ্যাপটির চ্যাট রেন্ডারিং লজিক আপডেট করুন।
৭. উপসংহার ও শিক্ষণীয় বিষয়সমূহ
আপনি শেষ পর্যন্ত পৌঁছে গেছেন! আপনি কনভারসেশনাল অ্যানালিটিক্স এপিআই (Conversational Analytics API) ব্যবহার করে একটি চ্যাট অ্যাপ তৈরি করেছেন, ডেটা এজেন্ট বানিয়েছেন এবং আপনার ডেটার সাথে চ্যাটও করেছেন। চলুন এর কিছু মূল সক্ষমতা এবং ধারণা পর্যালোচনা করা যাক!
কথোপকথনমূলক বিশ্লেষণ ক্ষমতা
আমরা কনভারসেশনাল অ্যানালিটিক্স-এর অনেকগুলো সক্ষমতা নিয়ে আলোচনা করেছি, যেমন:
- ডেটা এজেন্ট তৈরি, আপডেট, তালিকাভুক্ত, সংগ্রহ এবং মুছে ফেলুন।
- ডেটা এজেন্টদের ডেটা উৎস হিসেবে BigQuery অথবা Looker-এর দিকে নির্দেশ করুন।
- কথোপকথন এবং সেগুলোর বার্তা তৈরি করুন, তালিকাভুক্ত করুন এবং সংগ্রহ করুন।
- কথোপকথনে নিমগ্নকারী দৃশ্যায়নের জন্য ভেগা চার্টের স্পেসিফিকেশন তৈরি করুন।
- ভবিষ্যতের বার্তার জন্য প্রয়োজনীয় প্রেক্ষাপট হিসেবে কথোপকথনে অতীতের বার্তাগুলো ব্যবহার করুন।
CA API-এর সাথে Looker ব্যবহারের সুবিধাসমূহ
লুকার আপনার ডেটার কেন্দ্রীভূত, পরীক্ষাযোগ্য এবং নিয়ন্ত্রণযোগ্য শব্দার্থিক মডেলিং প্রদান করে। কনভারসেশনাল অ্যানালিটিক্স-এর সাথে মিলিত হয়ে, লুকার আপনার ডেটা এজেন্টদের জন্য প্রাসঙ্গিকতা প্রদানের একটি পরিবর্ধনযোগ্য উপায় সরবরাহ করে।
এরপর কী?
- আরও নির্দেশিকা, বৈশিষ্ট্য এবং ব্যবহারের ক্ষেত্র সম্পর্কে জানতে কনভারসেশনাল অ্যানালিটিক্স ডকুমেন্টেশন দেখুন।
- কুইকস্টার্ট অ্যাপ্লিকেশন রিপোজিটরি সম্পর্কে অবগত থাকুন এবং এতে অবদান রাখুন।