অ্যান্টিগ্র্যাভিটি ব্যবহার করে গুগল ক্লাউডে তৈরি এবং স্থাপন করুন

১. ভূমিকা

fca14bb9f4bb74f4.png

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

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

  • স্থাপত্য পরিকল্পনা ও নকশার জন্য অ্যান্টিগ্র্যাভিটি কীভাবে ব্যবহার করবেন
  • একটি এআই এজেন্টের সাহায্যে ইনফ্রাস্ট্রাকচার অ্যাজ কোড (শেল স্ক্রিপ্ট) তৈরি করুন।
  • পাইথন ভিত্তিক একটি ক্লাউড রান সার্ভিস তৈরি ও স্থাপন করুন।
  • মাল্টিমোডাল ডকুমেন্ট বিশ্লেষণের জন্য ভার্টেক্স এআই-তে জেমিনি ইন্টিগ্রেট করুন।
  • Antigravity-এর Walkthrough আর্টিফ্যাক্ট ব্যবহার করে এন্ড-টু-এন্ড পাইপলাইনটি যাচাই করুন।

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

২. অ্যাপটির সংক্ষিপ্ত বিবরণ

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

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

এই অ্যাপ্লিকেশনটির একটি উচ্চ-স্তরের আর্কিটেকচার ডায়াগ্রাম দেখতে এইরকম হতে পারে:

3bd519cfab38258d.png

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

৩. স্থাপত্যের পরিকল্পনা করুন

আমরা অ্যান্টিগ্র্যাভিটির সাথে স্থাপত্যের খুঁটিনাটি পরিকল্পনা শুরু করতে প্রস্তুত!

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

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

Projects ল্যাবের পাশে থাকা নতুন প্রজেক্ট আইকনে ক্লিক করুন এবং তারপর নিচে দেখানো অনুযায়ী New Project ক্লিক করুন:

949cd615a1ce8dc3.png

এতে নিচে দেখানো ছবির মতো Add Folder অপশনটি আসবে:

ee8ff88b71c10e9f.png

আপনার প্রজেক্টে একটি ফোল্ডার যোগ করতে 'অ্যাড ফোল্ডার' বাটনে ক্লিক করুন। আমার মেশিনে আমি একটি ' google-cloud-serverless-app ফোল্ডার তৈরি করে সেটি এই প্রজেক্টে যুক্ত করেছি।

এটি google-cloud-serverless-app ওয়ার্কস্পেসে একটি আলোচনার সূত্রপাত করে।

স্ক্রিনের নিচের বাম দিকে থাকা প্রধান সেটিংস আইকনে ⚙️ ক্লিক করুন এবং প্রজেক্ট-নির্দিষ্ট সেটিংসে যান। নিচে দেখানো অনুযায়ী, Agent Settings / Security Preset Default এবং Agent Behaviour / Artifact Review Policy Always Ask এ সেট করুন:

b28e175be64f4390.png

এর ফলে, এজেন্ট পরিকল্পনাটি কার্যকর করার আগে আপনি প্রতিটি ধাপে তা পর্যালোচনা ও অনুমোদন করতে পারবেন।

প্রম্পট

এখন, আমরা অ্যান্টিগ্র্যাভিটিকে আমাদের প্রথম প্রম্পটটি দেওয়ার জন্য প্রস্তুত। আমাদের অনুরোধটি মূল্যায়ন করার জন্য আমরা /grill-me এই স্ল্যাশ কমান্ডটি ব্যবহার করব।

/grill-me টাইপ করুন এবং তারপর নিম্নলিখিত প্রম্পটটি প্রবেশ করিয়ে সাবমিট বোতামে ক্লিক করুন:

/grill-me 

I want to build a serverless event-driven document processing pipeline on Google Cloud.
Architecture:
- Ingestion: Users upload files to a Cloud Storage bucket.
- Trigger: File uploads trigger a Pub/Sub message.
- Processor: A Python-based Cloud Run service receives the message, processes the file (simulated OCR), and extracts metadata.
- Storage: Stream the metadata (filename, date, tags, word_count) into a BigQuery dataset. 

