Documind - это расширенный инструмент обработки документов, который использует ИИ для извлечения структурированных данных из PDF. Он построен для обработки конверсий PDF, извлечения соответствующей информации и результатов формата, как указано в настраиваемых схемах.
Это репо было построено на вершине Zerox - https://github.com/getomni-ai/zerox. Лицензия MIT от Zerox включена в основную папку, а также упоминается в файле лицензии Root.
Демонстрация размещенной версии Documind скоро будет доступна для вас, чтобы попробовать! Разделенная версия предоставляет беспроблемный опыт с полностью управляемыми API, поэтому вы можете сразу пропустить настройку и начать извлекать данные.
Для получения полного доступа к размещенной службе, пожалуйста, запросите доступ, и мы получим вам настроение.
Перед использованием 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 для хранения конфиденциальной информации, такой как ваш ключ API OpenAI.
Создайте файл .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.