১. সংক্ষিপ্ত বিবরণ
ডকুমেন্ট এআই কী?
ডকুমেন্ট এআই এপিআই হলো একটি ডকুমেন্ট বোঝার সমাধান, যা ডকুমেন্ট, ইমেল ইত্যাদির মতো অসংগঠিত ডেটাকে আরও সহজে বোঝা, বিশ্লেষণ করা এবং ব্যবহার করার উপযোগী করে তোলে। এই এপিআই কন্টেন্ট ক্লাসিফিকেশন, এনটিটি এক্সট্র্যাকশন, অ্যাডভান্সড সার্চিং এবং আরও অনেক কিছুর মাধ্যমে ডেটাকে একটি কাঠামো প্রদান করে।
এই টিউটোরিয়ালে, আপনি Node.js-এর সাথে Document AI API ব্যবহার করার উপর মনোযোগ দেবেন। টিউটোরিয়ালটিতে একটি সাধারণ মেডিকেল ইনটেক ফর্ম পার্স করার পদ্ধতি দেখানো হয়েছে।
আপনি যা শিখবেন
- ডকুমেন্ট এআই এপিআই কীভাবে সক্রিয় করবেন
- এপিআই অনুরোধগুলি কীভাবে প্রমাণীকরণ করবেন
- Node.js-এর জন্য ক্লায়েন্ট লাইব্রেরি কীভাবে ইনস্টল করবেন
- স্ক্যান করা ফর্ম থেকে ডেটা কীভাবে পার্স করবেন
আপনার যা যা লাগবে
- একটি গুগল ক্লাউড প্রজেক্ট
- একটি ব্রাউজার, যেমন ক্রোম বা ফায়ারফক্স
- Node.js সম্পর্কে জ্ঞান
জরিপ
আপনি এই টিউটোরিয়ালটি কীভাবে ব্যবহার করবেন?
Node.js নিয়ে আপনার অভিজ্ঞতাকে আপনি কীভাবে মূল্যায়ন করবেন?
গুগল ক্লাউড পরিষেবা ব্যবহারের অভিজ্ঞতাকে আপনি কীভাবে মূল্যায়ন করবেন?
২. সেটআপ এবং প্রয়োজনীয়তা
স্ব-গতিতে পরিবেশ সেটআপ
- ক্লাউড কনসোলে সাইন ইন করুন এবং একটি নতুন প্রজেক্ট তৈরি করুন অথবা বিদ্যমান কোনো প্রজেক্ট পুনরায় ব্যবহার করুন। (যদি আপনার আগে থেকে Gmail বা G Suite অ্যাকাউন্ট না থাকে, তবে আপনাকে অবশ্যই একটি তৈরি করতে হবে।)



