Documind 、AIを活用してPDFから構造化されたデータを抽出する高度なドキュメント処理ツールです。これは、PDF変換を処理し、関連する情報を抽出し、カスタマイズ可能なスキーマで指定されている形式の結果を処理するために構築されています。
このレポは、Zerox -https://github.com/getomni-ai/zeroxの上に構築されました。 ZeroxからのMITライセンスはコアフォルダーに含まれており、ルートライセンスファイルにも記載されています。
Documindホストバージョンのデモは、すぐに試してみるために利用できます!ホストされたバージョンは、完全に管理されたAPIでシームレスなエクスペリエンスを提供するため、セットアップをスキップしてすぐにデータの抽出を開始できます。
ホストされたサービスへの完全なアクセスについては、アクセスをリクエストしてください。セットアップをお勧めします。
documindを使用する前に、次のソフトウェア依存関係がインストールされていることを確認してください。
documind 、特定のPDF操作を処理するためのGhostScriptに依存しています。進む前に両方をシステムにインストールします。
# On macOS
brew install ghostscript graphicsmagick
# On Debian/Ubuntu
sudo apt-get update
sudo apt-get install -y ghostscript graphicsmagick
Node.js(V18+)とNPMがシステムにインストールされていることを確認してください。
npm経由でdocumindをインストールできます。
npm install documind
documind 、OpenAI APIキーのような機密情報を保存するために.envファイルを必要とします。
プロジェクトディレクトリに.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使用して、ファイルURLとスキーマを渡してPDFを処理します。
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ライセンスに基づいてライセンスされています。