メインコンテンツへスキップ
Box AI APIを使用すると、ファイルのメタデータをキーと値のペアとして抽出できます。入力には、fieldsパラメータで構造を作成するか、既存のメタデータテンプレートを使用できます。テンプレートの作成の詳細については、メタデータテンプレートのカスタマイズを参照するか、を使用してください。また、抽出エージェント (標準または強化) を使用して、テンプレートにメタデータを自動入力することもできます。

サポートされているファイル形式

このエンドポイントでは、以下のファイル形式がサポートされています。
  • PDF
  • DOC
  • DOCX
  • GDOC
  • ODT
  • Box Note
  • テキスト
  • RTF
  • XDW
  • AS
  • TIFF
  • TIF
  • PNG
  • JPEG
  • JPG
  • WEBP
  • PPT
  • PPTX
  • GSLIDE
  • GSLIDES
  • ODP
  • OTP
  • XLS
  • XLSX
  • XLSM
  • ODS
  • CSV
  • 言語: .js、.py、.css、.php、.sql
  • JSON
  • HTML
  • XML
  • MD
Box AIは、画像ファイルやスキャンしたドキュメントを処理する際に光学式文字認識 (OCR) を適用します。これにより、抽出前に画像をPDFに変換する必要がなくなります。

サポートされている言語

Box AIは、以下の言語のドキュメントからメタデータを抽出できます。
  • 英語
  • 日本語
  • 中国語
  • 韓国語
  • キリル文字ベースの言語 (ロシア語、ウクライナ語、ブルガリア語、セルビア語など)
異なる言語や画像形式を使用するために追加の構成は必要ありません。Box AIが言語を検出し、必要に応じてOCRを適用します。

開始する前に

Platformアプリを作成して認証するには、に記載されている手順を実行してください。

リクエストの送信

リクエストを送信するには、POST /2.0/ai/extract_structuredエンドポイントを使用します。

パラメータ

このリクエストには、以下のパラメータが適用されます。必須のパラメータは太字で示されています。 items配列には要素が1つだけ含まれている必要があります。プロンプトとファイルの制限については、を参照してください。

structおよびtableフィールドタイプ

Box AI extract_structured APIでは、スカラータイプ (string、float、date、enum、multiSelect) に加え、2つの複雑なフィールドタイプ (structおよびtable) がサポートされています。structおよびtableタイプを使用すると、ドキュメントからグループ化された構造化データや繰り返し構造を持つ構造化データを抽出することができます。
最良の結果を得るには、抽出エージェント (強化) を使用してください。

structフィールドタイプ

structタイプを使用すると、関連する複数のサブフィールドを1つの名前付きJSONオブジェクトにグループ化することができます。これは、関連するひとまとまりの値を抽出し、個別のフラットなフィールドではなく、1つの構造化されたオブジェクトとして取得する必要がある場合に便利です。たとえば、住所や個人の連絡先情報などに使用します。 structフィールドには、そのサブフィールドを定義するfields配列が必要です。各サブフィールドは、以下のプロパティを持つオブジェクトです。
  • key: サブフィールドの一意の識別子。
  • type: サブフィールドのタイプ。サポートされるタイプは、string、text、number、float、boolean、date、enum、multiSelect、およびarray[<simple_type>]です (例: array[string])。ネストされたstructまたはtableタイプは、サブフィールドとしてサポートされていません。
  • displayName: サブフィールドの表示名。
  • description: サブフィールドの説明。
  • prompt: サブフィールドに関する追加のコンテキスト。サブフィールドの確認方法やフォーマットの方法を含めることができます。
グループ化されたオブジェクト全体に指示を適用する場合、structフィールドレベルでプロンプトを追加できます。
出力は、抽出されたサブフィールドの値を含む単一のJSONオブジェクトとなります。 structフィールドタイプに対するリクエストの例:
レスポンス:

tableフィールドタイプ

tableタイプを使用すると、構造化データの繰り返し行をJSONオブジェクトの配列として抽出できます。この場合、各オブジェクトが1行を表します。 これは、ドキュメント内に同じデータ構造のインスタンスが複数含まれている場合に役立ちます。例としては、請求書の明細項目や税率表の項目などが挙げられます。 tableフィールドには、各行の列 (サブフィールド) を定義するfields配列が必要です。サブフィールドのプロパティおよびサポートされるタイプは、structのものと同じです。
表の抽出は、視覚的にフォーマットされた表に限定されません。tableタイプは、グリッド、キー/値ペア、フォームレイアウト、または単なる文から繰り返しデータを抽出します。
出力はJSONオブジェクトの配列であり、各オブジェクトは抽出された1行を表します。 tableフィールドタイプに対するリクエストの例:
レスポンス:

サポートされるサブフィールドのタイプ

structフィールドとtableフィールドの両方で、以下のタイプがサポートされます。
ネストされたstructおよびtableタイプは、サブフィールドとしてはサポートされていません。

チュートリアル: サプライヤ契約書を構造化された調達データに変換する