প্রজেক্ট আইডিটি মনে রাখবেন, যা সমস্ত গুগল ক্লাউড প্রজেক্ট জুড়ে একটি অনন্য নাম। (দুঃখিত, উপরে আপনার দেওয়া নামটি ইতিমধ্যে অন্য কেউ ব্যবহার করেছে এবং এটি আপনার জন্য কাজ করবে না!)। আপনাকে পরবর্তীতে এই আইডিটি PROJECT_ID হিসেবে অবশ্যই প্রদান করতে হবে।
- এরপরে, গুগল ক্লাউড রিসোর্স ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং চালু করতে হবে।
"পরিষ্কার-পরিচ্ছন্নতা" বিভাগের যেকোনো নির্দেশাবলী অবশ্যই অনুসরণ করুন। এই বিভাগে রিসোর্সগুলো কীভাবে বন্ধ করতে হবে সে সম্পর্কে পরামর্শ দেওয়া হয়েছে, যাতে এই টিউটোরিয়ালের বাইরে আপনার কোনো বিল না আসে। গুগল ক্লাউডের নতুন ব্যবহারকারীরা ৩০০ মার্কিন ডলারের ফ্রি ট্রায়াল প্রোগ্রামের জন্য যোগ্য।
ক্লাউড শেল শুরু করুন
যদিও আপনি আপনার ল্যাপটপ থেকে দূরবর্তীভাবে গুগল ক্লাউড পরিচালনা করতে পারেন, এই কোডল্যাবটিতে গুগল ক্লাউড শেল ব্যবহার করা হয়েছে, যা ক্লাউডে চলমান একটি কমান্ড লাইন পরিবেশ।
ক্লাউড শেল সক্রিয় করুন
- ক্লাউড কনসোল থেকে, Activate Cloud Shell-এ ক্লিক করুন।
.
আপনি যদি আগে কখনো ক্লাউড শেল চালু না করে থাকেন, তাহলে এটি কী তা বর্ণনা করে একটি মধ্যবর্তী স্ক্রিন (নিচে দেওয়া আছে) আপনার সামনে আসবে। যদি তাই হয়, তাহলে 'Continue'-তে ক্লিক করুন (এবং আপনি এটি আর কখনো দেখতে পাবেন না)। একবারের জন্য আসা সেই স্ক্রিনটি দেখতে এইরকম:
ক্লাউড শেল প্রস্তুত করতে এবং এর সাথে সংযোগ স্থাপন করতে মাত্র কয়েক মুহূর্ত সময় লাগা উচিত।
ক্লাউড শেল আপনাকে ক্লাউডে হোস্ট করা একটি ভার্চুয়াল মেশিনের টার্মিনাল অ্যাক্সেস প্রদান করে। এই ভার্চুয়াল মেশিনে আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুলস অন্তর্ভুক্ত রয়েছে। এটি একটি স্থায়ী ৫ জিবি হোম ডিরেক্টরি প্রদান করে এবং গুগল ক্লাউডে চলে, যা নেটওয়ার্ক পারফরম্যান্স ও অথেনটিকেশনকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার প্রায় সমস্ত কাজই শুধুমাত্র একটি ব্রাউজার বা আপনার ক্রোমবুক দিয়ে করা সম্ভব।
ক্লাউড শেলে সংযুক্ত হওয়ার পর আপনি দেখতে পাবেন যে, আপনাকে ইতিমধ্যেই প্রমাণীকৃত করা হয়েছে এবং প্রজেক্টটি আপনার প্রজেক্ট আইডিতে সেট করা আছে।
- আপনি প্রমাণীকৃত কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud auth list
কমান্ড আউটপুট
Credentialed Accounts
ACTIVE ACCOUNT
* <my_account>@<my_domain.com>
To set the active account, run:
$ gcloud config set account `ACCOUNT`
gcloud config list project
কমান্ড আউটপুট
[core] project = <PROJECT_ID>
যদি তা না থাকে, তবে আপনি এই কমান্ডটি দিয়ে এটি সেট করতে পারেন:
gcloud config set project <PROJECT_ID>
কমান্ড আউটপুট
Updated property [core/project].
৩. ক্লাউড ডকুমেন্ট এআই এপিআই সক্রিয় করুন
ডকুমেন্ট এআই ব্যবহার শুরু করার আগে, আপনাকে অবশ্যই এপিআই (API) সক্রিয় করতে হবে। আপনার ব্রাউজারে ক্লাউড কনসোল খুলুন।
- নেভিগেশন মেনু ☰ > এপিআই ও পরিষেবা > লাইব্রেরি-তে ক্লিক করুন।

- 'Document AI API' অনুসন্ধান করুন, তারপর আপনার Google Cloud প্রকল্পে API ব্যবহার করতে 'Enable'-এ ক্লিক করুন।
৪. একটি প্রসেসর তৈরি ও পরীক্ষা করুন
এই টিউটোরিয়ালটি ব্যবহারের জন্য ডকুমেন্ট এআই প্ল্যাটফর্মে আপনাকে প্রথমে ফর্ম পার্সার প্রসেসরের একটি ইনস্ট্যান্স তৈরি করতে হবে।
- কনসোলে, ডকুমেন্ট এআই প্ল্যাটফর্ম ওভারভিউ- তে যান।
- Create Processor-এ ক্লিক করুন এবং Form Parser নির্বাচন করুন।

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

