একাধিক ডেটাবেসের স্থায়িত্ব সহ একটি বুদ্ধিমান ই-কমার্স ক্যাটালগ তৈরি করুন

১. ভূমিকা

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

এই কোডল্যাবে, আপনি এমন একটি বহুভাষী শক্তিশালী ভবন ডিজাইন করবেন যা নিম্নলিখিত বিষয়গুলির মধ্যে সামঞ্জস্য বিধান করে:

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

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

অসম্ভব ব্যবহারকারী কোয়েরি

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

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

কেন এই কোয়েরিটি 'এজেন্ট কিলার':

  • দৃশ্যগত সাদৃশ্য (অ্যালয়ডিবি + ভেক্টর সার্চ): "অ্যারোগ্লো প্রো-এর শৈলীর অনুরূপ" এর জন্য ইমেজ এমবেডিং তুলনা প্রয়োজন।
  • নেগেটিভ কনস্ট্রেইন্ট (MongoDB): "Without any leather" এর জন্য এমন নমনীয়, নেস্টেড অ্যাট্রিবিউটগুলো ফিল্টার করার প্রয়োজন হয়, যেগুলো সাধারণত একটি স্ট্যান্ডার্ড SQL স্কিমাতে থাকে না।
  • রিয়েল-টাইম ইনভেন্টরি (অ্যালয়ডিবি): "প্রকৃতপক্ষে স্টকে আছে" এর জন্য একটি লাইভ লেনদেন যাচাই প্রয়োজন (কোনো পুরনো সার্চ ইনডেক্স নয়)।
  • শব্দার্থিক সংশ্লেষণ (বিগকোয়েরি + মাল্টি-এজেন্ট): ‘স্ট্র্যাপের স্থায়িত্ব’ বিষয়ক রিভিউ বিশ্লেষণ করার জন্য এজেন্টকে বিগকোয়েরি থেকে প্রাপ্ত অসংগঠিত ফিডব্যাক তাৎক্ষণিকভাবে সংক্ষিপ্ত আকারে প্রকাশ করতে হয়।

বেশিরভাগ রিটেইল বট শুধু 'ব্যাকপ্যাক' এবং 'লেদার' দেখেই ১০টি লেদারের ব্যাকপ্যাক দেখিয়ে দেবে। আমরা এটা কীভাবে বন্ধ করছি?

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

আপনি যা করবেন

  • মূল পণ্যের ডেটার জন্য একটি AlloyDB ক্লাস্টার প্রস্তুত করুন
  • আধা-কাঠামোগত পণ্যের বিবরণ সংরক্ষণের জন্য গুগল ক্লাউডে MongoDB Atlas কনফিগার করুন।
  • পণ্যের ছবি পরিবেশন করার জন্য একটি ক্লাউড স্টোরেজ বাকেট তৈরি করুন
  • অভিন্ন ডেটা অ্যাক্সেসের জন্য MCP টুলবক্স ফর ডেটাবেস ক্লাউড রান-এ স্থাপন করুন।
  • অ্যানালিটিক্সের জন্য BigQuery- তে ডেটা পাঠাতে ETL প্রসেস চালান।
  • একটি এআই এজেন্টের সাথে স্বাভাবিক ভাষায় কথা বলুন।

ইকমার্স মাল্টি ডেটাবেস আর্কিটেকচার

পূর্বশর্ত

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

একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন

  1. গুগল ক্লাউড কনসোলের প্রজেক্ট সিলেক্টর পেজে, একটি গুগল ক্লাউড প্রজেক্ট নির্বাচন করুন বা তৈরি করুন
  2. আপনার ক্লাউড প্রোজেক্টের জন্য বিলিং চালু আছে কিনা তা নিশ্চিত করুন। কোনো প্রোজেক্টে বিলিং চালু আছে কিনা তা কীভাবে পরীক্ষা করবেন, তা জেনে নিন।

ক্লাউড শেল শুরু করুন

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

  1. Google Cloud কনসোলের শীর্ষে থাকা Activate Cloud Shell-এ ক্লিক করুন।
  2. ক্লাউড শেলে সংযুক্ত হওয়ার পর, আপনার প্রমাণীকরণ যাচাই করুন:
    gcloud auth list
    
  3. আপনার প্রজেক্টটি কনফিগার করা হয়েছে কিনা তা নিশ্চিত করুন:
    gcloud config get project
    
  4. আপনার প্রজেক্টটি প্রত্যাশা অনুযায়ী সেট করা না থাকলে, এটি সেট করুন:
    export PROJECT_ID=<YOUR_PROJECT_ID>
    gcloud config set project $PROJECT_ID
    

প্রয়োজনীয় এপিআইগুলি সক্রিয় করুন

প্রয়োজনীয় সকল API সক্রিয় করতে এই কমান্ডটি চালান:

gcloud services enable \
  alloydb.googleapis.com \
  bigquery.googleapis.com \
  storage.googleapis.com \
  run.googleapis.com \
  cloudbuild.googleapis.com \
  artifactregistry.googleapis.com \
  iam.googleapis.com \
  secretmanager.googleapis.com \
  compute.googleapis.com \
  servicenetworking.googleapis.com \
  aiplatform.googleapis.com

৩. ক্লাউড স্টোরেজ সেট আপ করুন

ক্লাউড স্টোরেজ পণ্যের ছবির মতো অসংগঠিত মিডিয়া অ্যাসেটগুলোর জন্য একটি বিশাল ভান্ডার হিসেবে কাজ করে।

  1. গুগল ক্লাউড কনসোলে, ক্লাউড স্টোরেজ- এ যান এবং ক্রিয়েট বাকেট-এ ক্লিক করুন।
  2. আপনার বাকেটটিকে একটি বিশ্বব্যাপী অনন্য নাম দিন (যেমন, ecommerce-app-images )।
  3. তৈরি করুন- এ ক্লিক করুন।
  4. ডেমো অ্যাপ্লিকেশনটিকে প্রমাণীকরণ ছাড়াই ইমেজগুলো অ্যাক্সেস করার অনুমতি দিতে, ‘Enforce public access prevention on this bucket’ অপশনটি আনচেক করুন এবং ‘Confirm’-এ ক্লিক করুন।
  5. অনুমতি ট্যাবে যান।
  6. Permissions- এ, Grant access-এ ক্লিক করুন।
  7. New principals-allUsers লিখুন।
  8. ভূমিকা নির্বাচন করুন -এ, ক্লাউড স্টোরেজ > স্টোরেজ অবজেক্ট ব্যবহারকারী নির্বাচন করুন।
  9. সেভ-এ ক্লিক করুন, এবং তারপরে রিসোর্সটি সর্বজনীন করার বিষয়টি নিশ্চিত করতে 'Allow Public Access'- এ ক্লিক করুন।

