1. ওভারভিউ
ডকুমেন্ট এআই কি?
ডকুমেন্ট এআই এপিআই হল একটি নথি বোঝার সমাধান যা অসংগঠিত ডেটা নেয়, যেমন নথি, ইমেল এবং আরও অনেক কিছু, এবং ডেটা বোঝা, বিশ্লেষণ এবং ব্যবহার করা সহজ করে তোলে। API কন্টেন্ট শ্রেণীবিভাগ, সত্তা নিষ্কাশন, উন্নত অনুসন্ধান এবং আরও অনেক কিছুর মাধ্যমে কাঠামো প্রদান করে।
এই টিউটোরিয়ালে, আপনি Node.js এর সাথে ডকুমেন্ট AI API ব্যবহার করার উপর ফোকাস করবেন। টিউটোরিয়ালটি দেখায় কিভাবে একটি সাধারণ চিকিৎসা গ্রহণের ফর্ম পার্স করা যায়।
আপনি কি শিখবেন
- কিভাবে ডকুমেন্ট এআই এপিআই সক্ষম করবেন
- API অনুরোধগুলিকে কীভাবে প্রমাণীকরণ করা যায়
- Node.js এর জন্য ক্লায়েন্ট লাইব্রেরি কিভাবে ইনস্টল করবেন
- কিভাবে একটি স্ক্যান করা ফর্ম থেকে ডেটা পার্স করবেন
আপনি কি প্রয়োজন হবে
- একটি Google ক্লাউড প্রকল্প
- একটি ব্রাউজার, যেমন ক্রোম বা ফায়ারফক্স
- Node.js এর জ্ঞান
সমীক্ষা
আপনি কিভাবে এই টিউটোরিয়াল ব্যবহার করবেন?
আপনি Node.js এর সাথে আপনার অভিজ্ঞতাকে কিভাবে মূল্যায়ন করবেন?
আপনি Google ক্লাউড পরিষেবাগুলি ব্যবহার করার সাথে আপনার অভিজ্ঞতাকে কীভাবে মূল্যায়ন করবেন?
2. সেটআপ এবং প্রয়োজনীয়তা
স্ব-গতিসম্পন্ন পরিবেশ সেটআপ
- ক্লাউড কনসোলে সাইন ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷ (যদি আপনার ইতিমধ্যেই একটি Gmail বা G Suite অ্যাকাউন্ট না থাকে তবে আপনাকে অবশ্যই একটি তৈরি করতে হবে।)
প্রোজেক্ট আইডি মনে রাখবেন, সমস্ত Google ক্লাউড প্রোজেক্ট জুড়ে একটি অনন্য নাম। (উপরে আপনার নাম ইতিমধ্যে নেওয়া হয়েছে এবং আপনার জন্য কাজ করবে না, দুঃখিত!) আপনাকে অবশ্যই এই আইডিটি পরে PROJECT_ID
হিসাবে প্রদান করতে হবে৷
- এর পরে, Google ক্লাউড সংস্থানগুলি ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে৷
"ক্লিনিং আপ" বিভাগে যে কোনো নির্দেশাবলী অনুসরণ করতে ভুলবেন না। বিভাগটি আপনাকে পরামর্শ দেয় যে কীভাবে সংস্থানগুলি বন্ধ করতে হয় যাতে আপনি এই টিউটোরিয়ালের বাইরে বিলিং করতে না পারেন। Google ক্লাউডের নতুন ব্যবহারকারীরা $300USD ফ্রি ট্রায়াল প্রোগ্রামের জন্য যোগ্য৷
ক্লাউড শেল শুরু করুন
যখন Google ক্লাউড আপনি আপনার ল্যাপটপ থেকে দূরবর্তীভাবে Google ক্লাউড পরিচালনা করতে পারেন, এই কোডল্যাবটি Google ক্লাউড শেল ব্যবহার করে, ক্লাউডে চলমান একটি কমান্ড লাইন পরিবেশ।
ক্লাউড শেল সক্রিয় করুন
- ক্লাউড কনসোল থেকে, ক্লাউড শেল সক্রিয় করুন ক্লিক করুন .
আপনি যদি আগে কখনো ক্লাউড শেল চালু না করে থাকেন, তাহলে আপনাকে একটি মধ্যবর্তী স্ক্রীন (ভাঁজের নিচে) উপস্থাপন করা হবে যা বর্ণনা করে। যদি এটি হয়, তবে চালিয়ে যান ক্লিক করুন (এবং আপনি এটি আর কখনও দেখতে পাবেন না)। এককালীন স্ক্রীনটি দেখতে কেমন তা এখানে রয়েছে:
ক্লাউড শেলের সাথে সংযোগ করতে এবং সংযোগ করতে এটির মাত্র কয়েক মুহূর্ত লাগবে৷
ক্লাউড শেল আপনাকে ক্লাউডে হোস্ট করা একটি ভার্চুয়াল মেশিনে টার্মিনাল অ্যাক্সেস সরবরাহ করে। ভার্চুয়াল মেশিনে আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুল রয়েছে। এটি একটি ক্রমাগত 5GB হোম ডিরেক্টরি অফার করে এবং Google ক্লাউডে চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার অনেক কাজ, যদি সব না হয়, শুধুমাত্র একটি ব্রাউজার বা আপনার Chromebook দিয়ে করা যেতে পারে।
একবার ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি দেখতে পাবেন যে আপনি ইতিমধ্যেই প্রমাণীকরণ করেছেন এবং প্রকল্পটি ইতিমধ্যে আপনার প্রকল্প আইডিতে সেট করা আছে।
- আপনি প্রমাণীকৃত কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
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].
3. ক্লাউড ডকুমেন্ট AI API সক্ষম করুন৷
আপনি ডকুমেন্ট এআই ব্যবহার শুরু করার আগে, আপনাকে অবশ্যই API সক্ষম করতে হবে। আপনার ব্রাউজারে ক্লাউড কনসোল খুলুন।
- নেভিগেশন মেনুতে ক্লিক করুন ☰ > APIs & Services > Library .
- "ডকুমেন্ট AI API" অনুসন্ধান করুন, তারপর আপনার Google ক্লাউড প্রকল্পে API ব্যবহার করতে সক্ষম করুন ক্লিক করুন৷
4. একটি প্রসেসর তৈরি করুন এবং পরীক্ষা করুন
এই টিউটোরিয়ালের জন্য ডকুমেন্ট এআই প্ল্যাটফর্মে ব্যবহার করার জন্য আপনাকে প্রথমে ফর্ম পার্সার প্রসেসরের একটি উদাহরণ তৈরি করতে হবে।
- কনসোলে, ডকুমেন্ট এআই প্ল্যাটফর্ম ওভারভিউতে নেভিগেট করুন
- প্রসেসর তৈরি করুন ক্লিক করুন এবং ফর্ম পার্সার নির্বাচন করুন
- একটি প্রসেসরের নাম উল্লেখ করুন এবং তালিকা থেকে আপনার অঞ্চল নির্বাচন করুন।
- আপনার প্রসেসর তৈরি করতে তৈরি করুন ক্লিক করুন
- আপনার প্রসেসর আইডি কপি করুন। আপনাকে অবশ্যই এটি আপনার কোডে ব্যবহার করতে হবে।
(ঐচ্ছিক) আপনি একটি নথি আপলোড করে কনসোলে আপনার প্রসেসর পরীক্ষা করতে পারেন। আপলোড নথিতে ক্লিক করুন এবং পার্স করার জন্য একটি ফর্ম নির্বাচন করুন৷ আপনি এই নমুনা ফর্ম ডাউনলোড এবং ব্যবহার করতে পারেন যদি আপনার ব্যবহার করার জন্য উপলব্ধ না থাকে।
আপনার আউটপুট এটি দেখতে হবে:
5. API অনুরোধগুলি প্রমাণীকরণ করুন৷
ডকুমেন্ট AI API-তে অনুরোধ করার জন্য, আপনাকে অবশ্যই একটি পরিষেবা অ্যাকাউন্ট ব্যবহার করতে হবে। একটি পরিষেবা অ্যাকাউন্ট আপনার প্রকল্পের অন্তর্গত এবং এটি API অনুরোধ করতে Google ক্লায়েন্ট Node.js লাইব্রেরি দ্বারা ব্যবহৃত হয়। অন্য যেকোনো ব্যবহারকারীর অ্যাকাউন্টের মতো, একটি পরিষেবা অ্যাকাউন্ট একটি ইমেল ঠিকানা দ্বারা প্রতিনিধিত্ব করা হয়। এই বিভাগে, আপনি একটি পরিষেবা অ্যাকাউন্ট তৈরি করতে ক্লাউড SDK ব্যবহার করবেন এবং তারপর পরিষেবা অ্যাকাউন্ট হিসাবে প্রমাণীকরণের জন্য প্রয়োজনীয় শংসাপত্রগুলি তৈরি করবেন৷
প্রথমে, আপনার PROJECT_ID
এর সাথে একটি পরিবেশ পরিবর্তনশীল সেট করুন যা আপনি এই কোডল্যাব জুড়ে ব্যবহার করবেন:
export GOOGLE_CLOUD_PROJECT=$(gcloud config get-value core/project)
পরবর্তী, ব্যবহার করে ডকুমেন্ট AI API অ্যাক্সেস করতে একটি নতুন পরিষেবা অ্যাকাউন্ট তৈরি করুন:
gcloud iam service-accounts create my-docai-sa \
--display-name "my-docai-service-account"
এরপরে, শংসাপত্র তৈরি করুন যা আপনার Node.js কোড আপনার নতুন পরিষেবা অ্যাকাউন্ট হিসাবে লগইন করতে ব্যবহার করে। এই শংসাপত্রগুলি তৈরি করুন এবং নিম্নলিখিত কমান্ডটি ব্যবহার করে একটি JSON ফাইল " ~/key.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"
6. নমুনা ফর্ম ডাউনলোড করুন
আমাদের সর্বজনীন Google ক্লাউড স্টোরেজ নমুনা বালতিতে সংরক্ষিত ব্যবহার করার জন্য আমাদের কাছে একটি নমুনা ফর্ম রয়েছে৷ আপনার কার্যকারী ডিরেক্টরিতে এটি ডাউনলোড করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন।
gsutil cp gs://cloud-samples-data/documentai/form.pdf .
নীচের কমান্ডটি ব্যবহার করে ফাইলটি আপনার ক্লাউডশেলে ডাউনলোড করা হয়েছে তা নিশ্চিত করুন:
ls -ltr form.pdf
7. ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন
পরবর্তীতে আপনার কাজের ডিরেক্টরিতে আপনার কোড সেট আপ করুন।
একটি নতুন Node.js প্যাকেজ শুরু করুন:
npm init
ডকুমেন্ট এআই ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন:
npm install @google-cloud/documentai
8. একটি সিঙ্ক্রোনাস প্রক্রিয়া নথি অনুরোধ করুন
এই ধাপে, আপনি সিঙ্ক্রোনাস এন্ডপয়েন্ট ব্যবহার করে একটি প্রসেস ডকুমেন্ট কল করবেন। এক সময়ে প্রচুর পরিমাণে নথি প্রক্রিয়াকরণের জন্য আপনি অ্যাসিঙ্ক্রোনাস API ব্যবহার করতে পারেন, ফর্ম পার্সার API ব্যবহার সম্পর্কে আরও জানতে, এখানে গাইডটি পড়ুন।
একটি 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
পরবর্তী ধাপে, আপনি স্ট্রাকচার্ড ডেটা বের করেন যা আরও সহজে ডাটাবেসে সংরক্ষণ করা যায় বা অন্যান্য অ্যাপ্লিকেশনে ব্যবহার করা যায়।
9. ফর্ম কী/মান পেয়ারগুলি বের করুন৷
এখন আপনি ফর্ম এবং তাদের সংশ্লিষ্ট আত্মবিশ্বাসের স্কোর থেকে কী-মানের জোড়াগুলি বের করতে পারেন। ডকুমেন্ট রেসপন্স অবজেক্টে ইনপুট ডকুমেন্ট থেকে পৃষ্ঠাগুলির একটি তালিকা রয়েছে। প্রতিটি 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;
}
মূল ফাংশনের ভিতর থেকে 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' │ └─────────┴────────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────┴────────────────┴─────────────────┘
10. অভিনন্দন!
অভিনন্দন, আপনি সফলভাবে একটি হাতে লেখা ফর্ম থেকে ডেটা বের করতে ডকুমেন্ট AI API ব্যবহার করেছেন। আমরা আপনাকে অন্যান্য ফর্ম ইমেজ সঙ্গে পরীক্ষা করার জন্য উত্সাহিত.
ক্লিন আপ
এই টিউটোরিয়ালে ব্যবহৃত সংস্থানগুলির জন্য আপনার Google ক্লাউড অ্যাকাউন্টে চার্জ এড়াতে:
- ক্লাউড কনসোলে, সম্পদ পরিচালনা পৃষ্ঠাতে যান।
- প্রকল্প তালিকায়, আপনার প্রকল্প নির্বাচন করুন তারপর মুছুন ক্লিক করুন.
- ডায়ালগে, প্রকল্প আইডি টাইপ করুন এবং তারপরে প্রকল্পটি মুছে ফেলতে শাট ডাউন ক্লিক করুন।
আরও জানুন
- নথির ভবিষ্যত - YouTube প্লেলিস্ট
- ডকুমেন্ট এআই ডকুমেন্টেশন
- নথি AI Node.js ক্লায়েন্ট লাইব্রেরি রেফারেন্স
- নথি AI Node.js নমুনা