আপনার আউটপুটটি দেখতে এইরকম হবে: 
৫. এপিআই অনুরোধ প্রমাণীকরণ করুন
ডকুমেন্ট এআই এপিআই-তে অনুরোধ পাঠানোর জন্য, আপনাকে অবশ্যই একটি সার্ভিস অ্যাকাউন্ট ব্যবহার করতে হবে। একটি সার্ভিস অ্যাকাউন্ট আপনার প্রোজেক্টের অন্তর্গত এবং এটি গুগল ক্লায়েন্ট নোড.জেএস লাইব্রেরি দ্বারা এপিআই অনুরোধ পাঠানোর জন্য ব্যবহৃত হয়। অন্য যেকোনো ইউজার অ্যাকাউন্টের মতোই, একটি সার্ভিস অ্যাকাউন্ট একটি ইমেল অ্যাড্রেস দ্বারা চিহ্নিত করা হয়। এই অংশে, আপনি ক্লাউড এসডিকে ব্যবহার করে একটি সার্ভিস অ্যাকাউন্ট তৈরি করবেন এবং তারপর সেই সার্ভিস অ্যাকাউন্ট হিসেবে প্রমাণীকরণের জন্য প্রয়োজনীয় ক্রেডেনশিয়াল তৈরি করবেন।
প্রথমে, আপনার PROJECT_ID দিয়ে একটি এনভায়রনমেন্ট ভেরিয়েবল সেট করুন, যা আপনি এই কোডল্যাব জুড়ে ব্যবহার করবেন:
export GOOGLE_CLOUD_PROJECT=$(gcloud config get-value core/project)
এরপরে, Document AI API অ্যাক্সেস করার জন্য নিম্নলিখিত পদ্ধতি ব্যবহার করে একটি নতুন সার্ভিস অ্যাকাউন্ট তৈরি করুন:
gcloud iam service-accounts create my-docai-sa \
--display-name "my-docai-service-account"
এরপরে, আপনার Node.js কোড নতুন সার্ভিস অ্যাকাউন্ট হিসেবে লগইন করার জন্য ক্রেডেনশিয়াল তৈরি করুন। নিম্নলিখিত কমান্ডটি ব্যবহার করে এই ক্রেডেনশিয়ালগুলো তৈরি করুন এবং " ~/key.json " নামে একটি JSON ফাইল হিসেবে সংরক্ষণ করুন:
gcloud iam service-accounts keys create ~/key.json \
--iam-account my-docai-sa@${GOOGLE_CLOUD_PROJECT}.iam.gserviceaccount.com
অবশেষে, GOOGLE_APPLICATION_CREDENTIALS এনভায়রনমেন্ট ভেরিয়েবলটি সেট করুন, যা লাইব্রেরিটি আপনার ক্রেডেনশিয়াল খুঁজে পেতে ব্যবহার করে। এই ফর্ম অথেন্টিকেশন সম্পর্কে আরও জানতে, গাইডটি দেখুন। এনভায়রনমেন্ট ভেরিয়েবলটি আপনার তৈরি করা ক্রেডেনশিয়াল JSON ফাইলের সম্পূর্ণ পাথে সেট করতে হবে, যা নিম্নোক্তভাবে করা যাবে:
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/key.json"
৬. নমুনা ফর্মটি ডাউনলোড করুন
আমাদের পাবলিক গুগল ক্লাউড স্টোরেজ স্যাম্পলস বাকেটে ব্যবহারের জন্য একটি নমুনা ফর্ম সংরক্ষিত আছে। এটি আপনার ওয়ার্কিং ডিরেক্টরিতে ডাউনলোড করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন।
gsutil cp gs://cloud-samples-data/documentai/form.pdf .
নিচের কমান্ডটি ব্যবহার করে ফাইলটি আপনার ক্লাউডশেলে ডাউনলোড হয়েছে কিনা তা নিশ্চিত করুন:
ls -ltr form.pdf
৭. ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন
এরপর আপনার ওয়ার্কিং ডিরেক্টরিতে কোডটি সাজিয়ে নিন।
একটি নতুন Node.js প্যাকেজ শুরু করুন:
npm init
ডকুমেন্ট এআই ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন:
npm install @google-cloud/documentai
৮. একটি সিঙ্ক্রোনাস প্রসেস ডকুমেন্ট অনুরোধ করুন
এই ধাপে, আপনি সিনক্রোনাস এন্ডপয়েন্ট ব্যবহার করে একটি প্রসেস ডকুমেন্ট কল করবেন। একসাথে প্রচুর সংখ্যক ডকুমেন্ট প্রসেস করার জন্য আপনি অ্যাসিঙ্ক্রোনাস এপিআই-ও ব্যবহার করতে পারেন। ফর্ম পার্সার এপিআই ব্যবহার সম্পর্কে আরও জানতে, এখানের গাইডটি পড়ুন।
একটি index.js ফাইল তৈরি করুন এবং নিম্নলিখিত কোডটি পেস্ট করুন। প্রযোজ্য ভেরিয়েবলগুলোতে আপনার প্রসেসরের তথ্য পূরণ করুন।
const { DocumentProcessorServiceClient } = require('@google-cloud/documentai').v1;
const fs = require('fs');
/**
* Runs the sample document through Document AI to get key/value pairs and
* confidence scores.
*/
async function processDocument(projectId, location, processorId, filePath, mimeType) {
// Instantiates a client
const documentaiClient = new DocumentProcessorServiceClient();
// The full resource name of the processor, e.g.:
// projects/project-id/locations/location/processor/processor-id
// You must create new processors in the Cloud Console first
const resourceName = documentaiClient.processorPath(projectId, location, processorId);
// Read the file into memory.
const imageFile = fs.readFileSync(filePath);
// Convert the image data to a Buffer and base64 encode it.
const encodedImage = Buffer.from(imageFile).toString('base64');
// Load Binary Data into Document AI RawDocument Object
const rawDocument = {
content: encodedImage,
mimeType: mimeType,
};
// Configure ProcessRequest Object
const request = {
name: resourceName,
rawDocument: rawDocument
};
// Use the Document AI client to process the sample form
const [result] = await documentaiClient.processDocument(request);
return result.document;
}
/**
* Run the codelab.
*/
async function main() {
const projectId = 'YOUR_PROJECT_ID';
const location = 'YOUR_PROJECT_LOCATION'; // Format is 'us' or 'eu'
const processorId = 'YOUR_PROCESSOR_ID'; // Should be a Hexadecimal string
// Supported File Types
// https://cloud.google.com/document-ai/docs/processors-list#processor_form-parser
filePath = 'form.pdf'; // The local file in your current working directory
mimeType = 'application/pdf';
const document = await processDocument(projectId, location, processorId, filePath, mimeType);
console.log("Document Processing Complete");
// Print the document text as one big string
console.log(`Text: ${document.text}`);
}
main(...process.argv.slice(2)).catch(err => {
console.error(err);
process.exitCode = 1;
});
এখন আপনার কোডটি রান করুন এবং আপনি আপনার কনসোলে নিম্নলিখিত লেখাটি প্রিন্ট হতে দেখবেন।
Text: FakeDoc M.D. HEALTH INTAKE FORM Please fill out the questionnaire carefully. The information you provide will be used to complete your health profile and will be kept confidential. Name: Date: Sally Walker DOB: 09/04/1986 Address: 24 Barney Lane City: Towalo State: NJ Zip: 07082 Email: Sally, waller@cmail.com Phone #: (906) 917-3486 Gender: Marital Status: Single Occupation: Software Engineer Referred By: None Emergency Contact: Eva Walker Emergency Contact Phone: (906) 334-8926 Describe your medical concerns (symptoms, diagnoses, etc): Runny nose, mucas in throat, weakness, aches, chills, tired Are you currently taking any medication? (If yes, please describe): Vyvanse (25mg) daily for attention
পরবর্তী ধাপগুলোতে, আপনি কাঠামোগত ডেটা নিষ্কাশন করবেন যা ডেটাবেসে আরও সহজে সংরক্ষণ করা যায় বা অন্যান্য অ্যাপ্লিকেশনে ব্যবহার করা যায়।
৯. ফর্মের কী/ভ্যালু জোড়াগুলো বের করুন
এখন আপনি ফর্ম থেকে কী-ভ্যালু পেয়ার এবং তাদের সংশ্লিষ্ট কনফিডেন্স স্কোরগুলো বের করতে পারবেন। ডকুমেন্ট রেসপন্স অবজেক্টটিতে ইনপুট ডকুমেন্টের পৃষ্ঠাগুলোর একটি তালিকা থাকে। প্রতিটি page অবজেক্টে ফর্ম ফিল্ডগুলোর একটি তালিকা এবং টেক্সটের মধ্যে সেগুলোর অবস্থান থাকে।
নিম্নলিখিত কোডটি প্রতিটি পৃষ্ঠার মধ্য দিয়ে পুনরাবৃত্তি করে এবং প্রতিটি কী, ভ্যালু এবং কনফিডেন্স স্কোর বের করে।
আপনার কোডে নিম্নলিখিত ফাংশনটি যোগ করুন।
/**
* Extract form data and confidence from processed document.
*/
function extractFormData(document) {
// Extract shards from the text field
function getText(textAnchor, document) {
if (!textAnchor.textSegments || textAnchor.textSegments.length === 0) {
return '';
}
// First shard in document doesn't have startIndex property
const startIndex = textAnchor.textSegments[0].startIndex || 0;
const endIndex = textAnchor.textSegments[0].endIndex;
return document.text.substring(startIndex, endIndex);
}
var formData = [];
const pages = document.pages;
pages.forEach((page) => {
const formFields = page.formFields;
formFields.forEach((field) => {
// Get the extracted field names and remove extra space from text
const fieldName = getText(field.fieldName.textAnchor, document);
// Confidence - How "sure" the API is that the text is correct
const nameConfidence = field.fieldName.confidence.toFixed(4);
const fieldValue = getText(field.fieldValue.textAnchor, document);
const valueConfidence = field.fieldValue.confidence.toFixed(4);
formData.push({
fieldName: fieldName,
fieldValue: fieldValue,
nameConfidence: nameConfidence,
valueConfidence: valueConfidence
});
});
});
return formData;
}
main ফাংশনের ভেতর থেকে extractFormData() ফাংশনটিকে কল করুন এবং প্রাপ্ত অবজেক্টটিকে একটি টেবিল হিসেবে প্রিন্ট করুন।
/**
* Run the codelab.
*/
async function main() {
const projectId = 'YOUR_PROJECT_ID';
const location = 'YOUR_PROJECT_LOCATION'; // Format is 'us' or 'eu'
const processorId = 'YOUR_PROCESSOR_ID'; // Should be a Hexadecimal string
// Supported File Types
// https://cloud.google.com/document-ai/docs/processors-list#processor_form-parser
filePath = 'form.pdf'; // The local file in your current working directory
mimeType = 'application/pdf';
const document = await processDocument(projectId, location, processorId, filePath, mimeType);
const formData = extractFormData(document);
console.log('\nThe following form key/value pairs were detected:');
console.table(formData);
}
এখন আপনার কোডটি চালান। আমাদের নমুনা ডকুমেন্টটি ব্যবহার করলে আপনি নিম্নলিখিত আউটপুটটি দেখতে পাবেন:
The following form key/value pairs were detected: ┌─────────┬────────────────────────────────────────────────────────────────┬──────────────────────────────────────────────────────────────────┬────────────────┬─────────────────┐ │ (index) │ fieldName │ fieldValue │ nameConfidence │ valueConfidence │ ├─────────┼────────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────┼────────────────┼─────────────────┤ │ 0 │ 'Marital Status: ' │ 'Single ' │ '1.0000' │ '1.0000' │ │ 1 │ 'DOB: ' │ '09/04/1986\n' │ '0.9999' │ '0.9999' │ │ 2 │ 'City: ' │ 'Towalo ' │ '0.9996' │ '0.9996' │ │ 3 │ 'Address: ' │ '24 Barney Lane ' │ '0.9994' │ '0.9994' │ │ 4 │ 'Referred By: ' │ 'None\n' │ '0.9968' │ '0.9968' │ │ 5 │ 'Phone #: ' │ '(906) 917-3486\n' │ '0.9961' │ '0.9961' │ │ 6 │ 'State: ' │ 'NJ ' │ '0.9960' │ '0.9960' │ │ 7 │ 'Emergency Contact Phone: ' │ '(906) 334-8926\n' │ '0.9925' │ '0.9925' │ │ 8 │ 'Name:\n' │ 'Sally\nWalker\n' │ '0.9922' │ '0.9922' │ │ 9 │ 'Occupation: ' │ 'Software Engineer\n' │ '0.9914' │ '0.9914' │ │ 10 │ 'Zip: ' │ '07082\n' │ '0.9904' │ '0.9904' │ │ 11 │ 'Email: ' │ 'Sally, waller@cmail.com ' │ '0.9681' │ '0.9681' │ │ 12 │ 'Emergency Contact: ' │ 'Eva Walker ' │ '0.9430' │ '0.9430' │ │ 13 │ 'Describe your medical concerns (symptoms, diagnoses, etc):\n' │ 'Runny nose, mucas in throat, weakness,\naches, chills, tired\n' │ '0.7817' │ '0.7817' │ └─────────┴────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────┴────────────────┴─────────────────┘
১০. অভিনন্দন!
অভিনন্দন, আপনি সফলভাবে ডকুমেন্ট এআই এপিআই ব্যবহার করে একটি হাতে লেখা ফর্ম থেকে ডেটা বের করেছেন। আমরা আপনাকে অন্যান্য ফর্মের ছবি নিয়েও পরীক্ষা করার জন্য উৎসাহিত করছি।
পরিষ্কার করা
এই টিউটোরিয়ালে ব্যবহৃত রিসোর্সগুলির জন্য আপনার গুগল ক্লাউড অ্যাকাউন্টে চার্জ হওয়া এড়াতে:
- ক্লাউড কনসোলে, রিসোর্স পরিচালনা (Manage resources) পৃষ্ঠায় যান।
- প্রজেক্ট তালিকা থেকে আপনার প্রজেক্টটি নির্বাচন করে ডিলিট-এ ক্লিক করুন।
- ডায়ালগ বক্সে প্রজেক্ট আইডি টাইপ করুন এবং তারপর প্রজেক্টটি মুছে ফেলার জন্য 'শাট ডাউন'-এ ক্লিক করুন।
আরও জানুন
- নথিপত্রের ভবিষ্যৎ - ইউটিউব প্লেলিস্ট
- ডকুমেন্ট এআই ডকুমেন্টেশন
- ডকুমেন্ট এআই নোড.জেএস ক্লায়েন্ট লাইব্রেরি রেফারেন্স
- ডকুমেন্ট এআই নোড.জেএস স্যাম্পল