প্লেসহোল্ডার ছবি আপলোড করুন

BRK2-149-multidb-ecommerce সর্বোত্তম ভিজ্যুয়াল অভিজ্ঞতার জন্য প্লেসহোল্ডার ছবি ব্যবহার করে।

  1. আপনার ক্লাউড শেলে, next-26-sessions রিপোজিটরিটি ক্লোন করুন:
    git clone https://github.com/GoogleCloudPlatform/next-26-sessions.git
    
  2. UploadImages ফোল্ডারে যান:
    cd next-26-sessions/BRK2-149-multidb-ecommerce/UploadImages
    
  3. গুগল ক্লাউড কনসোলে, ক্লাউড স্টোরেজ- এ যান এবং বাকেটস-এ ক্লিক করুন।
  4. আপনার নতুন তৈরি করা বাকেটটির নামে ক্লিক করুন।
  5. আপলোড > ফাইল আপলোড-এ ক্লিক করুন, ডাউনলোড করা নমুনা ছবিগুলো নির্বাচন করুন এবং ওপেন-এ ক্লিক করুন।

৪. AlloyDB সেট আপ করুন

AlloyDB প্রোডাক্ট আইডি, নাম, SKU, মূল্য এবং ইনভেন্টরির মতো স্ট্রাকচার্ড, ট্রানজ্যাকশনাল এবং গুরুত্বপূর্ণ ডেটার জন্য তথ্যের একমাত্র নির্ভরযোগ্য উৎস হিসেবে কাজ করে। এছাড়াও, AlloyDB সুপারিশ এবং স্বাভাবিক ভাষার কোয়েরির জন্য সাদৃশ্য অনুসন্ধানের সক্ষমতা দিয়ে এআই এজেন্টকে শক্তি জোগায়।

একটি AlloyDB ক্লাস্টার সরবরাহ করুন

  1. Google Cloud Console-এ, AlloyDB for PostgreSQL- এ যান।
  2. ক্লাস্টার তৈরি করুন -এ ক্লিক করুন।
  3. ক্লাস্টার আইডি-র জন্য, ecommerce-cluster লিখুন।
  4. postgres ব্যবহারকারীর জন্য একটি শক্তিশালী পাসওয়ার্ড সেট করুন। শেখার উদ্দেশ্যে, আপনি alloydb ব্যবহার করতে পারেন।
  5. ডাটাবেস ভার্সনের ক্ষেত্রে ডিফল্টটি রাখুন।
  6. অঞ্চলের জন্য us-central1 (অথবা আপনার পছন্দের অঞ্চল) নির্বাচন করুন।

প্রাথমিক ইনস্ট্যান্স কনফিগার করুন

  1. ইনস্ট্যান্স আইডি-এর জন্য, ecommerce-cluster-primary লিখুন।
  2. জোনাল অ্যাভেইলেবিলিটি- তে, সিঙ্গেল জোন নির্বাচন করুন।
  3. মেশিন টাইপের জন্য, একটি ছোট মেশিন টাইপ বেছে নিন (যেমন, N2, 4 vCPUs, 32 GB RAM)।
  4. Private IP Connectivity- তে, Private Services Access (PSA) নির্বাচন করুন এবং default নেটওয়ার্কটি বেছে নিন। যদি ডিফল্ট নেটওয়ার্ক আগে থেকে সেট করা না থাকে, তবে একটি তৈরি করার জন্য Confirm network setup-এ ক্লিক করুন।
  5. এই কোডল্যাবে সঠিকভাবে সংযোগ করার জন্য, পাবলিক আইপি কানেক্টিভিটি -তে MCP টুলবক্সের জন্য ‘ Enable Public IP’ চেকবক্সটি নির্বাচন করুন।
  6. অনুমোদিত বাহ্যিক নেটওয়ার্ক (Authorised external networks) অংশে 0.0.0.0/0 লিখুন। ‘আমি ঝুঁকিগুলো স্বীকার করছি’ (I acknowledge the risks) চেকবক্সটি নির্বাচন করুন এবং ‘সংরক্ষণ করুন’ (Save ) বোতামে ক্লিক করুন।
  7. ক্লাস্টার তৈরি করুন -এ ক্লিক করুন।

দ্রষ্টব্য: আপনার পাবলিক আইপি অ্যাড্রেসটি লিখে রাখুন (এটি 34.124.240.26 এর মতো দেখতে)।

ডাটাবেস শুরু করুন

  1. বাম দিকের নেভিগেশন মেনু থেকে AlloyDB Studio-তে ক্লিক করুন।
  2. ডেটাবেস ড্রপ-ডাউন থেকে postgres নির্বাচন করুন।
  3. ডাটাবেসে সাইন ইন করতে বিল্ট-ইন অথেন্টিকেশন নির্বাচন করুন।
  4. ইউজারনেমের জন্য postgres ইউজার ব্যবহার করুন।
  5. পাসওয়ার্ডের জন্য, আপনার পূর্বে সেট করা পাসওয়ার্ডটি প্রবেশ করান।
  6. প্রমাণীকরণ-এ ক্লিক করুন।
  7. এডিটর ভিউতে, শিরোনামবিহীন একটি নতুন কোয়েরি ট্যাব খুলুন।
  8. নিম্নলিখিত DDL কপি করুন এবং রান-এ ক্লিক করুন:
    CREATE TABLE products_core_table (
      product_id UUID PRIMARY KEY,
      name VARCHAR(255) NOT NULL,
      sku VARCHAR(50) UNIQUE NOT NULL,
      price NUMERIC(10, 2) NOT NULL,
      stock INT NOT NULL
    );
    
  9. আপনার ক্লাউড শেলে, BRK2-149-multidb-ecommerce ফোল্ডারটিতে যান:
    cd next-26-sessions/BRK2-149-multidb-ecommerce
    
  10. আপনার ক্লাউড শেলে alloydb_insert_queries.sql ফাইলটি খুলুন এবং ইনসার্ট কোয়েরিগুলো কপি করুন।
    cat alloydb_insert_queries.sql
    
  11. একটি নতুন শিরোনামহীন কোয়েরি ট্যাবে, শুধু INSERT স্টেটমেন্টগুলো পেস্ট করুন এবং রান-এ ক্লিক করুন।
  12. একটি নতুন শিরোনামহীন কোয়েরি ট্যাবে, নিম্নলিখিত DDL-টি কপি করুন এবং products_core_table টেবিলের উপর একটি ইনডেক্স তৈরি করতে রান-এ ক্লিক করুন:
    CREATE INDEX idx_products_core_sku ON products_core_table(sku);
    

