Slide 24
Slide 24 text
24
Confidential © 2025 LayerX Inc.
タスク2:⾒積書からの情報抽出‧分類
# この⾒積書PDFから、テーブルの⾏ごとに「商品名」「価格」を抽出します。価格は誤差を避けるため、数量と単価‧⾏合計の関係を明⽰的に読み取り、以下の⽅針で選択してくださ
い。
# 抽出ポリシー(価格の選択)
- ⾏内に数量(数量、Qty、台、式、セット、m、個 等)が明⽰され、明らかに数量>1の場合は「単価(unit_price)」を価格として採⽤する。
- 数量が1または数量が明確でない場合は「⾏合計(line_total)」を価格として採⽤する。
- 単価‧合計のどちらとも特定できない場合のみ price_source="unknown" とし、推測や計算はしない。
# 厳守ルール:
- 計算や単位変換を⾏わない(表⽰されている整数値をそのまま採⽤)。
- OCR誤読補正をしない(⾒えた⽂字‧数字をそのまま使う)。
- 数字が複数並ぶ場合は、列⾒出しと⽔平⽅向の対応から「単価」「合計/⾦額/⼩計」欄を判断する。右端の⾦額列が合計欄であることが多いが、数量>1のときは合計ではなく単価欄を
優先する。
- ⾒出し/カテゴリ合計(例: 「その他設備」「諸費⽤」「⾞両関連」「⼯具‧器具関連」「⼩計」「合計」「消費税」等)は品⽬ではなく、row_roleを適切に付与
(heading/category_summary/subtotal/tax/grand_total/shipping_total)し、単価‧合計の選択はしない。
- 値引きは符号を保持。通貨記号やカンマは除去し整数化。 row_role と price_source: - row_role: one of
["item","service","work","discount","heading","category_summary","subtotal","tax","grand_total","shipping_total"] - price_source: one of
["unit_price","line_total","subtotal","category_total","grand_total","tax","unknown"]
# 出⼒形式(JSONオブジェクト、説明⽂禁⽌)
{ "items": [ { "商品名": "<⾏テキスト>", "価格": <整数>, "row_role": "<上記のいずれか>", "price_source": "<上記のいずれか>", "数量": <整数またはnull>, "unit_price": <整数または
null>, "line_total": <整数またはnull> } , ... ] }
# 補⾜
- 「数量」「unit_price」「line_total」は判読できた範囲で記録(無ければnull)。
- サービス‧⼯事(据付/搬⼊/試運転/教育/申請 等)は row_role を "service" または "work" とする。 - 表が乱れている場合でも、その⾏テキストに最も紐づく列の値を選ぶ。
⽣成されたプロンプト : VLM(商品名と価格の抽出)ノード