/grill-me কমান্ডটি বেশ কিছু প্রাসঙ্গিক প্রশ্ন জিজ্ঞাসা করে, যেগুলোর উত্তর আপনি আপনার জ্ঞান অনুযায়ী দেওয়ার চেষ্টা করতে পারেন। এটি কিছু প্রস্তাবিত উত্তরও (Recommended Answers) দেখায় এবং আপনি চাইলে সেগুলোও বেছে নিতে পারেন।

আমার /grill-me কমান্ডটির একটি নমুনা নিচে দেখানো হলো:

How would you provision and manage the Google Cloud infrastructure resources (Cloud Storage buckets, Pub/Sub topics, BigQuery datasets, Cloud Run service)?
gcloud CLI Setup Script - Shell scripts running gcloud CLI commands to create resources step-by-step

How should the Cloud Storage upload events trigger and reach your Python Cloud Run service?
(Recommended) Native Cloud Storage Pub/Sub Notifications + Pub/Sub Push subscription to Cloud Run (direct, lightweight, standard event-driven approach)

Which Python web framework would you prefer for the Cloud Run processing service?
Flask (with Gunicorn) - Standard, lightweight, and very common for simple Cloud Run services

How should the OCR and metadata extraction logic be implemented in the Cloud Run service?
(Recommended) Full local simulation - If it's a .txt file, read the contents, count words, and extract tags. For other files, generate mock OCR metadata and simulated word count. No external API calls.

Which BigQuery insertion method should the Cloud Run service use to store metadata?
(Recommended) BigQuery table.insert_rows() (Legacy Streaming API) - Extremely simple to code, clean error handling, perfect for simulation and low-to-medium volumes.

How should security/authentication be configured for the Cloud Run service?
Unauthenticated Cloud Run - Allow public requests to the Cloud Run service URL (simpler setup, but insecure for production).


What schema would you like to define for the BigQuery metadata table?
(Recommended) Extended Schema - Include filename, bucket, size, content_type, word_count, tags (as a REPEATED STRING array), ocr_text_preview, and process_timestamp.

How should the Cloud Run service handle processing failures (e.g., file not found, BigQuery write error)?
(Recommended) Fail-Fast with Retry - Log error to standard output (Cloud Logging) and return HTTP 500 to Pub/Sub, so that Pub/Sub automatically retries the message delivery.

What testing tools should we generate to verify the pipeline's functionality?
(Recommended) Both - Include a local test script (sending mock Pub/Sub POST requests to the local Flask server) and a Cloud-integrated test script (uploading a real file to GCS and verifying BigQuery).

লক্ষ্য করুন যে আমি অ্যান্টিগ্র্যাভিটিকে সাথে যেতে বলার সিদ্ধান্ত নিয়েছিলাম:

  • রিসোর্স সরবরাহ করার জন্য একটি সহজ gcloud CLI স্ক্রিপ্ট
  • নেটিভ ক্লাউড স্টোরেজ পাব/সাব নোটিফিকেশন + ক্লাউড রানে পাব/সাব পুশ সাবস্ক্রিপশন
  • ফ্রেমওয়ার্কের জন্য ফ্লাস্ক (গুনিকর্ন সহ) ব্যবহার করুন।
  • লাইভ ওসিআর ডেটার পরিবর্তে ডেটার জন্য একটি টেক্সট ফাইলসহ লোকাল সিমুলেশন ব্যবহার করুন।
  • BigQuery-তে সারি সন্নিবেশ করতে `BigQuery table.insert_rows()` ব্যবহার করুন।
  • প্রমাণীকরণবিহীন ক্লাউড রান ডেপ্লয়মেন্ট

এবং অন্যান্য প্রস্তাবিত বিকল্পসমূহ।

বাস্তবায়ন পরিকল্পনা এবং করণীয় তালিকা

