メインコンテンツまでスキップ

ファイルからテキストを抽出する

ファイルからテキストを抽出して処理し、ドキュメントの取り込みを高速化する

Squid のテキスト抽出機能を使用すると、ファイルの内容を簡単に処理し、情報を迅速に取得できます。コンプライアンス文書、決算報告書、科学研究など、レビューが必要であり、その内容に基づいてアクションを実行する必要があるドキュメントには多くの種類があります。

この情報を手動で取り込む作業には時間がかかり、エラーも発生しやすくなります。Squid では、これまで数日かかっていたこれらのタスクを数秒で完了できます。

注記

テキスト抽出には admin privileges が必要です。そのため、Squid backend やその他の server environment など、Squid API key にアクセスできる安全な環境でのみ実行してください。

extraction client を作成する

ドキュメントに対してテキスト抽出を実行するには、まず extraction() メソッドを使用して extraction client を作成します。

Backend code
const extractionClient = this.squid.extraction();

テキストを抽出する

extraction client の extractDataFromDocumentFile メソッドを使用して、ファイルからテキストを抽出します。このメソッドは、File または BlobAndFileName のいずれかの型を受け取ります。extractDataFromDocumentFile メソッドは、pages の配列に解決される promise を返します。特定のページのテキストには、content attribute を使用してアクセスできます。

次の例では、ファイルからテキストを抽出します。

Backend code
const data = {
blob: dataBlob,
name: 'myDocument.pdf',
};

const extractedResult = await extractionClient.extractDataFromDocumentFile(data);
console.log(extractedResult.pages[0].content); // 'Q4 Development Plan...'
抽出されるコンテンツ

Squid の extraction client は、強力な AI 処理を使用してさまざまなファイル内容からテキストを抽出します。テキストファイルの読み取りをサポートするだけでなく、スキャンしたドキュメント、表、複数の言語などからもテキストを抽出します。

OCR provider が処理したページ数を報告する場合、結果にはその数が ocrPagesProcessed として含まれます。pages を数えるのではなく、課金対象ページの追跡にはこれを使用してください。両者は異なる場合があります。たとえば、空白ページは処理および課金されますが、コンテンツは返されません。

Backend code
// May exceed extractedResult.pages.length when the document contains blank pages.
console.log(extractedResult.ocrPagesProcessed);

extraction client には、remote URL 上のドキュメントからテキストを抽出するための追加メソッドがあります。どちらの extraction method でも、オプションとして options parameter を指定できます。これにより、抽出するドキュメントの pageIndexes、使用する抽出メソッド、および画像抽出用のオプションを指定できます。

Backend code
const extractedResult = await extractionClient.extractDataFromDocumentUrl(
'www.file-url.com',
{ pageIndexes: [0, 1, 2] }
);

抽出メソッド

Squid は複数のメソッドのいずれかを使用してドキュメントを抽出します。メソッドを指定するには、options parameter で preferredExtractionMethod を渡します。同じオプションは、knowledge base に file context をアップロードする場合にも使用できます。名前が示すとおり、このメソッドは保証ではなく preference であり、メソッドを要求してもエラーになることはありません。2 つの Basic method は常にそのまま使用されますが、provider-backed method は、要求した provider が環境に設定されていない場合、Squid は利用可能な最初の provider-backed method(Mistral OCR、Amazon Textract、Azure AI Document Intelligence の順)に暗黙的にフォールバックし、いずれも利用できない場合は通常の Basic(legacy)にフォールバックします。メソッドを選択しない場合は、環境のデフォルトメソッドが同じ利用可否フォールバックを経て使用されます。extraction response には、実際に実行されたメソッドは含まれません。

  • mistral_ocrMistral OCR)、amazon_textractAmazon Textract)、azure_document_intelligenceAzure AI Document Intelligence):provider-based OCR。これらは最も高性能な extraction method です。embedded image でない場合でもページ内の図やグラフを識別できるため、ドキュメントを最も正確に抽出できます。
  • legacyBasic):PDF の text layer と embedded image を直接読み取ります。高速ですが、スキャンされたページには text layer がないため、テキストは抽出されません。抽出された embedded image は、ドキュメントが knowledge base に取り込まれる際に AI によって説明されます(以下の extractImages を参照)。
  • legacy_with_llmBasic + page understanding):Basic と同じテキスト抽出に加えて、AI が説明した各ページの画像を取得します。すべての図やグラフが embedded image として存在するわけではないため、これが必要になる場合があります。ページごとに 1 回の AI call が必要となるため、長いドキュメントでは Basic よりも抽出に時間がかかり、コストも高くなります。

太字の名前は、Squid Console の knowledge base Add Knowledge dialog に表示される label です。この dialog では、ドキュメントをアップロードする際にも同じ選択肢を使用できます。この dialog であらかじめ選択されているメソッドが、環境のデフォルトです。

Backend code
const extractedResult = await extractionClient.extractDataFromDocumentFile(
data,
{ preferredExtractionMethod: 'legacy_with_llm' }
);

2 つの関連オプションは、すべての method の画像処理を制御します。extractImages のデフォルト値は true です。ドキュメントから抽出された画像は、knowledge base に取り込まれるときに AI によって説明されます。これを false に設定すると、Basic + page understanding のページ説明を含め、画像は完全にスキップされます。imageMinSizePixels のデフォルト値は 100 です。いずれかの寸法がこれより小さい embedded image はスキップされます。

次のステップ

テキストを抽出したら、次のことができます。

  • テキストを parse し、Squid のdatabase connectorsを使用して database に書き込む。
  • テキストに関する質問への回答や、テキストに基づくアクションの実行を行うため、Squid AI Agent への query の一部としてテキストを渡す。