Documind es una herramienta avanzada de procesamiento de documentos que aprovecha la IA para extraer datos estructurados de PDFS. Está creado para manejar las conversiones PDF, extraer información relevante y resultados de formato según lo especificado por esquemas personalizables.
Este repositorio fue construido sobre Zerox - https://github.com/getomni-ai/zerox. La licencia MIT de Zerox se incluye en la carpeta Core y también se menciona en el archivo de licencia raíz.
¡Una demostración de la versión alojada de Documind estará disponible pronto para que lo pruebe! La versión alojada proporciona una experiencia perfecta con API totalmente administradas, por lo que puede omitir la configuración y comenzar a extraer datos de inmediato.
Para obtener acceso completo al servicio alojado, solicite acceso y lo configuraremos.
Antes de usar documind , asegúrese de que se instalen las siguientes dependencias de software:
documind se basa en GhostScript para manejar ciertas operaciones de PDF.Instale ambos en su sistema antes de continuar:
# On macOS
brew install ghostscript graphicsmagick
# On Debian/Ubuntu
sudo apt-get update
sudo apt-get install -y ghostscript graphicsmagick
Asegúrese de que Node.js (V18+) y NPM estén instalados en su sistema.
Puede instalar documind a través de NPM:
npm install documind
documind requiere un archivo .env para almacenar información confidencial como su tecla API OpenAI.
Cree un archivo .env en su directorio de proyecto y agregue lo siguiente:
OPENAI_API_KEY=your_openai_api_key Primero, importe documind y defina su esquema. El esquema describe qué información documind debe buscar en cada documento. Aquí hay una configuración rápida para comenzar.
El esquema es una matriz de objetos donde cada objeto define:
"string" , "number" , "array" , "object" ).Esquema de ejemplo para un extracto bancario:
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 Use documind para procesar un PDF pasando la URL del archivo y el esquema.
import { extract } from 'documind' ;
const runExtraction = async ( ) => {
const result = await extract ( {
file : 'https://bank_statement.pdf' ,
schema
} ) ;
console . log ( "Extracted Data:" , result ) ;
} ;
runExtraction ( ) ;Aquí hay un ejemplo de cómo podría ser el resultado extraído:
{
"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 viene con plantillas integradas para extraer datos de tipos de documentos populares como facturas, extractos bancarios y más. Estas plantillas hacen que sea más fácil comenzar sin definir su propio esquema.
Lista de plantillas disponibles
Puede enumerar todas las plantillas disponibles utilizando la función templates.list .
import { templates } from 'documind' ;
const templates = templates . list ( ) ;
console . log ( templates ) ; // Logs all available template namesUse una plantilla
Para usar una plantilla, simplemente pase su nombre a la función extract junto con el archivo del que desea extraer datos. Aquí hay un ejemplo:
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 ( ) ;Lea la documentación de las plantillas para obtener más detalles sobre las plantillas y cómo contribuir con la suya.
¡Las contribuciones son bienvenidas! Envíe una solicitud de extracción con cualquier mejora o característica.
Este proyecto tiene licencia bajo la licencia AGPL V3.0.