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

১. ভূমিকা

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 প্রজেক্টে একটি আলোচনার সূত্রপাত হয়েছে।

স্ক্রিনের নিচের বাম দিকে থাকা মূল সেটিংস আইকনে ⚙️ ক্লিক করুন এবং প্রজেক্ট-নির্দিষ্ট সেটিংসে যান। যদি আপনি google-cloud-serverless-app প্রজেক্টটি তালিকায় দেখতে না পান, তবে শুধু একটি কথোপকথন সম্পন্ন করুন এবং তারপর প্রজেক্ট সেটিংসে ফিরে যান।

নিচে দেখানো অনুযায়ী এজেন্ট সেটিংস / সিকিউরিটি প্রিসেটকে ডিফল্ট-এ এবং এজেন্ট বিহেভিয়ার / আর্টিফ্যাক্ট রিভিউ পলিসিকে অলওয়েজ আস্ক- এ সেট করুন:

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 like the Cloud Run service to receive events from Cloud Storage and Pub/Sub?
(Recommended) Cloud Storage Pub/Sub Notification with a Pub/Sub Push Subscription (HTTP POST to Cloud Run)

How should access to the Cloud Run service endpoint be secured for Pub/Sub push requests?
Publicly accessible Cloud Run service without authentication (for prototyping/quick testing only)

How should the Python processor handle file inspection and the simulated OCR logic?
(Recommended) Download file from GCS: if plain text/utf-8, extract actual words and tags; if binary/image/PDF, simulate OCR processing (mock latency, generate synthetic text & tags, count words)

How should the processor write metadata to BigQuery and handle table/schema provisioning?
(Recommended) Use BigQuery Streaming Inserts (`insert_rows_json`) with auto-creation of the dataset and table if they do not exist

How should the Cloud Run service handle processing failures and retries from Pub/Sub?
(Recommended) Return HTTP 500 on transient errors for Pub/Sub automatic retry; return HTTP 200/204 on non-retryable errors (e.g., file not found, bad event format) to avoid poison pill loops

Which web framework would you prefer for the Python Cloud Run service?
Flask with Gunicorn: minimal, classic lightweight standard for GCP microservices

How would you like the cloud infrastructure (Bucket, Pub/Sub, Cloud Run, BigQuery) to be provisioned and deployed?
(Recommended) Provide both: automated `gcloud` CLI setup/deploy scripts for quick manual rollout AND Terraform manifests for reproducible IaC

How would you like to handle local testing and development before deploying to Google Cloud?
(Recommended) Include a local mock test suite and script (`test_local.py`) that can simulate Pub/Sub push envelopes and test processing with both mocked GCP clients and actual files

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

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

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

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

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

3cc503e352eee935.png

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

883adedf0157a073.png

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

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

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

5fb0baef49bdb8b1.png

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

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

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

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

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

f6f4e4473fb2a8b3.png

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

752ebdb9767a82c9.png

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

3. Verification & Validation
Test Suite Execution
We ran the automated test suite using pytest:
bash
.venv/bin/pytest tests/ -v
tests/test_local.py::test_health_check PASSED                            [  9%]
tests/test_local.py::test_invalid_pubsub_envelope PASSED                 [ 18%]
tests/test_local.py::test_ignore_delete_events PASSED                    [ 27%]
tests/test_local.py::test_gcs_file_not_found PASSED                      [ 36%]
tests/test_local.py::test_successful_contract_processing PASSED          [ 45%]
tests/test_local.py::test_successful_pdf_ocr_processing PASSED           [ 54%]
tests/test_local.py::test_transient_bq_error_triggers_500_retry PASSED   [ 63%]
tests/test_processor.py::test_tag_extraction_filters_stopwords PASSED    [ 72%]
tests/test_processor.py::test_process_plain_text_document PASSED         [ 81%]
tests/test_processor.py::test_process_binary_pdf_simulated_ocr PASSED    [ 90%]
tests/test_processor.py::test_process_empty_text_document PASSED         [100%]
============================== 11 passed in 2.37s ==============================
Standalone End-to-End Simulation
We executed the standalone simulation script:
bash
.venv/bin/python tests/test_local.py
Sample Output:
=================================================================
Running Serverless Document Processing Local Simulation
=================================================================
[1] Health Check: Status=200, Payload={'service': 'document-processor', 'status': 'healthy'}
[2] Simulating GCS Event: Object Finalized 'sample_contract.txt' in 'finance-bucket'
   Response: Status=200, Body={'file_name': 'sample_contract.txt', 'ocr_status': 'EXTRACTED_TEXT', 'status': 'success', 'tags': ['provider', 'cloud', 'client', 'agreement', 'shall'], 'word_count': 181}
[3] Simulating GCS Event: Object Finalized 'sample_invoice.pdf' in 'invoices-bucket'
   Response: Status=200, Body={'file_name': 'sample_invoice.pdf', 'ocr_status': 'SIMULATED_OCR', 'status': 'success', 'tags': ['invoice', 'finance', 'billing', 'acme', 'pdf'], 'word_count': 62}
=================================================================
BigQuery Streamed Table Inspection (Mock Table)
=================================================================
Row #1:
 File:       sample_contract.txt (gs://finance-bucket)
 Status:     EXTRACTED_TEXT
 Words:      181
 Tags:       ['provider', 'cloud', 'client', 'agreement', 'shall']
 Processed:  2026-09-08T02:50:37.436225+00:00
Row #2:
 File:       sample_invoice.pdf (gs://invoices-bucket)
 Status:     SIMULATED_OCR
 Words:      62
 Tags:       ['invoice', 'finance', 'billing', 'acme', 'pdf']
 Processed:  2026-09-08T02:50:37.641931+00:00

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

ধাপ ১: প্রয়োজনীয় GCP API গুলি সক্রিয় করুন

Cloud Run, Pub/Sub, Cloud Storage, BigQuery, এবং Cloud Build API-গুলো সক্রিয় করতে setup_gcp.sh চালান: ./scripts/setup_gcp.sh

ধাপ ২: সম্পূর্ণ পাইপলাইনটি স্থাপন করুন।

deploy.sh চালান :

export GCP_PROJECT="<YOUR_PROJECT_ID>"
export GCP_REGION="us-central1"               # or your region
./scripts/deploy.sh

এই স্ক্রিপ্টটি নেপথ্যে যা করে:

  1. গুগল ক্লাউড বিল্ড ব্যবহার করে কন্টেইনার ইমেজ তৈরি করে এবং সেটিকে কন্টেইনার/আর্টিফ্যাক্ট রেজিস্ট্রি-তে পুশ করে।
  2. উপযুক্ত এনভায়রনমেন্ট ভেরিয়েবল ( GCP_PROJECT , BQ_DATASET_ID , BQ_TABLE_ID ) ব্যবহার করে সার্ভিসটি ক্লাউড রান-এ ডেপ্লয় করে।
  3. ক্লাউড স্টোরেজ ইনজেশন বাকেট তৈরি করে ( gs://<PROJECT_ID>-document-ingest )।
  4. পাব/সাব টপিক ( document-upload-events ) তৈরি করে এবং এতে প্রকাশ করার জন্য GCS-কে অনুমতি প্রদান করে।
  5. বাকেটটিতে একটি GCS নোটিফিকেশন ( OBJECT_FINALIZE ) কনফিগার করে।
  6. স্বয়ংক্রিয় রিট্রাই ব্যাকঅফ সহ ক্লাউড রান পরিষেবা URL-কে লক্ষ্য করে একটি পাব/সাব পুশ সাবস্ক্রিপশন তৈরি করে।

এতে পাইপলাইনটি কীভাবে পরীক্ষা করতে হয়, তারও পরামর্শ দেওয়া হয়েছে।

test_pipeline.sh চালান: ./scripts/test_pipeline.sh

এটি samples/sample_contract.txt এবং samples/sample_invoice.pdf ফাইল দুটি আপনার বাকেটে আপলোড করে, প্রসেসিংয়ের জন্য অপেক্ষা করে এবং একটি BigQuery SQL কোয়েরি চালায়, যা নিষ্কাশিত মেটাডেটা, শব্দ সংখ্যা এবং ট্যাগগুলো প্রদর্শন করে।

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

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

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

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

I have initiated the deployment of the document processing pipeline to Google Cloud project PROJECT_ID in REGION.The deployment process is currently executing in the background:
Building and publishing the container image via Cloud Build.
Configuring service account IAM permissions and deploying the Cloud Run service.
Provisioning the Cloud Storage bucket (gs://PROJECT_ID-document-ingest).
Setting up the Pub/Sub topic, GCS notification, and push subscription.
I will notify you as soon as the deployment finishes!

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

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

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

🚀 Deployment Successful & Verified on Google Cloud!

The application has been deployed to Google Cloud project PROJECT_ID in REGION and end-to-end event-driven processing has been verified.

ফলাফল দেখার জন্য ওয়াকথ্রু আর্টিফ্যাক্টটিও আপডেট করা হয়েছে (নিচে আংশিক তালিকা দেওয়া হলো):

মোতায়েন সারাংশ

  • জিসিপি প্রজেক্ট: প্রজেক্ট_আইডি
  • অঞ্চল: অঞ্চল
  • ক্লাউড রান সার্ভিস: ডকুমেন্ট-প্রসেসর
  • ক্লাউড রান এন্ডপয়েন্ট: পরিষেবা_ইউআরএল
  • ক্লাউড স্টোরেজ বাকেট: gs://PROJECT_ID-document-ingest
  • পাব/সাব টপিক: ডকুমেন্ট-আপলোড-ইভেন্ট
  • পাব/সাব পুশ সাবস্ক্রিপশন: ডকুমেন্ট-আপলোড-ইভেন্টস-পুশ-সাব
  • BigQuery টার্গেট: PROJECT_ID.document_processing.document_metadata

লাইভ পাইপলাইন যাচাইকরণ

আমরা লাইভ গুগল ক্লাউড এনভায়রনমেন্টে scripts/test_pipeline.sh এক্সিকিউট করেছি:

  1. sample_contract.txt এবং sample_invoice.pdf ফাইল দুটি ক্লাউড স্টোরেজ বাকেটে আপলোড করা হয়েছে।
  2. GCS, Pub/Sub-এর জন্য OBJECT_FINALIZE ইভেন্ট তৈরি করেছে।
  3. পাব/সাব ক্লাউড রান মাইক্রোসার্ভিসের ক্ষেত্রে নতুন দিগন্ত উন্মোচন করেছে।
  4. ক্লাউড রান মেটাডেটা নিষ্কাশন করেছে, সিমুলেটেড ওসিআর প্রক্রিয়াজাত করেছে এবং রেকর্ডগুলো বিগকোয়েরিতে স্ট্রিম করেছে।

লাইভ BigQuery কোয়েরি আউটপুট

+------------------------------+------------+----------------+---------------------------------------------------+---------------------+
|          file_name           | word_count |   ocr_status   |                       tags                        |    processed_at     |
+------------------------------+------------+----------------+---------------------------------------------------+---------------------+
| test_invoice_1788840194.pdf  |         62 | SIMULATED_OCR  | ["invoice","finance","billing","acme","pdf"]      | 2026-09-08 04:03:27 |
| test_contract_1788840194.txt |        181 | EXTRACTED_TEXT | ["provider","cloud","client","agreement","shall"] | 2026-09-08 04:03:22 |
+------------------------------+------------+----------------+---------------------------------------------------+---------------------+

পাইপলাইনের সকল উপাদান উৎপাদনে সক্রিয়, ত্রুটিমুক্ত এবং যাচাইকৃত রয়েছে।

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

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

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

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

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

পাব/সাব

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

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

ক্লাউড রান

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

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

বিগকোয়েরি

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

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

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

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

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

  1. deploy.sh : এটি মূল স্ক্রিপ্ট যা সমস্ত গুগল ক্লাউড রিসোর্স প্রস্তুত করে এবং প্রয়োজনীয় এপিআইগুলো সক্রিয় করে।
  2. main.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. ইভেন্টআর্ক: আরও নমনীয় ইভেন্ট রাউটিংয়ের জন্য সরাসরি পাব/সাব থেকে ইভেন্টআর্কে আপগ্রেড করুন, যা আপনাকে জটিল অডিট লগ বা অন্যান্য জিসিপি পরিষেবা ইভেন্টের উপর ভিত্তি করে ট্রিগার করার সুযোগ দেবে।

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

৯. উপসংহার

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

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

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