অ্যান্টিগ্র্যাভিটি এখন কাজ শুরু করবে এবং একটি বাস্তবায়ন পরিকল্পনা তৈরি করবে। এটি আপনাকে নীচেরটির মতো একটি বার্তা দিয়ে আপনার পর্যালোচনার জন্য পরিকল্পনাটি উপস্থাপন করবে:

2bf129fc14fa019e.png

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

fc8d1f0f54d3e723.png

এই পরিকল্পনায় রূপরেখা দেওয়া হয়েছে:

  • পরিকাঠামো : GCS Bucket, Pub/Sub Topic, BigQuery Dataset.
  • প্রসেসর : পাইথন/ফ্লাস্ক অ্যাপ, ডকারফাইল, প্রয়োজনীয়তা।
  • ইন্টিগ্রেশন : জিসিএস নোটিফিকেশন → পাব/সাব → ক্লাউড রান।

আপনি নিচের মতো কিছু দেখতে পাবেন। আমাদের মেশিনে বাস্তবায়ন পরিকল্পনার একটি আংশিক তালিকা নিচে দেখানো হলো:

Event-Driven Document Processing Pipeline Implementation Plan
This implementation plan describes the components and setup scripts required to build a serverless event-driven document processing pipeline on Google Cloud.

User Review Required

Please review the proposed architecture, components, and default configuration. If you agree, please approve the plan so we can proceed with creating the files and implementation.

IMPORTANT
Security Notice: As requested, the Cloud Run service is configured to allow unauthenticated invocations (--allow-unauthenticated) for simpler testing and development.
Error Handling: The service returns an HTTP 500 error code for failures to trigger Pub/Sub retries.
GCP Configuration: The provisioning scripts will use standard environment variables (e.g., GCP_PROJECT, GCP_REGION) that default to the active configuration of your local gcloud CLI.
Proposed Components and Files

The project will be organized as follows:

google-cloud-serverless-app/
├── src/
   ├── __init__.py
   ├── app.py              # Flask app entrypoint and routes
   ├── processor.py        # Simulated OCR and metadata extraction engine
   ├── gcs_helper.py       # Helper functions to read files from Cloud Storage
   └── bq_helper.py        # Helper functions to write metadata to BigQuery
├── requirements.txt         # Python dependencies
├── Dockerfile              # Docker configuration for Cloud Run
├── deploy.sh               # gcloud CLI provisioning and deployment script
├── test_local.sh           # Script to test the Flask app locally with mock Pub/Sub events
├── test_cloud.sh           # Script to upload a real file to GCS and query BigQuery
└── README.md               # Setup and execution guide

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

সবকিছু ঠিকঠাক মনে হলে, Proceed বোতামে ক্লিক করে এজেন্টকে বাস্তবায়ন পরিকল্পনা নিয়ে এগিয়ে যাওয়ার অনুমতি দিন।

এটি এখন আরেকটি আর্টিফ্যাক্ট ‘টাস্ক প্ল্যান’ তৈরি করতে এগিয়ে যায়, যাতে অ্যান্টিগ্র্যাভিটি দ্বারা তৈরি করা একগুচ্ছ টাস্ক থাকে। এজেন্ট এক এক করে সেগুলোর মধ্য দিয়ে যাবে এবং সেগুলো সম্পাদন করবে। নিচে একটি নমুনা টাস্ক তালিকা দেখানো হলো:

7d17f032d4b6bd04.png

৪. অ্যাপ্লিকেশনটি তৈরি করুন

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

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

d142b671ba315ba5.png

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

  • পাইপলাইনটি স্থাপন করুন: নিশ্চিত করুন যে আপনি আপনার GCP CLI-তে লগ ইন করেছেন এবং আপনার টার্গেট প্রজেক্ট সেট করেছেন, তারপর চালান: ./ deploy.sh
  • এন্ড-টু-এন্ড টেস্ট চালান : একটি ফাইল আপলোড ক্লাউড রান প্রসেসিং চালু করে এবং BigQuery-তে মেটাডেটা স্ট্রিম করে কিনা, তা যাচাই করতে ক্লাউড ইন্টিগ্রেশন টেস্ট স্ক্রিপ্টটি চালান: ./test_cloud.sh
  • পরিষ্করণ: টেস্টিং শেষ হয়ে গেলে, তৈরি করা রিসোর্সগুলো মুছে ফেলতে এবং চার্জ এড়ানোর জন্য README.md দেওয়া পরিষ্করণ কমান্ডগুলো অনুসরণ করুন।

