Documind é uma ferramenta avançada de processamento de documentos que aproveita a IA para extrair dados estruturados do PDFS. Ele foi criado para lidar com conversões em PDF, extrair informações relevantes e formatar resultados, conforme especificado por esquemas personalizáveis.
Este repositório foi construído sobre o Zerox - https://github.com/getomni-ai/zerox. A licença do MIT do Zerox está incluída na pasta principal e também é mencionada no arquivo de licença raiz.
Uma demonstração da versão hospedada do documento estará disponível em breve para você experimentar! A versão hospedada fornece uma experiência perfeita com APIs totalmente gerenciadas, para que você possa pular a configuração e começar a extrair dados imediatamente.
Para acesso total ao serviço hospedado, solicite acesso e você configuraremos você.
Antes de usar documind , verifique se as seguintes dependências de software estão instaladas:
documind conta com GhostScript para lidar com certas operações de PDF.Instale os dois no seu sistema antes de prosseguir:
# On macOS
brew install ghostscript graphicsmagick
# On Debian/Ubuntu
sudo apt-get update
sudo apt-get install -y ghostscript graphicsmagick
Verifique se Node.js (V18+) e NPM estão instalados no seu sistema.
Você pode instalar documind via NPM:
npm install documind
documind exige um arquivo .env para armazenar informações confidenciais como sua chave de API do OpenAI.
Crie um arquivo .env no diretório do seu projeto e adicione o seguinte:
OPENAI_API_KEY=your_openai_api_key Primeiro, importe documind e defina seu esquema. O esquema descreve qual informação documind deve procurar em cada documento. Aqui está uma configuração rápida para começar.
O esquema é uma variedade de objetos em que cada objeto define:
"string" , "number" , "array" , "object" ).Esquema de exemplo para um extrato bancário:
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 processar um PDF passando o URL do arquivo e o esquema.
import { extract } from 'documind' ;
const runExtraction = async ( ) => {
const result = await extract ( {
file : 'https://bank_statement.pdf' ,
schema
} ) ;
console . log ( "Extracted Data:" , result ) ;
} ;
runExtraction ( ) ;Aqui está um exemplo de como pode ser o 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 vem com modelos internos para extrair dados de tipos de documentos populares, como faturas, extratos bancários e muito mais. Esses modelos facilitam o início sem definir seu próprio esquema.
Liste modelos disponíveis
Você pode listar todos os modelos disponíveis usando os templates.list function.
import { templates } from 'documind' ;
const templates = templates . list ( ) ;
console . log ( templates ) ; // Logs all available template namesUse um modelo
Para usar um modelo, basta passar seu nome para a função extract junto com o arquivo do qual você deseja extrair dados. Aqui está um exemplo:
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 ( ) ;Leia a documentação dos modelos para obter mais detalhes sobre os modelos e como contribuir com o seu.
As contribuições são bem -vindas! Envie uma solicitação de tração com quaisquer melhorias ou recursos.
Este projeto está licenciado sob a licença AGPL v3.0.