এআই এজেন্টের জন্য অনুরূপ পণ্য খুঁজে বের করতে ইমেজ এমবেডিং তৈরি করুন।

এআই এজেন্ট ইন্টিগ্রেশন একই ধরনের পণ্য খুঁজে বের করার জন্য ইমেজ এমবেডিং ব্যবহার করে। এই এমবেডিংগুলো multimodalembedding@001 মডেল ব্যবহার করে তৈরি করা হয় এবং AlloyDB ডেটাবেসে সংরক্ষণ করা হয়। এমবেডিংগুলো হলো ১৪০৮ মাত্রার ভেক্টর এবং এগুলো img_embeddings কলামে সংরক্ষিত থাকে।

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

ক্লাউড স্টোরেজ অ্যাক্সেস করার জন্য AlloyDB সার্ভিস অ্যাকাউন্টকে ভূমিকা প্রদান করুন।

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

  1. IAM এবং অ্যাডমিন- এ যান।
  2. অ্যাক্সেস মঞ্জুর করুন-এ ক্লিক করুন।
  3. 'New principals' ফিল্ডে, AlloyDB সার্ভিস অ্যাকাউন্টটি অনুসন্ধান করুন। সার্ভিস অ্যাকাউন্টটি দেখতে service-991742412753@gcp-sa-alloydb.iam.gserviceaccount.com এর মতো।
  4. ভূমিকা নির্বাচন করুন -এ ক্লিক করুন।
  5. স্টোরেজ অবজেক্ট ইউজার রোলটি খুঁজুন এবং নির্বাচন করুন।
  6. Add another role-এ ক্লিক করুন এবং Storage Object Viewer রোলটি নির্বাচন করুন।
  7. Add another role-এ ক্লিক করুন এবং Vertex AI User রোলটি নির্বাচন করুন।
  8. সংরক্ষণ করুন- এ ক্লিক করুন।

এক্সটেনশনগুলি সক্ষম করুন

এই অ্যাপটি তৈরি করার জন্য, আমরা pgvector এবং google_ml_integration এক্সটেনশনগুলো ব্যবহার করব। pgvector এক্সটেনশনটি আপনাকে ভেক্টর এমবেডিং সংরক্ষণ এবং অনুসন্ধান করার সুযোগ দেয়। google_ml_integration এক্সটেনশনটি এমন সব ফাংশন সরবরাহ করে যা ব্যবহার করে আপনি Vertex AI প্রেডিকশন এন্ডপয়েন্টগুলো অ্যাক্সেস করে SQL-এ প্রেডিকশন পেতে পারেন। নিম্নলিখিত DDL-গুলো রান করে এই এক্সটেনশনগুলো সক্রিয় করুন:

  1. Google Cloud Console-এ, AlloyDB for PostgreSQL- এ যান।
  2. বাম দিকের নেভিগেশন মেনু থেকে AlloyDB Studio-তে ক্লিক করুন।
  3. এডিটর ভিউতে, শিরোনামবিহীন একটি নতুন কোয়েরি ট্যাব খুলুন।
  4. নিম্নলিখিত DDL কপি করুন এবং রান-এ ক্লিক করুন:
    CREATE EXTENSION IF NOT EXISTS vector;
    CREATE EXTENSION IF NOT EXISTS google_ml_integration;
    

এমবেডিং ব্যবহার করে ডাটাবেস শুরু করুন

  1. products_core_table এ img_embeddings কলামটি যোগ করুন।
    ALTER TABLE products_core_table
    ADD COLUMN img_embeddings vector(1408);
    
  2. ছবিগুলোর জন্য এমবেডিং তৈরি করুন এবং সেগুলোকে img_embeddings কলামে সংরক্ষণ করুন।
    UPDATE products_core_table
    SET img_embeddings = google_ml.image_embedding(
        model_id => 'multimodalembedding@001',
        image => 'gs://<STORAGE_BUCKET_NAME>/' || sku || '.jpg',
        mimetype => 'image/jpeg')
    WHERE sku IN (
        SELECT
        sku
        FROM
        products_core_table
        WHERE
        img_embeddings IS NULL
        AND sku IS NOT NULL
        LIMIT 10
    );
    
    প্রতিস্থাপন করুন আপনার ক্লাউড স্টোরেজ বাকেটের নাম দিয়ে।
  3. সম্পূর্ণ সেটটির জন্য ইমেজ এমবেডিং তৈরি করতে আগের কোয়েরিটি কমপক্ষে ৫ বার পুনরাবৃত্তি করুন, কারণ স্টুডিওর একটি ৫-মিনিটের সময়সীমা রয়েছে। যদি এই কোয়েরিটির সময়সীমা শেষ হয়ে যায়, তাহলে LIMIT পরিবর্তন করে 5 করুন এবং কোয়েরিটি দশবার পুনরায় চালান। এই ধাপটি সম্পন্ন হতে কয়েক মিনিট সময় লাগতে পারে।

৫. গুগল ক্লাউডে MongoDB Atlas সেট আপ করুন।

MongoDB পণ্যের বিশদ ও আধা-কাঠামোগত বিবরণ এবং ব্যবহারকারীর আচরণের নমনীয় ডেটা (যেমন ক্লিক ও ভিউ) সংরক্ষণ করে।

MongoDB ক্লাস্টার তৈরি করুন

  1. Google Cloud-এ MongoDB Atlas- এ যান এবং একটি ফ্রি টিয়ার অ্যাকাউন্ট বেছে নিন।
  2. ফ্রি ক্লাস্টার টিয়ারটি নির্বাচন করুন এবং ক্লাস্টারটির জন্য একটি নাম লিখুন, যেমন ecommerce-cluster
  3. প্রোভাইডার হিসেবে গুগল ক্লাউড নির্বাচন করুন এবং নিশ্চিত করুন যে অঞ্চলটি আপনার গুগল ক্লাউড অঞ্চলের সাথে সামঞ্জস্যপূর্ণ (যেমন, us-central1 )।
  4. ডিপ্লয়মেন্ট তৈরি করুন- এ ক্লিক করুন।
  5. বন্ধ করুন-এ ক্লিক করুন।

নেটওয়ার্ক অ্যাক্সেস কনফিগার করুন

  1. অ্যাটলাস কনসোলে, ডেটাবেস ও নেটওয়ার্ক অ্যাক্সেস- এ যান।
  2. আইপি অ্যাক্সেস তালিকায় ক্লিক করুন।
  3. আইপি অ্যাড্রেস যোগ করুন -এ ক্লিক করুন।
  4. 0.0.0.0/0 যোগ করুন, যা যেকোনো স্থান থেকে প্রবেশের অনুমতি দেয়।
  5. নিশ্চিত করুন -এ ক্লিক করুন।

