Documind est un outil de traitement de document avancé qui exploite l'IA pour extraire les données structurées des PDF. Il est conçu pour gérer les conversions PDF, extraire les informations pertinentes et les résultats du format comme spécifié par des schémas personnalisables.
Ce dépôt a été construit au-dessus de Zerox - https://github.com/getomni-ai/zerox. La licence MIT de Zerox est incluse dans le dossier de base et est également mentionnée dans le fichier de licence racine.
Une démo de la version hébergée Documind sera bientôt disponible pour que vous puissiez essayer! La version hébergée offre une expérience transparente avec des API entièrement gérées, vous pouvez donc ignorer la configuration et commencer à extraire des données immédiatement.
Pour un accès complet au service hébergé, veuillez demander l'accès et nous vous ferons configurer.
Avant d'utiliser documind , assurez-vous que les dépendances logicielles suivantes sont installées:
documind s'appuie sur GhostScript pour gérer certaines opérations PDF.Installez les deux sur votre système avant de continuer:
# On macOS
brew install ghostscript graphicsmagick
# On Debian/Ubuntu
sudo apt-get update
sudo apt-get install -y ghostscript graphicsmagick
Assurez-vous que Node.js (V18 +) et NPM sont installés sur votre système.
Vous pouvez installer documind via NPM:
npm install documind
documind nécessite un fichier .env pour stocker des informations sensibles comme votre clé API OpenAI.
Créez un fichier .env dans votre répertoire de projet et ajoutez ce qui suit:
OPENAI_API_KEY=your_openai_api_key Tout d'abord, importez documind et définissez votre schéma. Le schéma décrit les informations documind devrait rechercher dans chaque document. Voici une configuration rapide pour commencer.
Le schéma est un tableau d'objets où chaque objet définit:
"string" , "number" , "array" , "object" ).Exemple de schéma pour un relevé bancaire:
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 Utilisez documind pour traiter un PDF en passant l'URL de fichier et le schéma.
import { extract } from 'documind' ;
const runExtraction = async ( ) => {
const result = await extract ( {
file : 'https://bank_statement.pdf' ,
schema
} ) ;
console . log ( "Extracted Data:" , result ) ;
} ;
runExtraction ( ) ;Voici un exemple de ce à quoi pourrait ressembler le résultat extrait:
{
"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 est livré avec des modèles intégrés pour extraire les données de types de documents populaires comme les factures, les relevés bancaires, etc. Ces modèles facilitent le démarrage sans définir votre propre schéma.
Liste des modèles disponibles
Vous pouvez répertorier tous les modèles disponibles à l'aide de la fonction templates.list .
import { templates } from 'documind' ;
const templates = templates . list ( ) ;
console . log ( templates ) ; // Logs all available template namesUtiliser un modèle
Pour utiliser un modèle, passez simplement son nom à la fonction extract avec le fichier dont vous souhaitez extraire des données. Voici un exemple:
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 ( ) ;Lisez la documentation des modèles pour plus de détails sur les modèles et comment contribuer le vôtre.
Les contributions sont les bienvenues! Veuillez soumettre une demande de traction avec toute amélioration ou fonctionnalité.
Ce projet est autorisé en vertu de la licence AGPL V3.0.