Documind هي أداة متقدمة لمعالجة المستندات التي تستفيد من الذكاء الاصطناعي لاستخراج البيانات المهيكلة من PDFs. تم تصميمه للتعامل مع تحويلات PDF ، واستخراج المعلومات ذات الصلة ، ونتائج التنسيق كما هو محدد بواسطة مخططات قابلة للتخصيص.
تم بناء هذا الريبو فوق Zerox - https://github.com/getomni-ai/zerox. يتم تضمين ترخيص MIT من Zerox في المجلد الأساسي ويتم ذكره أيضًا في ملف ترخيص الجذر.
سيكون عرضًا تجريبيًا للنسخة المستضافة Documind متاحًا قريبًا لكي تجربها! يوفر الإصدار المستضاف تجربة سلسة مع واجهات برمجة التطبيقات المدارة بالكامل ، بحيث يمكنك تخطي الإعداد والبدء في استخراج البيانات على الفور.
للوصول الكامل إلى الخدمة المستضافة ، يرجى طلب الوصول وسنقوم بإعدادك.
قبل استخدام documind ، تأكد من تثبيت تبعيات البرامج التالية:
documind على Ghostscript للتعامل مع بعض عمليات PDF.قم بتثبيت كلاهما على نظامك قبل المتابعة:
# On macOS
brew install ghostscript graphicsmagick
# On Debian/Ubuntu
sudo apt-get update
sudo apt-get install -y ghostscript graphicsmagick
تأكد من تثبيت Node.js (V18+) و NPM على نظامك.
يمكنك تثبيت documind عبر NPM:
npm install documind
يتطلب documind ملف .env لتخزين معلومات حساسة مثل مفتاح Openai API الخاص بك.
قم بإنشاء ملف .env في دليل المشروع الخاص بك وأضف ما يلي:
OPENAI_API_KEY=your_openai_api_key أولاً ، استيراد documind وتحديد مخططك. يحدد المخطط ما يجب أن يبحث عنه documind في كل وثيقة. إليك إعداد سريع للبدء.
المخطط عبارة عن مجموعة من الكائنات حيث يحدد كل كائن:
"string" ، "number" ، "array" ، "object" ).مثال مخطط لبيان بنكي:
const schema = [
{
name : "accountNumber" ,
type : "string" ,
description : "The account number of the bank statement."
} ,
{
name : "openingBalance" ,
type : "number" ,
description : "The opening balance of the account."
} ,
{
name : "transactions" ,
type : "array" ,
description : "List of transactions in the account." ,
children : [
{
name : "date" ,
type : "string" ,
description : "Transaction date."
} ,
{
name : "creditAmount" ,
type : "number" ,
description : "Credit Amount of the transaction."
} ,
{
name : "debitAmount" ,
type : "number" ,
description : "Debit Amount of the transaction."
} ,
{
name : "description" ,
type : "string" ,
description : "Transaction description."
}
]
} ,
{
name : "closingBalance" ,
type : "number" ,
description : "The closing balance of the account."
}
] ;documind استخدم documind لمعالجة PDF عن طريق تمرير عنوان URL للملف والمخطط.
import { extract } from 'documind' ;
const runExtraction = async ( ) => {
const result = await extract ( {
file : 'https://bank_statement.pdf' ,
schema
} ) ;
console . log ( "Extracted Data:" , result ) ;
} ;
runExtraction ( ) ;إليك مثال على شكل النتيجة المستخرجة:
{
"success" : true ,
"pages" : 1 ,
"data" : {
"accountNumber" : " 100002345 " ,
"openingBalance" : 3200 ,
"transactions" : [
{
"date" : " 2021-05-12 " ,
"creditAmount" : null ,
"debitAmount" : 100 ,
"description" : " transfer to Tom "
},
{
"date" : " 2021-05-12 " ,
"creditAmount" : 50 ,
"debitAmount" : null ,
"description" : " For lunch the other day "
},
{
"date" : " 2021-05-13 " ,
"creditAmount" : 20 ,
"debitAmount" : null ,
"description" : " Refund for voucher "
},
{
"date" : " 2021-05-13 " ,
"creditAmount" : null ,
"debitAmount" : 750 ,
"description" : " May's rent "
}
],
"closingBalance" : 2420
},
"fileName" : " bank_statement.pdf "
}
يأتي Documind مع قوالب مدمجة لاستخراج البيانات من أنواع المستندات الشهيرة مثل الفواتير والبيانات المصرفية والمزيد. هذه القوالب تسهل البدء دون تحديد المخطط الخاص بك.
قائمة القوالب المتاحة
يمكنك سرد جميع القوالب المتاحة باستخدام وظيفة templates.list .
import { templates } from 'documind' ;
const templates = templates . list ( ) ;
console . log ( templates ) ; // Logs all available template namesاستخدم قالب
لاستخدام قالب ، ما عليك سوى تمرير اسمه إلى وظيفة extract مع الملف الذي تريد استخراج البيانات منه. هذا مثال:
import { extract } from 'documind' ;
const runExtraction = async ( ) => {
const result = await extract ( {
file : 'https://bank_statement.pdf' ,
template : 'bank_statement'
} ) ;
console . log ( "Extracted Data:" , result ) ;
} ;
runExtraction ( ) ;اقرأ وثائق القوالب لمزيد من التفاصيل حول القوالب وكيفية المساهمة بك.
المساهمات مرحب بها! يرجى إرسال طلب سحب مع أي تحسينات أو ميزات.
تم ترخيص هذا المشروع بموجب ترخيص AGPL V3.0.