একটি ডাটাবেস ব্যবহারকারী তৈরি করুন

  1. অ্যাটলাস কনসোলে, ডেটাবেস ও নেটওয়ার্ক অ্যাক্সেস- এ যান।
  2. ডেটাবেস ব্যবহারকারীদের ক্লিক করুন।
  3. নতুন ডেটাবেস ব্যবহারকারী যোগ করুন -এ ক্লিক করুন।
  4. প্রমাণীকরণ পদ্ধতি হিসেবে পাসওয়ার্ড নির্বাচন করুন।
  5. ইউজারনেম হিসেবে store-user এবং পাসওয়ার্ড হিসেবে storeuser লিখুন।
  6. Add Built In Role-এ ক্লিক করুন, এবং যেকোনো ডেটাবেসে Read and write নির্বাচন করুন।
  7. ব্যবহারকারী যোগ করুন -এ ক্লিক করুন।

সংযোগ স্ট্রিংটি নিন

  1. ডাটাবেস > ক্লাস্টার > সংযোগ- এ যান।
  2. আপনার অ্যাপ্লিকেশন সংযোগ করুন- এ, ড্রাইভার-এ ক্লিক করুন।
  3. "Add your connection string into your application code" অংশে দেখানো কানেকশন স্ট্রিংটি কপি করুন। স্ট্রিংটি দেখতে অনেকটা এইরকম:
    mongodb+srv://store-user:<db_password>@ecommerce-cluster.g8vaekh.mongodb.net/?appName=ecommerce-cluster
    
    db_password এর জায়গায় আপনার MongoDB পাসওয়ার্ডটি বসান। এই কোডল্যাবে, পাসওয়ার্ডটি হলো storeuser

এই কানেকশন স্ট্রিংটি সংরক্ষণ করুন। পরবর্তীতে আপনি এটি MONGODB_CONNECTION_STRING এনভায়রনমেন্ট ভেরিয়েবলের জন্য ব্যবহার করবেন।

ডাটাবেস এবং কালেকশন তৈরি করুন

  1. অ্যাটলাস কনসোলে, ডেটাবেস > ক্লাস্টার > ব্রাউজ কালেকশন- এ যান।
  2. ডেটাবেস তৈরি করুন- এ ক্লিক করুন এবং বিবরণগুলি প্রবেশ করান:
    • ডাটাবেসের নাম: ecommerce_db
    • সংগ্রহের নাম: product_details_collection
  3. ডেটাবেস তৈরি করুন- এ ক্লিক করুন।
  4. ডেটা এক্সপ্লোরারে, কালেকশন নামটি নির্বাচন করুন।
  5. ডেটা যোগ করুন (+) আইকনে ক্লিক করুন, এবং তারপরে ডকুমেন্ট সন্নিবেশ করুন-এ ক্লিক করুন।
  6. product_details_export.json থেকে JSON কন্টেন্টটি কপি করে Insert Document এডিটর ডায়ালগে পেস্ট করুন।
  7. ডকুমেন্টগুলোর অ্যারে সন্নিবেশ করতে ইনসার্ট-এ ক্লিক করুন এবং যাচাই করুন যে ১৯২টি ডকুমেন্ট যুক্ত হয়েছে।
  8. ডেটা এক্সপ্লোরারে, ecommerce_db ডাটাবেসের পাশে থাকা Create collection (+) বোতামে ক্লিক করুন।
  9. কালেকশনের নাম হিসেবে user_interactions_collection লিখুন এবং Create Collection-এ ক্লিক করুন।
  10. ডেটা এক্সপ্লোরারে, user_interactions_collection কালেকশনটি নির্বাচন করুন।
  11. ডেটা যোগ করুন (+) আইকনে ক্লিক করুন, এবং তারপরে ডকুমেন্ট সন্নিবেশ করুন-এ ক্লিক করুন।
  12. user_interactions_export.json থেকে JSON কন্টেন্টটি কপি করে Insert Document এডিটর ডায়ালগে পেস্ট করুন।
  13. ইনসার্ট ডকুমেন্ট-এ ক্লিক করুন।

৬. BigQuery সেট আপ করুন

BigQuery ব্যবহারকারীর পূর্ববর্তী কার্যকলাপ একত্রিত ও বিশ্লেষণ করে তথ্যসমৃদ্ধ প্রতিবেদন এবং সুপারিশ তৈরি করে।

ডেটাসেট তৈরি করুন

  1. Google Cloud Console-এ BigQuery- তে যান।
  2. এক্সপ্লোরার প্যানে আপনার প্রজেক্ট আইডির পাশে থাকা তিন-ডট মেনুতে ক্লিক করুন এবং 'Create dataset' নির্বাচন করুন।
  3. ডেটা সেট আইডি-র জন্য ecommerce_analytics লিখুন।
  4. ডেটা সেট তৈরি করুন -এ ক্লিক করুন।

অ্যানালিটিক্স টেবিল তৈরি করুন

  1. BigQuery ওয়ার্কস্পেসে একটি নতুন কোয়েরি খুলুন।
  2. ব্যবহারকারীদেরকে পণ্যের ইন্টারঅ্যাকশনের সাথে সংযুক্ত করে সামারি টেবিলটি তৈরি করতে নিম্নলিখিত SQL স্টেটমেন্টটি চালান:
CREATE TABLE ecommerce_analytics.user_product_interactions (
    user_id STRING DEFAULT 'any user',
    product_id STRING,
    interaction_score INT
);

MCP টুলবক্সের জন্য কম্পিউট পরিষেবা অ্যাকাউন্টকে ভূমিকা প্রদান করুন

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

ভূমিকা প্রদান করতে, নিম্নলিখিত ধাপগুলি সম্পন্ন করুন:

  1. IAM এবং অ্যাডমিন- এ যান।
  2. অ্যাক্সেস মঞ্জুর করুন-এ ক্লিক করুন।
  3. 'New principals' ফিল্ডে, YOUR_PROJECT_NUMBER-compute@developer.gserviceaccount.com নামের ডিফল্ট Compute service account-টি প্রবেশ করান। YOUR_PROJECT_NUMBER জায়গায় আপনার Google Cloud Project Number-টি বসান।
  4. ভূমিকা নির্বাচন করুন -এ ক্লিক করুন।
  5. BigQuery Data Editor রোলটি খুঁজুন এবং নির্বাচন করুন।
  6. Add another role-এ ক্লিক করুন এবং BigQuery Job User রোলটি নির্বাচন করুন।
  7. Add another role-এ ক্লিক করুন এবং Secret Manager Secret Accessor রোলটি নির্বাচন করুন।
  8. Add another role-এ ক্লিক করুন এবং Editor রোলটি নির্বাচন করুন।
  9. সংরক্ষণ করুন- এ ক্লিক করুন।