আপনি দেখবেন একটি deploy.sh বা অনুরূপ নামের শেল স্ক্রিপ্ট ফাইল তৈরি হয়েছে, যা রিসোর্স তৈরির প্রক্রিয়াটিকে স্বয়ংক্রিয় করে। এটি নিম্নলিখিত বিষয়গুলো পরিচালনা করে:

  1. এপিআইগুলো সক্রিয় করা ( run , pubsub , bigquery , storage )।
  2. গুগল ক্লাউড স্টোরেজ বাকেট তৈরি করা হচ্ছে ( document-processing-ingest-{project-id} )।
  3. BigQuery ডেটাসেট এবং টেবিল ( document_processing.processed_metadata ) তৈরি করা হচ্ছে।
  4. পাব/সাব টপিক ও নোটিফিকেশন কনফিগার করা।

৫. অ্যাপ্লিকেশনটি স্থাপন করুন।

চলুন deploy.sh ./ কমান্ডের মাধ্যমে উল্লিখিত পদ্ধতি অনুযায়ী অ্যাপ্লিকেশনটি ডেপ্লয় করি। আমরা Antigravity-কে এই কাজটি করার জন্য বলতে পারি, কিন্তু তার আগে নিশ্চিত হয়ে নিন যে gcloud CLI উপস্থিত আছে এবং Google Cloud Project-এর জন্য কনফিগার করা আছে।

আমরা অ্যান্টিগ্র্যাভিটিকে "আমার জন্য deploy.sh চালান" বলে নির্দেশ দিতে পারি। এটি আপনার কাছে অনুমতি চাইবে। অনুমতিটি দিয়ে দিন।

9e5c1c7141b3fc06.png

এটি প্রক্রিয়াটিকে একটি ব্যাকগ্রাউন্ড টাস্ক হিসেবে শুরু করে, যেমনটি নিচের বার্তায় ব্যাখ্যা করা হয়েছে:

আমি ব্যাকগ্রাউন্ডে ./deploy.sh চালিয়ে ডেপ্লয়মেন্ট প্রক্রিয়াটি শুরু করেছি। আমি এক্সিকিউশন লগগুলো পর্যবেক্ষণ করব এবং ডেপ্লয়মেন্ট শেষ হওয়ামাত্রই আপনাকে জানাব!

৬. আবেদনটি যাচাই করুন।

পাইপলাইনটি ডেপ্লয় করার পর, অ্যান্টিগ্র্যাভিটি অ্যাপ্লিকেশনটি আসলেই কাজ করছে কিনা তা যাচাই করে। এটি আমাদের কাছে test_cloud.sh ফাইলটি চালানোর অনুমতি চায়। আমরা এগিয়ে গিয়ে এটিকে অনুমতি দিতে পারি।

2bc8c959c9f80d30.png

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

I have successfully run both ./deploy.sh and ./test_cloud.sh.
The pipeline is fully deployed to your GCP project PROJECT_ID and working end-to-end. 

Please refer to the walkthrough.md for full verification details and the query output from BigQuery showing the successfully processed document metadata.

ফলাফল দেখার জন্য আমরা ওয়াকথ্রু আর্টিফ্যাক্টটি খুলতে পারি:

Cloud Verification Results

