লুকার ড্যাশবোর্ড সংক্ষিপ্তকরণ এক্সটেনশন কোডল্যাব

১. শুরু করার আগে

এই কোডল্যাবে (1) আপনি স্থানীয়ভাবে পরীক্ষা ও উন্নয়নের জন্য লুকার ড্যাশবোর্ড সামারাইজেশন এক্সটেনশনটি সেট আপ করবেন। তারপর (2) আপনি এক্সটেনশনটি প্রোডাকশনে ডেপ্লয় করবেন যাতে আপনার লুকার ইনস্ট্যান্সের অন্যান্য ব্যবহারকারীরা এটি ব্যবহার করতে পারে। সবশেষে, (3) আপনি এক্সটেনশনটির কার্যকারিতা সূক্ষ্মভাবে উন্নত ও বর্ধিত করার জন্য অতিরিক্ত পদক্ষেপ অনুসরণ করতে পারেন। সমস্ত বাধ্যতামূলক অংশ ক্রমানুসারে সম্পন্ন করতে হবে।

লুকার ড্যাশবোর্ড সারাংশ এক্সটেনশনের সংক্ষিপ্ত বিবরণ

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

পূর্বশর্ত

  • নোড ডেভেলপমেন্ট, ডকার এবং টেরাফর্ম সম্পর্কে প্রাথমিক ধারণা থাকা।
  • Looker LookML প্রজেক্ট সেট আপ করার বিষয়ে পরিচিতি

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

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

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

  • একটি Looker ইনস্ট্যান্স, যা হয় একটি Looker Original License, সক্রিয় Looker Core Trial অথবা একটি সক্রিয় Looker Core লাইসেন্সের মাধ্যমে পাওয়া যায়।
  • আপনার Looker ইনস্ট্যান্সে অনুমতিসমূহ developdeploy
  • এক্সটেনশনটি দিয়ে পরীক্ষা করার জন্য একটি ড্যাশবোর্ড সম্পাদনা করার অনুমতি
  • আপনার Looker ইনস্ট্যান্স থেকে একটি Looker API কী
  • একটি গুগল ক্লাউড প্রজেক্ট, যেটিতে বিলিং চালু করা আছে।
  • প্রকল্পটিতে ক্লাউড রান এপিআই, ভার্টেক্স এআই এপিআই এবং আর্টিফ্যাক্ট রেজিস্ট্রি এপিআই সক্রিয় করা হয়েছে।
  • gcloud CLI ইনস্টল করা আছে এমন একটি স্থানীয় পরিবেশে অ্যাক্সেস। কোডল্যাবের ধাপগুলো একটি লিনাক্স ধাঁচের পরিবেশ ধরে নেওয়া হয়েছে।

২. স্থানীয় উন্নয়নের জন্য ব্যাকএন্ড সেটআপ করুন

এই অংশে, আপনি পরীক্ষা-নিরীক্ষা এবং স্থানীয়ভাবে উন্নয়নের জন্য ওয়েবসকেট ব্যাকএন্ড সার্ভিসটি সেট আপ করবেন। সার্ভিসটি ভার্টেক্স এআই (Vertex AI) অ্যাক্সেস করতে পারবে।

  1. আপনার স্থানীয় পরিবেশে নোড ভার্সন ১৮ বা তার উচ্চতর সংস্করণ ইনস্টল করুন। নোড ইনস্টল করার জন্য এই নির্দেশাবলী অনুসরণ করুন।
  2. এক্সটেনশনটির রিপোজিটরিটি আপনার লোকাল হোম ডিরেক্টরিতে ক্লোন করুন এবং রিপোজিটরিটির রুট ডিরেক্টরিতে প্রবেশ করুন। এই কোডল্যাবের জন্য, সমস্ত কোড স্যাম্পলে ধরে নেওয়া হবে যে আপনার ক্লোন করা রিপোজিটরিটি আপনার লোকাল হোম ডিরেক্টরিতে রয়েছে।
cd ~
git clone git@github.com:looker-open-source/dashboard-summarization.git
  1. এই কোডল্যাবের পরবর্তী অংশগুলিতে এনভায়রনমেন্ট ভেরিয়েবল সেট করার জন্য, ক্লোন করা রিপোজিটরির রুট ডিরেক্টরিতে প্রবেশ করুন এবং .env.example ফাইলটির নাম পরিবর্তন করে .env রাখুন।
cd ~/dashboard-summarization
mv .env.example .env
  1. ক্লোন করা রিপোজিটরির ওয়েব সকেট ব্যাকএন্ডের src ডিরেক্টরিতে প্রবেশ করুন। এই ডিরেক্টরিতে সার্ভারের সোর্স কোড রয়েছে।
cd ~/dashboard-summarization/websocket-service/src   
  1. NPM ব্যবহার করে সার্ভিসটির নির্ভরতাগুলো ইনস্টল করুন।
npm install  
  1. looker-example.ini ফাইলটির নাম পরিবর্তন করে looker.ini রাখুন।
mv looker-example.ini looker.ini  
  1. looker.ini ফাইলের ভিতরে আপডেট:
  2. আপনার Looker API কী-এর সাথে client_id এবং client_secret মেলান।
  3. আপনার Looker ইনস্ট্যান্সের URL-টি base_url এ নিম্নলিখিত ফরম্যাটে থাকবে: https://<YOUR_LOOKER_URL_MINUS_PROTOCOL>:19999
  4. বন্ধনীর ভেতরের লেখাটি (সেকশন হেডার), যেখানে আপনার Looker ইনস্ট্যান্সের URL-এর হোস্ট থাকে।

উদাহরণস্বরূপ, যদি আপনার ক্লায়েন্ট আইডি ABC123 হয়, আপনার ক্লায়েন্ট সিক্রেট XYZ789 হয়, এবং আপনার Looker ইনস্ট্যান্সের URL https://mycompany.cloud.looker.com হয়, তাহলে আপনার looker.ini ফাইলটি দেখতে হুবহু এইরকম হবে:

[mycompany]
base_url=https://mycompany.cloud.looker.com:19999
client_id=ABC123
client_secret=XYZ789
verify_ssl=true 
  1. আপনার গুগল ক্লাউড প্রজেক্ট আইডি নির্ধারণ করুন এবং এটি আপনার PROJECT এনভায়রনমেন্ট ভেরিয়েবলে সেট করুন। YOUR_PROJECT_ID এর জায়গায় আপনার প্রজেক্ট আইডি বসান।
export PROJECT="YOUR_PROJECT_ID"
  1. ভার্টেক্স এআই এখানে তালিকাভুক্ত একাধিক অঞ্চলে জেমিনি মডেল সরবরাহ করে। আপনার স্থানীয় ব্যাকএন্ড ভার্টেক্স এআই-এর জেমিনি মডেল থেকে কোন অঞ্চল থেকে ডেটা পাঠাবে এবং গ্রহণ করবে তা নির্ধারণ করুন। আপনার REGION এনভায়রনমেন্ট ভেরিয়েবলে অঞ্চলটি সেট করুন। YOUR_VERTEX_REGION জায়গায় আপনার অঞ্চলটি বসান, যেমন us-central1
export REGION="YOUR_VERTEX_REGION"
  1. এখন আপনার স্থানীয় পরিষেবাটি চালু করুন।
npm start
  1. আপনার স্থানীয় ওয়েবসকেট ব্যাকএন্ড পরিষেবাটি http://localhost:5000-এ চালু থাকবে।

আপনি এখন আপনার স্থানীয় পরিবেশে ওয়েবসকেট ব্যাকএন্ড পরিষেবা সেট আপ করা শেষ করেছেন!!

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

আপনি ব্যাকএন্ড সার্ভিসের সোর্স কোডেও পরিবর্তন করতে পারেন। এর জন্য আপনাকে প্রথমে সার্ভিস প্রসেসটি বন্ধ করতে হবে, কোডে পরিবর্তন আনতে হবে, এবং তারপর আবার npm start চালাতে হবে।

৩. স্থানীয় উন্নয়নের জন্য ফ্রন্টএন্ড সেটআপ করুন

এই অংশে আপনি ফ্রন্টএন্ড এক্সটেনশনটি সেট আপ করবেন, যা আপনি স্থানীয়ভাবে পরীক্ষা ও ডেভেলপ করতে পারবেন।

  1. পূর্ববর্তী ধাপগুলোর একই লোকাল এনভায়রনমেন্টে, আপনার ক্লোন করা রিপোজিটরির রুট ডিরেক্টরিতে যান এবং আপনার ফ্রন্টএন্ডের জন্য ফ্রন্টএন্ড সার্ভারের ডিপেন্ডেন্সিগুলো ইনস্টল করুন।
cd ~/dashboard-summarization
npm install
  1. আপনার স্থানীয় ফ্রন্টএন্ড ডেভেলপমেন্ট সার্ভার চালু করুন
npm run develop
  1. আপনার স্থানীয় ফ্রন্টএন্ড সার্ভার এখন http://localhost:8080/bundle.js ঠিকানায় এক্সটেনশনটির জাভাস্ক্রিপ্ট পরিবেশন করছে।
  2. একটি ওয়েব ব্রাউজার খুলুন এবং আপনার Looker ইনস্ট্যান্সে লগইন করুন।
  3. একটি খালি LookML প্রজেক্ট সেট আপ করতে এই নির্দেশাবলী অনুসরণ করুন। প্রজেক্টটির নাম দিন dashboard-summarization। এখন আপনার বর্তমান ব্রাউজার ট্যাবে Looker IDE-তে খালি LookML প্রজেক্টটি স্বয়ংক্রিয়ভাবে খুলে যাবে।
  4. LookML প্রজেক্টের রুটে একটি প্রজেক্ট ম্যানিফেস্ট ফাইল তৈরি করুন। ফাইলটির নাম হবে manifest.lkml। আপনি যদি না জানেন কিভাবে করতে হয়, তাহলে একটি LookML প্রজেক্টে ফাইল যোগ করার জন্য এই নির্দেশাবলী অনুসরণ করুন।
  5. আপনার বন্ধ করা রিপোজিটরির রুট ডিরেক্টরিতে থাকা manifest.lkml ফাইলের বিষয়বস্তু দিয়ে নতুন manifest.lkml ফাইলটির বিষয়বস্তু প্রতিস্থাপন করুন। ফাইলটিতে পরিবর্তনগুলো সংরক্ষণ করতে উপরের ডান কোণায় থাকা "Save Changes" বোতামটি নির্বাচন করুন।
  6. একটি আলাদা ব্রাউজার ট্যাবে, আপনার Looker ইনস্ট্যান্সের ডাটাবেস সংযোগগুলির তালিকায় যান। যদি পদ্ধতিটি না জানেন, তবে এই নির্দেশাবলী অনুসরণ করুন।
  7. একটি লুকার ডাটাবেস কানেকশনের নাম বেছে নিন। আপনি কোন কানেকশনটি বেছে নিচ্ছেন তা বিবেচ্য নয়। যদি আপনার ডাটাবেস কানেকশনগুলো দেখার অনুমতি না থাকে, তবে আপনার লুকার অ্যাডমিনের সাথে যোগাযোগ করুন এবং একটি লুকার ডাটাবেস কানেকশনের নাম জানতে চান।
  8. Looker IDE-তে আপনার LookML প্রজেক্টটি খোলা ব্রাউজার ট্যাবে ফিরে যান। আপনার LookML প্রজেক্টে একটি মডেল ফাইল তৈরি করুন এবং ফাইলটির নাম দিন dashboard-summarization।
  9. আপনার dashboard-summarization.model.lkml ফাইলের বিষয়বস্তু নিচের কোড নমুনা দিয়ে প্রতিস্থাপন করুন। নিশ্চিত করুন যে আপনি ডাবল কোটেশনের ভেতরের স্ট্রিংটি ধাপ ৯-এ আপনার বেছে নেওয়া ডাটাবেস সংযোগের নাম দিয়ে প্রতিস্থাপন করেছেন। ফাইলটিতে পরিবর্তনগুলো সংরক্ষণ করুন।
connection: "<YOUR_CONNECTION_NAME>"
  1. আপনার প্রজেক্ট সংরক্ষণ করার জন্য একটি রিপোজিটরি সেটআপ করুন। উপরের ডানদিকে থাকা 'Configure Git' বাটনটি নির্বাচন করুন। 'Set up a bare repository instead' নির্বাচন করুন। 'Create Repository' নির্বাচন করুন।
  2. আপনার LookML প্রোজেক্ট ফাইলগুলো সংরক্ষণের জন্য এখন আপনার কাছে একটি সাধারণ রিপোজিটরি রয়েছে। "Back to project" নির্বাচন করে অথবা ম্যানুয়ালি ফিরে গিয়ে Looker IDE-তে প্রোজেক্টটিতে পুনরায় প্রবেশ করুন।
  3. উপরের ডান কোণায় থাকা 'Validate LookML' বাটনটি নির্বাচন করুন। বাটনটি 'Commit changes and push'-এ পরিবর্তিত হবে।
  4. "পরিবর্তনগুলি নিশ্চিত করুন এবং পুশ করুন" বোতামটি নির্বাচন করুন। আপনার ইচ্ছামত যেকোনো বার্তা যোগ করুন এবং "নিশ্চিত করুন" নির্বাচন করুন।
  5. Looker IDE-র উপরের ডান কোণায় 'Deploy to Production' নির্বাচন করুন। আপনি এখন আপনার Looker ইনস্ট্যান্সে এক্সটেনশনটি যুক্ত করেছেন!
  6. এমন একটি লুকার ড্যাশবোর্ডে যান যেখানে আপনি এক্সটেনশনটি যোগ করতে চান।
  7. আপনার ড্যাশবোর্ডে একটি এক্সটেনশন টাইল যোগ করতে নির্দেশাবলী অনুসরণ করুন। আপনার নতুন এক্সটেনশনটিকে একটি টাইল হিসেবে আপনার ড্যাশবোর্ডে যুক্ত করুন।
  8. আপনার পূর্বে সেট আপ করা স্থানীয় ওয়েবসকেট ব্যাকএন্ড পরিষেবাটি চালু আছে কিনা তা নিশ্চিত করুন।

অভিনন্দন! আপনি এখন আপনার ড্যাশবোর্ডে লুকার ড্যাশবোর্ড সামারাইজেশন এক্সটেনশনটি ব্যবহার করে দেখতে পারেন। আপনার এক্সটেনশনটি আপনার ড্যাশবোর্ডের মেটাডেটা আপনার লোকাল ওয়েবসকেট ব্যাকএন্ড সার্ভিসে পাঠাবে এবং আপনার ব্যাকএন্ড সার্ভিস থেকে প্রাপ্ত জেমিনি আউটপুট সরাসরি আপনার ড্যাশবোর্ড এক্সটেনশন টাইলের মধ্যেই প্রদর্শন করবে।

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

৪. ব্যাকএন্ড প্রোডাকশনে ডেপ্লয় করুন

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

  1. পরবর্তী ধাপগুলোর জন্য আপনার প্রজেক্ট আইডি ব্যবহার করে স্থানীয় পরিবেশে একটি অ্যাপ্লিকেশন ডিফল্ট ক্রেডেনশিয়াল সেট আপ করতে এই নির্দেশাবলী অনুসরণ করুন।
  2. আপনার ব্যাকএন্ড সার্ভিসের ডকার ইমেজগুলোর জন্য একটি আর্টিফ্যাক্ট রেজিস্ট্রি রিপোজিটরি তৈরি করুন। YOUR_REGION জায়গায় আপনার রিপোজিটরির জন্য পছন্দের অঞ্চলটি লিখুন।
gcloud artifacts repositories create dashboard-summarization-repo \
    --repository-format=docker \
    --location=YOUR_REGION \
  1. আপনার ক্লোন করা রিপোজিটরির ওয়েব সকেট ব্যাকএন্ডের src ডিরেক্টরিতে প্রবেশ করুন।
cd ~/dashboard-summarization/websocket-service/src
  1. cloudbuild.yaml ফাইলটি সম্পাদনা করুন এবং YOUR_REGIONYOUR_PROJECT_ID এর প্রতিটি দৃষ্টান্ত আপনার অঞ্চল এবং প্রকল্প আইডি দিয়ে প্রতিস্থাপন করুন। ফাইলটিতে পরিবর্তনগুলি সংরক্ষণ করুন।
  2. ক্লাউড বিল্ড ব্যবহার করে একটি বিল্ড জমা দিন যা ব্যাকএন্ড সার্ভিসের ডকার ইমেজ তৈরি করবে এবং আপনার সদ্য তৈরি করা আর্টিফ্যাক্ট রেজিস্ট্রি রেপোতে তা পুশ করবে। YOUR_REGION জায়গায় সেই অঞ্চলের নাম লিখুন যেখানে আপনি ক্লাউড বিল্ড পরিষেবাটি ব্যবহার করতে চান।
gcloud builds submit --region=YOUR_REGION --config cloudbuild.yaml
  1. মনে রাখবেন, আপনার নতুন তৈরি করা ডকার ইমেজ ইউআরএলটি হলো YOUR_REGION-docker.pkg.dev/YOUR_PROJECT_ID/dashboard-summarization-repo/websocketserviceimage:latestYOUR_PROJECT_ID এর জায়গায় আপনার প্রজেক্ট আইডি বসান। YOUR_REGION জায়গায় ধাপ ২-এ ব্যবহৃত অঞ্চলের নাম বসান, যা আপনি আপনার আর্টিফ্যাক্ট রেজিস্ট্রি রিপোজিটরি তৈরি করার জন্য ব্যবহার করেছিলেন।
  2. আপনার ক্লোন করা রিপোজিটরিতে থাকা websocket-service/terraform ডিরেক্টরিতে যান।
cd ~/dashboard-summarization/websocket-service/terraform
  1. আপনার ওয়েবসকেট ব্যাকএন্ড পরিষেবাটি চালানোর জন্য গুগল ক্লাউড রানের কোন অবস্থানটি বেছে নেবেন, তা নির্ধারণ করুন। এই অবস্থানগুলো থেকে নির্বাচন করুন।
  2. variables.tf ফাইলটি সম্পাদনা করুন এবং YOUR_PROJECT_IDYOUR_DOCKER_IMAGE_URL উপযুক্ত মান দিয়ে প্রতিস্থাপন করুন। আপনার ডকার ইমেজ ইউআরএল-এর জন্য ধাপ ৬ দেখুন। YOUR_REGION পূর্ববর্তী ধাপ ৮-এ আপনার বেছে নেওয়া অঞ্চল দিয়ে প্রতিস্থাপন করুন। ফাইলটিতে আপনার পরিবর্তনগুলো সংরক্ষণ করুন।
  3. টেরাফর্ম ব্যবহার করে আপনার ব্যাকএন্ড সার্ভিস যে রিসোর্সগুলো ব্যবহার করবে, সেগুলো ডিপ্লয় করুন।
terraform init
terraform plan
terraform apply
  1. পরবর্তী অংশের জন্য ডেপ্লয় করা ক্লাউড রান ইউআরএল এন্ডপয়েন্টটি সংরক্ষণ করুন।

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

৫. ফ্রন্টএন্ড প্রোডাকশনে ডেপ্লয় করুন

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

  1. আপনার ক্লোন করা রিপোজিটরির রুট ডিরেক্টরিতে যান।
cd ~/dashboard-summarization
  1. env ফাইলটি সম্পাদনা করুন। YOUR_CLOUD_RUN_URL এর জায়গায় পূর্ববর্তী বিভাগ থেকে পাওয়া ক্লাউড রান ইউআরএল এন্ডপয়েন্টটি বসান। আপনার ফাইলের পরিবর্তনগুলো সংরক্ষণ করুন। এর ফলে প্রোডাকশন এক্সটেনশন ফ্রন্টএন্ডটি ক্লাউড রানে চলমান আপনার ওয়েবসকেট ব্যাকএন্ড সার্ভিসের দিকে নির্দেশিত হবে।
  2. এক্সটেনশনটির জাভাস্ক্রিপ্ট বিল্ড করুন। একটি dist ডিরেক্টরি স্বয়ংক্রিয়ভাবে তৈরি হবে, যার ভেতরে একটি bundle.js ফাইল এবং অন্যান্য ফাইল থাকবে।
npm run build
  1. একটি ওয়েব ব্রাউজার খুলুন এবং আপনার লুকার ইনস্ট্যান্সে লগইন করুন। বাম পাশের নেভিগেশনটি খুলুন এবং নিচের "ডেভেলপমেন্ট মোড" টগলটি চালু করুন।
  2. বাম পাশের নেভিগেশন খোলা রেখে, "Develop" নির্বাচন করুন, তারপর নিচে স্ক্রল করে "dashboard-summarization" অর্থাৎ আপনার এক্সটেনশনের LookML প্রজেক্টটি নির্বাচন করুন। এখন আপনি LookML প্রজেক্টটির Looker IDE-তে থাকবেন।
  3. পূর্বে তৈরি করা dist ডিরেক্টরির সমস্ত ফাইল 'ফাইল ব্রাউজার'-এ থাকা প্রজেক্টের রুট ডিরেক্টরিতে ড্র্যাগ অ্যান্ড ড্রপ করুন। আরও সাহায্যের প্রয়োজন হলে এই নির্দেশাবলী অনুসরণ করুন।
  4. Looker IDE-এর ভিতরে manifest.lkml ফাইলটি খুলুন। ফাইলটির ভিতরে, লাইনটি প্রতিস্থাপন করুন
url: "http://localhost:8080/bundle.js"

সাথে

file: "bundle.js"

শেষ বিভাগের শেষে থাকা ক্লাউড রান ইউআরএল এন্ডপয়েন্ট দিয়ে YOUR_CLOUD_RUN_URL প্রতিস্থাপন করুন। ফাইলটিতে পরিবর্তনগুলো সংরক্ষণ করুন।

  1. উপরের ডান কোণায় থাকা 'Validate LookML' বাটনটি নির্বাচন করুন। বাটনটি 'Commit changes and push'-এ পরিবর্তিত হবে।
  2. "পরিবর্তনগুলি নিশ্চিত করুন এবং পুশ করুন" বোতামটি নির্বাচন করুন। আপনার ইচ্ছামত যেকোনো বার্তা যোগ করুন এবং "নিশ্চিত করুন" নির্বাচন করুন।
  3. Looker IDE-র উপরের ডান কোণায় 'Deploy to Production' নির্বাচন করুন।

অভিনন্দন! আপনি এখন আপনার Looker ইনস্ট্যান্সের সকল ব্যবহারকারীকে তাদের ড্যাশবোর্ডে Looker ড্যাশবোর্ড সামারাইজেশন এক্সটেনশনটি যোগ করার অনুমতি দিয়েছেন। অন্যান্য Looker ব্যবহারকারীরা যখন এই এক্সটেনশনটি ব্যবহার করবেন, তখন এক্সটেনশনটির সমস্ত ইনস্ট্যান্স Google Cloud Run-এ চলমান আপনার ডেপ্লয় করা ওয়েবসকেট ব্যাকএন্ড সার্ভিসে কল করবে।

মনে রাখবেন, আপনি যদি সোর্স কোডে কোনো পরিবর্তন করেন তবে আপনাকে অবশ্যই:

  1. আপনার এক্সটেনশনের জাভাস্ক্রিপ্ট পুনরায় তৈরি করুন
  2. আপনার LookML প্রজেক্টে যোগ করা তৈরি হওয়া ফাইলগুলোকে dist ডিরেক্টরি থেকে নতুন তৈরি হওয়া ফাইলগুলো দিয়ে প্রতিস্থাপন করুন।
  3. LookML প্রোজেক্টের পরিবর্তনগুলো যাচাই করুন, কমিট করুন এবং প্রোডাকশনে ডেপ্লয় করুন।

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

স্ল্যাক/গুগল চ্যাট এক্সপোর্টিং সক্ষম করতে, জেমিনির সারাংশ ও পরবর্তী পদক্ষেপগুলো সূক্ষ্মভাবে সমন্বয় করতে এবং জেমিনি লগিং সেট আপ করতে নিম্নলিখিত ঐচ্ছিক বিভাগগুলো দেখুন।

৬. [ঐচ্ছিক] রপ্তানির সক্ষমতা সেটআপ করুন

এখন যেহেতু আপনি এবং আপনার Looker ব্যবহারকারীরা Looker ড্যাশবোর্ড সামারাইজেশন এক্সটেনশনটি ব্যবহার করে দেখেছেন, চলুন এক্সটেনশনটির প্রাপ্ত তথ্য আরও বৃহত্তর দর্শকের সাথে শেয়ার করা যাক। আপনার এক্সটেনশনটিকে Google Chat বা Slack-এ সারাংশ এবং পরবর্তী পদক্ষেপ পাঠানোর জন্য সক্ষম করতে এই অংশটি অনুসরণ করুন। কোডল্যাবের এই অংশটি নিয়ে কাজ চালিয়ে যাওয়ার জন্য আপনার Oauth সেটআপ সম্পর্কে ধারণা থাকা উচিত।

গুগল চ্যাট রপ্তানি সক্ষম করুন

  1. আপনার গুগল ক্লাউড প্রজেক্টে চ্যাট এপিআই সক্রিয় করুন।
  2. Google Workspace OAuth সেটআপ নির্দেশাবলীর ধাপ ১ অনুসরণ করুন। স্কোপের জন্য আপনাকে অবশ্যই spaces.messages.create অন্তর্ভুক্ত করতে হবে।
  3. Google Workspace OAuth সেটআপ নির্দেশাবলীর ধাপ ২ অনুসরণ করুন। "Authorized JavaScript origins"-এর অধীনে আপনার looker ইনস্ট্যান্সের url-টি একটি URI হিসেবে যোগ করুন, উদাহরণস্বরূপ https://mycompany.cloud.looker.com । তৈরি হওয়া ক্লায়েন্ট আইডিটি নোট করে রাখুন।
  4. যে গুগল চ্যাট স্পেসে আপনি সারাংশগুলো এক্সপোর্ট করতে চান, তার আইডি নির্ধারণ করুন। কীভাবে করবেন তা নিশ্চিত না হলে, এই নির্দেশাবলী অনুসরণ করুন।
  5. env ফাইলটি সম্পাদনা করুন। YOUR_GOOGLE_CLIENT_ID এর জায়গায় ক্লায়েন্ট আইডি বসান। YOUR_GOOGLE_SPACE_ID এর জায়গায় গুগল চ্যাট স্পেস আইডি বসান। ফাইলে করা পরিবর্তনগুলো সংরক্ষণ করুন। এর মাধ্যমে আপনার এক্সটেনশনের ফ্রন্টএন্ডটি কনফিগার হয়ে যাবে, যাতে এটি তার ইনসাইটগুলো আপনার পছন্দের গুগল চ্যাট স্পেসে পাঠাতে পারে।
  6. আপনি যদি আপনার এক্সটেনশনের ফ্রন্টএন্ড স্থানীয়ভাবে চালান, তাহলে আপনার এক্সটেনশনটি পুনরায় বিল্ড করুন। অন্যথায়, আপনি যদি আপনার এক্সটেনশনের ফ্রন্টএন্ড ডেপ্লয় করে থাকেন, তাহলে সেটি পুনরায় ডেপ্লয় করুন।

স্ল্যাক এক্সপোর্ট সক্ষম করুন

  1. একটি OAuth অ্যাপ্লিকেশন সেটআপ করতে অফিসিয়াল স্ল্যাক ডেভেলপার ডক্সের ধাপ ১ এবং ২ অনুসরণ করুন। স্কোপের জন্য আপনাকে অবশ্যই chat:write এবং channels:read অন্তর্ভুক্ত করতে হবে। তৈরি হওয়া ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট নোট করে রাখুন।
  2. যে স্ল্যাক চ্যানেলে আপনি সারাংশগুলো রপ্তানি করতে চান, তার আইডি নির্ধারণ করুন।
  3. env ফাইলটি সম্পাদনা করুন। YOUR_SLACK_CLIENT_ID এর জায়গায় ক্লায়েন্ট আইডি বসান। YOUR_SLACK_CLIENT_SECRET এর জায়গায় ক্লায়েন্ট সিক্রেট বসান। YOUR_SLACK_CHANNEL_ID এর জায়গায় চ্যানেল আইডি বসান। ফাইলে করা পরিবর্তনগুলো সেভ করুন। এর মাধ্যমে আপনার এক্সটেনশনের ফ্রন্টএন্ড কনফিগার হয়ে যাবে, যাতে এটি তার ইনসাইটগুলো আপনার পছন্দের স্ল্যাক চ্যানেলে পাঠাতে পারে।
  4. আপনি যদি আপনার এক্সটেনশনের ফ্রন্টএন্ড স্থানীয়ভাবে চালান, তাহলে আপনার এক্সটেনশনটি পুনরায় বিল্ড করুন। অন্যথায়, আপনি যদি আপনার এক্সটেনশনের ফ্রন্টএন্ড ডেপ্লয় করে থাকেন, তাহলে সেটি পুনরায় ডেপ্লয় করুন।

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

৭. [ঐচ্ছিক] সারাংশ এবং পরবর্তী পদক্ষেপগুলো পরিমার্জন করুন।

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

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

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

৮. [ঐচ্ছিক] জেমিনি মডেল লগিং সেটআপ করুন

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

  1. আপনার ডেপ্লয় করা ওয়েবসকেট ব্যাকএন্ড সার্ভিসের ক্লাউড রান অবস্থান নির্ধারণ করুন।
  2. Big Query-তে লগ পাঠানোর জন্য একটি লগ সিঙ্ক সেট আপ করতে এই নির্দেশাবলী অনুসরণ করুন। সিঙ্কের গন্তব্য BigQuery হওয়া উচিত। নিম্নলিখিত কোড স্যাম্পল ব্যবহার করে ইনক্লুশন ফিল্টারটি সেট করুন, যেখানে YOUR_CLOUD_RUN_LOCATION এর জায়গায় পূর্ববর্তী ধাপের ক্লাউড রান লোকেশন বসাতে হবে।
resource.type = "cloud_run_revision"
resource.labels.service_name = "websocket-service"
resource.labels.location = "YOUR_CLOUD_RUN_LOCATION"
 severity>=DEFAULT
jsonPayload.component="dashboard-summarization-logs"

৯. অভিনন্দন!

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

১০. এরপর কী?