৭. অ্যাপ্লিকেশনটি শুরু থেকে শেষ পর্যন্ত বুঝুন

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

ডিরেক্টরি কাঠামো বুঝুন

পরবর্তী অংশে, আপনি BRK2-149-multidb-ecommerce রিপোজিটরিটি ক্লোন করবেন এবং এটি ব্যবহার করে অ্যাপ্লিকেশনটি স্থানীয়ভাবে চালাবেন। স্থানীয়ভাবে অ্যাপ্লিকেশনটি পরীক্ষা করার পর, আমরা MCP টুলবক্স এবং অ্যাপ্লিকেশন উভয়ই ক্লাউড রান-এ ডেপ্লয় করব।

এই ডিরেক্টরিতে ডাউনলোড করা ফাইলগুলো অন্বেষণ করুন। নিম্নলিখিত উচ্চ-স্তরের ডিরেক্টরিগুলো উপস্থিত রয়েছে:

  • UploadImages : ছবি সম্পদ সংরক্ষণ করে, যা প্রধানত ইকমার্স পণ্য ক্যাটালগের জন্য ডকুমেন্টেশন বা ভিজ্যুয়াল কন্টেন্ট হিসেবে ব্যবহৃত হয়।
  • static : অ্যাপ্লিকেশনটির স্ট্যাটিক ওয়েব অ্যাসেট, যেমন CSS এবং জাভাস্ক্রিপ্ট ফাইল, সংরক্ষণ করে, যা ইউজার ইন্টারফেসে স্টাইল যোগ করতে এবং ইন্টারঅ্যাকটিভিটি বাড়াতে ব্যবহৃত হয় (source)।
  • templates : ইকমার্স ক্যাটালগের (উৎস) জন্য ওয়েব পেজ ডায়নামিকভাবে রেন্ডার করতে পাইথন অ্যাপ্লিকেশন দ্বারা ব্যবহৃত এইচটিএমএল টেমপ্লেটগুলি (সম্ভবত ফ্লাস্কের জন্য জিনজা২) সংরক্ষণ করে।
  • toolbox-implementation : মডেল কনটেক্সট প্রোটোকল (MCP) টুলবক্সের কনফিগারেশন এবং বাস্তবায়নের বিবরণ সংরক্ষণ করে, যা পূর্বনির্ধারিত টুল ব্যবহার করে একাধিক ডেটাবেসের মধ্যে মিথস্ক্রিয়া সহজ করে।

এই রিপোজিটরির ফাইলগুলো একটি মাল্টিডিবি ইকমার্স অ্যাপ্লিকেশন তৈরি, কনফিগার এবং ডেপ্লয় করার জন্য একসাথে কাজ করে। app.py মতো কেন্দ্রীয় ফাইলগুলো SQL এবং JSON ফাইলে সংজ্ঞায়িত বিভিন্ন ডেটা সোর্সকে একত্রিত করে ব্যাকএন্ড পরিচালনা করে, অন্যদিকে কনফিগারেশন ফাইলগুলো ক্লাউড পরিবেশে নির্বিঘ্ন ডেপ্লয়মেন্ট নিশ্চিত করে।

  • app.py : ফ্লাস্ক ব্যাকএন্ড এবং একাধিক ডেটাবেস ইন্টিগ্রেশন পরিচালনা করে।
  • agentengine.py : ভার্টেক্স এআই এজেন্টদের প্রারম্ভিককরণ এবং কনফিগার করার মূল লজিক।
  • .env : ডাটাবেস এবং স্টোরেজ সংযোগের গোপনীয় তথ্য সংরক্ষণ করে।
  • tools.yaml : মাল্টিডিবি ডাটাবেস অপারেশনের জন্য এমসিপি টুলবক্স কনফিগার করে।
  • Dockerfile : কন্টেইনার ইমেজ এবং এনভায়রনমেন্ট সেটআপ নির্ধারণ করে।
  • requirements.txt : অ্যাপ্লিকেশন রানটাইমের জন্য প্রয়োজনীয় পাইথন লাইব্রেরির তালিকা।
  • tools.yaml : এমসিপি টুলবক্সের কনফিগারেশন।
  • Procfile : ডেপ্লয়মেন্টের জন্য প্রোডাকশন এক্সিকিউশন কমান্ড নির্দিষ্ট করে।
  • alloydb_insert_queries.sql : এতে রিলেশনাল ডেটার জন্য SQL কোয়েরিগুলো থাকে।
  • product_details_export.json এবং user_interactions_export.json : NoSQL ডাটাবেসের জন্য নমুনা JSON ডেটা প্রদান করে।
  • README.md : সেটআপ, ডেপ্লয়মেন্ট এবং প্রজেক্ট বোঝার জন্য নির্দেশিকা।