The deployment and end-to-end cloud integration test (./test_cloud.sh) succeeded perfectly!
Resources Created:
GCS Bucket: gs://document-processing-ingest-gcp-experiments-349209
Pub/Sub Topic: document-uploads-topic
Pub/Sub Subscription: document-uploads-sub (pushing to Cloud Run)
Cloud Run Service: document-processor (URL: https://document-processor-ido3ocn3pq-uc.a.run.app)
BigQuery Dataset: document_processing
BigQuery Table: processed_metadata
Integration Test Run: A test file cloud_test_sample.txt was uploaded to the bucket. The pipeline processed the file and streamed the metadata record into BigQuery:
🔍 Querying BigQuery to verify metadata insertion...
<BIQUERY DATA HERE>

The pipeline successfully detected the hashtags #gcp and #serverless as tags, correctly counted the 47 words, generated the OCR preview, and wrote the entry to BigQuery under the schema.

ঐচ্ছিক: ম্যানুয়াল যাচাইকরণ

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

ক্লাউড স্টোরেজ

লক্ষ্য : বাকেটটির অস্তিত্ব যাচাই করা এবং ফাইল আপলোড করা হয়েছে কিনা তা পরীক্ষা করা।

  1. ক্লাউড স্টোরেজ > বাকেটস- এ যান।
  2. document-processing-ingest-{project-id} নামের বাকেটটি খুঁজুন।
  3. ফাইল ব্রাউজ করতে বাকেটের নামে ক্লিক করুন।
  4. যাচাই করুন: আপনি আপনার আপলোড করা ফাইলগুলো দেখতে পাবেন (যেমন, cloud_test_sample.txt )।

পাব/সাব

লক্ষ্য : টপিকটির অস্তিত্ব আছে এবং এতে একটি পুশ সাবস্ক্রিপশন রয়েছে তা নিশ্চিত করা।

  1. পাব/সাব > টপিকস- এ যান।
  2. `document-uploads-topic` খুঁজুন।
  3. টপিক আইডি- তে ক্লিক করুন।
  4. সাবস্ক্রিপশন ট্যাব পর্যন্ত স্ক্রোল করুন।
  5. যাচাই করুন: নিশ্চিত করুন যে doc-uploads-sub " Push " ডেলিভারি টাইপের সাথে তালিকাভুক্ত আছে।

ক্লাউড রান

লক্ষ্য : পরিষেবার অবস্থা ও লগ পরীক্ষা করা।

  1. ক্লাউড রান- এ যান।
  2. সার্ভিস ডকুমেন্ট-প্রসেসর- এ ক্লিক করুন।
  3. যাচাই করুন:
  4. স্বাস্থ্য: সবুজ টিক চিহ্ন, যা নির্দেশ করে পরিষেবাটি সক্রিয় আছে।
  5. লগস: লগস ট্যাবে ক্লিক করুন। " Processing file: gs://... " এবং " Successfully inserted... " এর মতো এন্ট্রিগুলি খুঁজুন।

বিগকোয়েরি

লক্ষ্য : ডেটা প্রকৃতপক্ষে সংরক্ষিত হয়েছে কিনা তা যাচাই করা।

  1. BigQuery > SQL Workspace- এ যান।
  2. এক্সপ্লোরার প্যানে, আপনার প্রজেক্ট > ডকুমেন্ট_প্রসেসিং ডেটাসেটটি প্রসারিত করুন।
  3. processed_metadata টেবিলটিতে ক্লিক করুন।
  4. কোয়েরি ট্যাবে ক্লিক করুন এবং SELECT * স্টেটমেন্টের মাধ্যমে টেবিল থেকে সমস্ত সারি পুনরুদ্ধার করুন।
  5. যাচাই করুন: আপনি filename , process_timestamp , tags , এবং word_count সম্বলিত সারিগুলো দেখতে পাবেন।

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

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

আপনি যে ফাইলগুলো দেখতে পারেন তার একটি সংক্ষিপ্ত বিবরণ এখানে দেওয়া হলো:

  1. deploy.sh : এটি মূল স্ক্রিপ্ট যা সমস্ত গুগল ক্লাউড রিসোর্স প্রস্তুত করে এবং প্রয়োজনীয় এপিআইগুলো সক্রিয় করে।
  2. appy.py : পাইপলাইনের প্রধান প্রবেশপথ। এই পাইথন অ্যাপটি একটি ওয়েব সার্ভার তৈরি করে, যা পাব/সাব পুশ মেসেজ গ্রহণ করে, GCS থেকে ফাইলটি ডাউনলোড করে, সেটিকে "প্রসেস" (OCR অনুকরণ) করে এবং মেটাডেটা BigQuery-তে স্ট্রিম করে।
  3. Dockerfile : অ্যাপটিকে কীভাবে একটি কন্টেইনার ইমেজে প্যাকেজ করা হবে তা নির্ধারণ করে।
  4. requirements.txt : পাইথনের প্রয়োজনীয় নির্ভরতাগুলোর তালিকা।

পরীক্ষা ও যাচাইয়ের জন্য প্রয়োজনীয় অন্যান্য স্ক্রিপ্ট এবং টেক্সট ফাইলও আপনি দেখতে পারেন।

৮. অ্যাপ্লিকেশনটি প্রসারিত করুন

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

একটি ফ্রন্টএন্ড যোগ করুন

প্রক্রিয়াকৃত নথিগুলো দেখার জন্য একটি সহজ ওয়েব ইন্টারফেস তৈরি করুন।

নিম্নলিখিত নির্দেশটি চেষ্টা করুন: Create a simple Streamlit or Flask web application that connects to BigQuery. It should display a table of the processed documents (filename, upload_date, tags, word_count) and allow me to filter the results by tag

বাস্তব AI/ML এর সাথে একীভূত করুন

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

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

স্টোরেজ ও অ্যানালিটিক্স উন্নত করুন

খরচ বাঁচাতে আপনি বাকেটে লাইফসাইকেল রুল কনফিগার করে পুরোনো ফাইলগুলোকে "কোল্ডলাইন" বা "আর্কাইভ" স্টোরেজে সরিয়ে নিতে পারেন।

দৃঢ়তা ও নিরাপত্তা

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

  1. ডেড লেটার কিউ (DLQ): ব্যর্থতা সামাল দেওয়ার জন্য পাব/সাব সাবস্ক্রিপশন আপডেট করুন। যদি ক্লাউড রান সার্ভিস কোনো ফাইল ৫ বার প্রসেস করতে ব্যর্থ হয়, তাহলে মানুষের পর্যালোচনার জন্য মেসেজটি একটি আলাদা "ডেড লেটার" টপিক/বাকেটে পাঠান।
  2. সিক্রেট ম্যানেজার: আপনার অ্যাপের যদি এপিআই কী (API key) বা সংবেদনশীল কনফিগারেশনের প্রয়োজন হয়, তবে স্ট্রিং হার্ডকোড করার পরিবর্তে সেগুলোকে সিক্রেট ম্যানেজারে সংরক্ষণ করুন এবং ক্লাউড রান (Cloud Run) থেকে নিরাপদে অ্যাক্সেস করুন।
  3. ইভেন্টআর্ক: আরও নমনীয় ইভেন্ট রাউটিংয়ের জন্য সরাসরি পাব/সাব থেকে ইভেন্টআর্কে আপগ্রেড করুন, যা আপনাকে জটিল অডিট লগ বা অন্যান্য জিসিপি পরিষেবা ইভেন্টের উপর ভিত্তি করে ট্রিগার করার সুযোগ দেবে।

অবশ্যই, আপনি নিজের ধারণা তৈরি করতে পারেন এবং সেগুলো বাস্তবায়নের জন্য অ্যান্টিগ্র্যাভিটির সাহায্য নিতে পারেন!

৯. উপসংহার

আপনি গুগল অ্যান্টিগ্র্যাভিটি ব্যবহার করে মিনিটের মধ্যে সফলভাবে একটি স্কেলেবল, সার্ভারবিহীন, এআই-চালিত ডকুমেন্ট পাইপলাইন তৈরি করেছেন। আপনি শিখেছেন কীভাবে:

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

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