structとtableの2つのフィールドタイプの実際の使用例を見ていきます。サプライヤ契約書から、グループ化されたベンダー詳細データと繰り返しの納品スケジュールを抽出したうえで、結果を下流の調達レコードにマッピングする方法を確認できます。

include_confidence_scoreパラメータ

include_confidence_scoreパラメータは、抽出した各フィールドの信頼度スコアを返します。このスコアは、抽出した情報が正しい可能性がどれくらいあるかを表しています。Boxでは、数値スコアとシンプルな評価 (低、中、または高) の両方が提供されるため、結果がどれくらい信頼できるかをユーザーや自動化されたツールがすばやく確認できます。 信頼度を計算するために、Boxでは同じリクエストに対して若干異なる方法で (設定の変更、プロンプトの言い換え、フィールドの再配置など) 複数の回答を生成し、返される値の一貫性と頻度を評価します。その後は、Boxがそれらのシグナルを実際の精度を反映した確率に変換します。
  • 高信頼度 (0.90以上) は、値が正しい可能性が非常に高く、人間によるレビューがほとんどまたはまったく必要ないことを意味します。
  • 中信頼度 (0.70~0.89) は、値が正しい可能性が高く、リスク許容度に応じて簡単なチェックが推奨されることを意味します。
  • 低信頼度 (0.70未満) は、値が不確実であり、人間によるレビューが強く推奨されることを意味します。

include_referenceパラメータ

include_referenceパラメータは、裏付けとなる引用情報と抽出した値のバウンディングボックスを返します。これらはソースドキュメントに対して抽出した値を検証するのに役立ちます。 参照は、抽出した値の裏付けとなるソースファイルから抜粋した短いテキストです。バウンディングボックスは、裏付けとなるテキストが配置されているページ上の領域を特定します。 Box AIは、OCRでサポートされるファイルのみを対象に、ページベースのOCRレプリゼンテーションからバウンディングボックスを計算して返します。 参照をレスポンスに含めるには、include_referenceをtrueに設定します。

レスポンスの構造

レスポンスには以下のものが含まれます。
  • answer: 抽出したメタデータフィールド。
  • references: 抽出した各フィールドの裏付けとなる引用情報。
各参照には以下のものが含まれます。
  • item_id: ソースファイルID。
  • page: ゼロから始まるページ番号。
  • bounding_box: 引用したテキストの場所 (特定可能な場合)。
  • text: 引用したテキストの抜粋。

レスポンススキーマの例

バウンディングボックスの形式

バウンディングボックスは、正規化された4つの座標が含まれるオブジェクトです。
  • left: バウンディングボックスの左端の正規化されたx座標。
  • top: バウンディングボックスの上端の正規化されたy座標。
  • right: バウンディングボックスの右端の正規化されたx座標。
  • bottom: バウンディングボックスの下端の正規化されたy座標。
これらの値の範囲は0~1で、(0,0) はページの左上隅、(1,1) は右下隅です。 例:
抽出したすべてのメタデータフィールドに参照のリストが関連付けられています。複数の値を持つフィールドの場合、抽出した値にそれぞれ独自の参照のリストがあるため、ネストされたリスト構造になります。bounding_boxは省略可であり、nullになる場合があります。

ユースケース

この例では、サンプル請求書からメタデータを抽出する方法を示します。ベンダー名、請求書番号などの詳細情報を抽出します。
ベンダー、請求書番号、発注番号、2つの明細項目があり、合計額が$1,050であるQuasar Innovationsの請求書

リクエストの作成

Box AIからレスポンスを取得するには、以下のパラメータを使用して、POST /2.0/ai/extract_structuredエンドポイントを呼び出します。
  • items.typeおよびitems.id: データの抽出元となるファイルを指定
  • fields: ファイルから抽出するデータを指定
  • metadata_template: 既存のメタデータテンプレートを指定
fieldsとmetadata_templateのどちらかを使用して、構造を指定できます。両方を使用することはできません。

fieldsパラメータの使用

fieldsパラメータを使用すると、抽出するデータを指定できます。各fieldsオブジェクトには、そのデータを説明するために使用できるパラメータが含まれています。たとえば、フィールドのタイプや説明、または追加のコンテキストを含めたプロンプトを追加することができます。
応答には、以下のように、指定したフィールドとその値が示されます。

メタデータテンプレートの使用

メタデータテンプレートを使用する場合は、そのtemplate_key、type、scopeを指定します。
応答には、以下のように、メタデータテンプレートに含まれているフィールドとその値が示されます。

抽出エージェント (強化)

抽出エージェント (強化) を使用するには、次のようにai_agentオブジェクトを指定します。
抽出エージェント (強化) を使用してデータを抽出するには、以下のいずれかが必要です。 Box Python SDKを使用した以下のサンプルを確認してください。

チュートリアル: Box AI Extractを使用した請求書取り込みの自動化

抽出 (構造化) の実際の動作をご確認ください。フォルダの監視、請求書のフィールド抽出、各ファイルへのメタデータ書き戻しを実行する、エンドツーエンドの自動化を構築します。
最終更新日 2026年10月14日