অ্যাপ্লিকেশনটির শুরু থেকে শেষ পর্যন্ত প্রবাহ

  • AlloyDB সেটআপ : একটি উচ্চ-পারফরম্যান্স ক্লাস্টার প্রস্তুত করুন এবং প্রদত্ত SQL স্ক্রিপ্ট ব্যবহার করে ইমেজ এমবেডিংয়ের জন্য ভেক্টর কলামসহ products_core_table তৈরি করুন।
  • MongoDB Atlas সেটআপ : product_details-এ পরিবর্তনশীল পণ্যের বৈশিষ্ট্যসমূহ সংরক্ষণ করতে এবং user_interactions-এ রিয়েল-টাইম ক্লিকস্ট্রিম লগ করতে Google Cloud-এ একটি ক্লাস্টার স্থাপন করুন।
  • BigQuery Analytics : ইন্টারঅ্যাকশন লগ একত্রিত করার জন্য একটি ডেটাসেট তৈরি করুন, যা জটিল বিশ্লেষণমূলক কোয়েরি চালাতে সক্ষম করে এবং লক্ষ লক্ষ ইভেন্টের মধ্যে থেকে "শীর্ষ ৫" ট্রেন্ডিং আইটেম শনাক্ত করে।
  • ক্লাউড স্টোরেজ রিপোজিটরি : উচ্চ-রেজোলিউশনের পণ্যের ছবি সংরক্ষণের জন্য একটি পাবলিক বাকেট তৈরি করুন এবং নিশ্চিত করুন যে প্রতিটি অ্যাসেট ফ্রন্টএন্ডের জন্য একটি সাইনড বা পাবলিক ইউআরএল-এর মাধ্যমে অ্যাক্সেসযোগ্য থাকে।
  • এমসিপি টুলবক্স ডেপ্লয়মেন্ট : টুলবক্সটিকে ক্লাউড রান-এ ডেপ্লয় করুন, যা এটিকে একটি কেন্দ্রীয় RESTful ব্রিজ হিসেবে প্রতিষ্ঠা করে এবং স্বাভাবিক ভাষার অভিপ্রায়কে একাধিক ডেটাবেস কোয়েরিতে রূপান্তরিত করে।
  • Tools.yaml কনফিগারেশন : আপনার "টুলস"—যেমন get_product_core_data বা get_top_5_views—সংজ্ঞায়িত করুন, যেখানে নির্দিষ্ট SQL এবং NoSQL অপারেশনগুলোকে সহজ, এজেন্ট-পঠনযোগ্য নামের সাথে ম্যাপ করা থাকবে।
  • ফ্লাস্ক ব্যাকএন্ড লজিক : app.py-তে এমন রাউট তৈরি করুন যা MCP টুলবক্সের সাথে ইন্টারফেস করবে, ডেটা সংগ্রহের সমন্বয় সাধন করবে এবং UI-এর জন্য API হিসেবে কাজ করবে।
  • মাল্টি-এজেন্ট অর্কেস্ট্রেশন : ব্যবহারকারীর অভিপ্রায় অনুধাবন করে জটিল ও একাধিক উৎস থেকে আসা রিটেইল কোয়েরি সমাধানের জন্য সঠিক "টুল" নির্বাচন করতে কোডের মধ্যে ADK এজেন্টগুলোকে কনফিগার করুন।
  • ফ্রন্টএন্ড ইন্টিগ্রেশন : একটি index.html ইন্টারফেস তৈরি করুন যেখানে থাকবে ইন্টারঅ্যাকশন রেকর্ডিং ফিচারসহ প্রোডাক্ট ক্যাটালগ, প্রোডাক্টের পারফরম্যান্স অ্যানালিটিক্স বোঝার জন্য একটি অ্যানালিটিক্স ট্যাব, এবং একটি ডেডিকেটেড "এজেন্ট ট্যাব" যা ADK মাল্টি-এজেন্ট চ্যাট ব্যবহার করে একটি নির্বিঘ্ন ও কথোপকথনমূলক কেনাকাটার অভিজ্ঞতা প্রদান করবে।

এখন চলুন অর্কেস্ট্রেশন এবং ডিপ্লয়মেন্টগুলো বাস্তবায়ন করা যাক।

৮. এমসিপি টুলবক্স সেটআপ করুন এবং ক্লাউড রানে ডেপ্লয় করুন

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

স্থানীয়ভাবে এমসিপি টুলবক্স ইনস্টল করুন

  1. আপনার ক্লাউড শেলে, toolbox-implementation ফোল্ডারে যান:
    cd next-26-sessions/BRK2-149-multidb-ecommerce/toolbox-implementation
    
  2. MCP টুলবক্স বাইনারিটি ডাউনলোড করুন এবং এটিকে এক্সিকিউটেবল করুন:
    export VERSION=0.29.0
    curl -L -o toolbox https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
    chmod +x toolbox
    

tools.yaml কনফিগার করুন

আপনাকে AlloyDB, MongoDB, এবং BigQuery-এর জন্য অ্যাবস্ট্রাকশনগুলো সংজ্ঞায়িত করতে হবে। tools.yaml ফাইলটি MCP টুলবক্সকে বলে দেয় যে তারা একে অপরের সাথে কীভাবে যোগাযোগ করবে।

  1. এমবেডেড এডিটর ব্যবহার করে tools.yaml ফাইলটি তৈরি ও সম্পাদনা করুন:
    cloudshell edit tools.yaml
    
    সম্পূর্ণ tools.yaml ফাইলটি গিটহাব রিপোজিটরিতে পাওয়া যাবে। এর ভেতরের বিষয়বস্তুগুলো আপনার নতুন tools.yaml ফাইলে কপি করুন।
  2. পূর্ববর্তী ধাপগুলিতে আপনার সরবরাহ করা পরিকাঠামোর সাথে মিল রেখে হোস্ট, ব্যবহারকারী, পাসওয়ার্ড, প্রজেক্ট আইডি এবং সংযোগ স্ট্রিংগুলি আপডেট করুন:

    ডাটাবেস

    মাঠ

    উদাহরণ মান

    অ্যালয়ডিবি/বিগকোয়েরি

    project_id

    YOUR_PROJECT_ID

    অ্যালয়ডিবি

    region

    us-central1

    অ্যালয়ডিবি

    cluster

    ecommerce-cluster

    অ্যালয়ডিবি

    instance

    ecommerce-cluster-primary

    অ্যালয়ডিবি

    database

    postgres

    অ্যালয়ডিবি

    password

    alloydb

    MongoDB

    connection_string

    mongodb+srv://store-user:storeuser@ecommerce-cluster.urcxr6q.mongodb.net

MCP টুলবক্সের জন্য কম্পিউট পরিষেবা অ্যাকাউন্টকে ভূমিকা প্রদান করুন

আমরা আমাদের টুলবক্সের জন্য ব্যবহৃত কম্পিউট সার্ভিস অ্যাকাউন্টকে বিভিন্ন ভূমিকা প্রদান করি। এটি করা হয় এমসিপি টুলবক্সকে অ্যালয়ডিবি অ্যাক্সেস করতে সক্ষম করার জন্য।

  1. IAM এবং অ্যাডমিন- এ যান।
  2. অ্যাক্সেস মঞ্জুর করুন-এ ক্লিক করুন।
  3. 'New principals' ফিল্ডে, YOUR_PROJECT_NUMBER-compute@developer.gserviceaccount.com নামের ডিফল্ট Compute service account-টি প্রবেশ করান। YOUR_PROJECT_NUMBER জায়গায় আপনার Google Cloud Project Number-টি বসান।
  4. ভূমিকা নির্বাচন করুন -এ ক্লিক করুন।
  5. BigQuery Data Editor রোলটি খুঁজুন এবং নির্বাচন করুন।
  6. Add another role-এ ক্লিক করুন এবং AlloyDB Client role-টি নির্বাচন করুন।
  7. Add another role-এ ক্লিক করুন এবং Service Usage Consumer রোলটি নির্বাচন করুন।
  8. Add another role-এ ক্লিক করুন এবং Storage Object Viewer রোলটি নির্বাচন করুন।
  9. সংরক্ষণ করুন- এ ক্লিক করুন।

আপনার টুল UI পরীক্ষা করুন

  1. আপনার ক্লাউডশেল টার্মিনালে, UI পরিবেশন করার জন্য টুলবক্সটি স্থানীয়ভাবে চালান:
    ./toolbox --ui
    
  2. ক্লাউড শেল-এর পোর্ট 5000-এ ওয়েব প্রিভিউটি খুলুন এবং টুলস পেজে যান। উদাহরণস্বরূপ, আপনার সেশন URL অনুযায়ী, আপনি এটি এখানে দেখতে পারেন: https://5000-cs-71152278760-default.cs-asia-southeast1-cash.cloudshell.dev/ui

নিম্নলিখিত এমসিপি টুলবক্স ইউআই দেখা যায়:

এমসিপি টুলবক্স ইউআই

ক্লাউড রানে স্থাপন করুন

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

  1. একটি নতুন ক্লাউড শেল সেশন খুলুন।
  2. toolbox-implementation ফোল্ডারে যান:
    cd next-26-sessions/BRK2-149-multidb-ecommerce/toolbox-implementation
    
  3. Google Secret Manager-এ tools.yaml কনফিগটি আপলোড করুন:
    gcloud secrets create tools --data-file=tools.yaml
    
    দ্রষ্টব্য: বিদ্যমান সিক্রেটে একটি নতুন সংস্করণ যোগ করতে, নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
    gcloud secrets versions add tools --data-file=tools.yaml
    
  4. পাবলিক এমসিপি টুলবক্স কন্টেইনার ইমেজ ব্যবহার করে ডিপ্লয় করুন:
    export IMAGE=us-central1-docker.pkg.dev/database-toolbox/toolbox/toolbox:0.29.0
    export PROJECT_ID=$(gcloud config get-value project)
    
    gcloud run deploy toolbox \
        --image $IMAGE \
        --region us-central1 \
        --service-account $(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")-compute@developer.gserviceaccount.com \
        --set-secrets "/app/tools.yaml=tools:latest" \
        --args="--tools-file=/app/tools.yaml","--address=0.0.0.0","--port=8080","--ui" \
        --allow-unauthenticated
    
  5. একবার ডেপ্লয় করা হয়ে গেলে, প্রদত্ত ক্লাউড রান সার্ভিস ইউআরএলটি লিখে রাখুন। এটি দেখতে https://toolbox-*********-uc.a.run.app/ui এর মতো হবে।

৯. ইকমার্স অ্যাপ্লিকেশনটি সেট আপ করুন এবং ক্লাউড রান-এ ডেপ্লয় করুন।

আমাদের ডেটাবেসগুলো চালু হয়ে গেলে এবং এমসিপি টুলবক্স অ্যাবস্ট্রাকশনটি ডেপ্লয় করা হয়ে গেলে, আমরা ফ্লাস্ক ওয়েব অ্যাপ্লিকেশনটি চালাতে পারি!

পণ্য ক্যাটালগ পরিবেশন করার জন্য, ফ্লাস্ক অ্যাপ্লিকেশনটি নিম্নলিখিত ধাপগুলো সম্পাদন করে ডেটা প্রক্রিয়াকরণ করে:

  1. মূল ডেটা সংগ্রহ করুন : AlloyDB থেকে পণ্যগুলির সম্পূর্ণ তালিকা ( list_products_core ) পুনরুদ্ধার করে।
  2. বিস্তারিত তথ্য আনুন : MongoDB থেকে পণ্যের সমস্ত বিবরণ পুনরুদ্ধার করে ( list_all_product_details )।
  3. তালিকা একত্রিত করুন : দুটি তালিকাকে সংযুক্ত করে।
  4. মিডিয়া দিয়ে সমৃদ্ধ করুন : প্রতিটি আইটেমে ক্লাউড স্টোরেজ ইমেজ ইউআরএল যোগ করে।

রিজনিং ইঞ্জিন অ্যাপ্লিকেশন পাথ তৈরি করুন

গুগল ক্লাউডের ভার্টেক্স এআই রিজনিং ইঞ্জিন ব্যবহার করে একটি এআই এজেন্ট শুরু ও নিবন্ধন করতে, নিম্নলিখিত কমান্ডটি চালান:

  1. আপনার ক্লাউডশেল টার্মিনালে BRK2-149-multidb-ecommerce ফোল্ডারটিতে যান।
    cd next-26-sessions/BRK2-149-multidb-ecommerce
    
  2. নির্ভরতাগুলি ইনস্টল করতে requirements.txt চালান।
    pip install -r requirements.txt
    
  3. রিজনিং ইঞ্জিন অ্যাপ্লিকেশন পাথ তৈরি করতে agentengine.py স্ক্রিপ্টটি চালান:
    python agentengine.py
    

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

projects/991742412753/locations/us-central1/reasoningEngines/4933254136889081856

পরিবেশ ভেরিয়েবল কনফিগার করুন

  1. একটি .env ফাইল তৈরি করুন এবং এটি সম্পাদনা করুন:
    cloudshell edit .env
    
  2. মানগুলো আপনার নির্দিষ্ট ডাটাবেস সংযোগ এবং আপনার নতুন ক্লাউড রান টুলবক্স URL দিয়ে প্রতিস্থাপন করুন:
    # 1. MongoDB Connection String
    MONGODB_CONNECTION_STRING="mongodb+srv://<db_user>:<db_password>@cluster0.mongodb.net"
    
    # 2. MCP Toolbox Server Location
    # Must match the address where you run the toolbox server
    MCP_TOOLBOX_SERVER_URL="https://toolbox-*********-uc.a.run.app"
    
    # 3. Google Cloud Storage Bucket Name
    GCS_PRODUCT_BUCKET="ecommerce-app-images"
    
    # 4. Fallback image URL
    FALLBACK_IMAGE_URL="https://storage.googleapis.com/ecommerce-media-bold-circuit-492711-n9/fallback.jpg"
    
    # 5. Google Gen AI Vertex AI flag
    GOOGLE_GENAI_USE_VERTEXAI=TRUE
    
    # 6. Project ID
    PROJECT_ID=codelab-project-491117
    
    # 7. Google Cloud Location of AlloyDB, BigQuery databases
    GOOGLE_CLOUD_LOCATION=us-central1
    
    # 8. Reasoning engine application path
    APP_NAME=projects/991742412753/locations/us-central1/reasoningEngines/4933254136889081856
    
    # 9. Model ID
    MODEL=gemini-1.5-flash-lite
    

ক্লাউড রানে ফ্রন্টএন্ড ডিপ্লয় করুন

  1. আর্কিটেকচারটি সম্পূর্ণ করতে ওয়েব অ্যাপ্লিকেশনটি ক্লাউড রান-এ ডেপ্লয় করুন:
    gcloud run deploy polyglot --source . --platform managed \
      --region us-central1 \
      --allow-unauthenticated \
      --set-env-vars \
      MONGODB_CONNECTION_STRING="<MONGODB_CONNECTION_STRING>", \
      MCP_TOOLBOX_SERVER_URL="<MCP_TOOLBOX_SERVER_URL>", \
      GCS_PRODUCT_BUCKET="<GCS_PRODUCT_BUCKET>", \
      FALLBACK_IMAGE_URL="<FALLBACK_IMAGE_URL>", \
      GOOGLE_GENAI_USE_VERTEXAI=TRUE, \
      PROJECT_ID="YOUR_PROJECT_ID", \
      GOOGLE_CLOUD_LOCATION=us-central1, \
      APP_NAME="<YOUR_REASONING_ENGINE_APP_PATH>", \
      MODEL="gemini-1.5-flash-lite"
    
    নিম্নলিখিত মানগুলি প্রতিস্থাপন করুন:
    • YOUR_PROJECT_ID : আপনার গুগল ক্লাউড প্রজেক্ট আইডি।
    • YOUR_REASONING_ENGINE_APP_PATH : python agentengine.py চালানোর আউটপুট, উদাহরণস্বরূপ, projects/991742412753/locations/us-central1/reasoningEngines/4933254136889081856
    • MCP_TOOLBOX_SERVER_URL : আপনার MCP টুলবক্স সার্ভারের URL, উদাহরণস্বরূপ https://toolbox-*********-uc.a.run.app
    • GCS_PRODUCT_BUCKET : আপনার গুগল ক্লাউড স্টোরেজ বাকেটের নাম, উদাহরণস্বরূপ ecommerce-app-images
    • MONGODB_CONNECTION_STRING : আপনার MongoDB ডাটাবেসের সংযোগ স্ট্রিং, উদাহরণস্বরূপ mongodb+srv://store-user:storeuser@ecommerce-cluster.g8vaekh.mongodb.net
    • FALLBACK_IMAGE_URL : ফলব্যাক ইমেজের ইউআরএল, উদাহরণস্বরূপ https://storage.googleapis.com/ecommerce-app-images/fallback.jpg

আপনার অ্যাপ্লিকেশনটি এখন লাইভ! মাল্টিডিবি ইকমার্স ক্যাটালগটি দেখতে ক্লাউড রান কর্তৃক প্রদত্ত সার্ভিস ইউআরএলটি খুলুন। ইউআরএলটি https://polyglot-*********-uc.a.run.app/ -এর মতো হবে।

১০. অ্যাপ্লিকেশনটি অন্বেষণ করুন

  1. সমস্ত পণ্য দেখতে পণ্য ক্যাটালগে ক্লিক করুন।
    পণ্য ক্যাটালগ
  2. পণ্যের বিবরণ দেখতে পণ্যের আইকনে ক্লিক করুন। আপনি লক্ষ্য করবেন যে, ছবিগুলো ক্লাউড স্টোরেজ থেকে, পণ্যের বিবরণ MongoDB থেকে এবং পণ্যের ইনভেন্টরি AlloyDB থেকে সংগ্রহ করা হয়েছে। পণ্যের বিবরণ
  3. মক ভিউ তৈরি করতে এবং MongoDB- তে রাইট পাঠাতে প্রোডাক্ট ক্যাটালগের সাথে ইন্টারঅ্যাক্ট করুন।
  4. পণ্যের অ্যানালিটিক্স দেখতে ETL & Analytics- এ ক্লিক করুন। আপনি লক্ষ্য করবেন যে পণ্যের অ্যানালিটিক্স BigQuery থেকে সংগ্রহ করা হয়েছে।
    পণ্য ETL এবং অ্যানালিটিক্স
  5. এআই এজেন্টের সাথে আলাপচারিতা করতে এআই এজেন্ট ট্যাবে ক্লিক করুন। নিম্নলিখিতগুলির মতো স্বাভাবিক ভাষার প্রশ্ন জিজ্ঞাসা করুন:
    I'm planning a high-altitude photography trip. 
    Show me some weather-resistant backpacks similar in style to aero glow pro 
    but without any leather components. Also, let me know if they are actually in 
    stock and if other photographers have complained about the strap durability 
    in the reviews.
    
    এআই এজেন্ট

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

এআই এজেন্ট

১১. পরিষ্কার করুন

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

এই ক্লাউড শেল কমান্ডগুলো চালান:

gcloud run services delete toolbox --region us-central1 --quiet
gcloud run services delete multi-db-app --region us-central1 --quiet
bq rm -r -f -d $PROJECT_ID:ecommerce_analytics
gcloud storage rm --recursive gs://ecommerce-app-images
gcloud alloydb clusters delete ecommerce-cluster --region us-central1 --force --quiet

ঐচ্ছিকভাবে, সম্পূর্ণ গুগল ক্লাউড প্রজেক্ট এবং এর সমস্ত রিসোর্স মুছে ফেলার জন্য, নিম্নলিখিত কমান্ডটি চালান:

gcloud projects delete $PROJECT_ID

১২. অভিনন্দন

অভিনন্দন! আপনি সফলভাবে একটি ক্রস-ক্লাউড মাল্টিডিবি আর্কিটেকচার তৈরি করেছেন।

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

  • নমনীয় ডেটা রাইট : ইভেন্ট লগের জন্য MongoDB।
  • লেনদেনগত সামঞ্জস্য : মূল অখণ্ডতার জন্য AlloyDB।
  • উচ্চ-কর্মক্ষমতাসম্পন্ন অ্যানালিটিক্স : ব্যবসায়িক বুদ্ধিমত্তার জন্য BigQuery।
  • একীভূত উন্নয়ন : এমসিপি টুলবক্স ব্যবহার করে সকল জটিলতা দূরকারী একটি একক পাইথন ব্যাকএন্ড।

রেফারেন্স নথি

সম্পর্কিত গুগল ক্লাউড পণ্যগুলো সম্পর্কে আরও জানুন এবং এই কোডল্যাবগুলো ঘুরে দেখুন:

এই কোডল্যাবে ব্যবহৃত পণ্যগুলো সম্পর্কে আরও তথ্যের জন্য দেখুন: