海外の装置メーカーのフィールドエンジニアが残す英文のサービス報告書を読み取り、作業内容・交換部品・停止時間を設備保全台帳に転記して、保守契約に照らした有償・保証の区分と請求の確認点を出す
海外の装置メーカーのフィールドエンジニアが残す英文のサービス報告書を読み取り、作業内容・交換部品・停止時間を設備保全台帳に転記します。保守契約に照らして作業ごとに保証・契約内・有償の区分の候補を付け、後で届く請求書で確かめる点を一覧にします。
- 生成AI
- ChatGPT/Claude/Gemini
- AIサービス
- AWS Textract/Azure AI/Google Document AI
- 連携・自動化
- Python
- 対象業界
- 医療/商社/製造
- 対象部門
- 生産/購買
- 対象業務
- データ入力・転記/内容確認・チェック
- 主な課題
- 入力作業が多い/引き継ぎができていない/確認ミスが多い
- AIで行う処理
- 読み取り(OCR)
- 主な効果
- 入力漏れ削減/判断支援/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- サービス報告書のPDFを受け取るか、紙の控えをスキャンして共有フォルダに保存する
- 報告書を開き、作業日、装置、作業の種類、作業内容、交換部品、作業時間、停止時間を設備保全台帳に写す
- 交換部品の型番を、メーカーの部品表や過去の交換の記録と見比べて確かめる
- 保守契約の要点の表を開き、作業が定期点検の回数の内か、部品が契約の範囲か、保証期間の中かを考える
- 迷うものは英文の契約の原本を開いて読む
- 有償になりそうな作業を、購買の担当へメモで知らせる
- 請求書が届いたら、購買の担当からの問い合わせに、台帳とメモを見て答える
- 人報告書のPDFか紙のスキャンを、メーカーごとの受け取りの場所(Amazon S3)に保存する
- 自動保存をきっかけに、AWS Textract が欄・表・質問への答え・署名の位置の読み取りを始める
- 自動プログラムが、欄と部品の表を組み立て、時刻から作業時間と停止時間を計算する
- 自動プログラムが、交換部品の型番を部品表と過去の交換の記録に照らす
- 自動Claude API が、作業の記述を点検・修理・部品交換・改造に分け、契約台帳のどの取り決めに当たりそうかを根拠付きで示す
- 自動プログラムが、保証期間・定期点検の回数・部品の範囲を契約台帳と照らし、区分の候補と請求の確認点を決める
- 人設備保全の担当者が、読み取りの信頼度が低い欄と、区分の候補を確かめ、台帳への登録を承認する
- 人有償の候補と請求の確認点を、購買の担当に回す
各工程の詳しい説明を読む
- サービス報告書のPDFを受け取るか、紙の控えをスキャンして共有フォルダに保存する
- 報告書を開き、作業日、装置、作業の種類、作業内容、交換部品、作業時間、停止時間を設備保全台帳に写す
- 交換部品の型番を、メーカーの部品表や過去の交換の記録と見比べて確かめる
- 保守契約の要点の表を開き、作業が定期点検の回数の内か、部品が契約の範囲か、保証期間の中かを考える
- 迷うものは英文の契約の原本を開いて読む
- 有償になりそうな作業を、購買の担当へメモで知らせる
- 請求書が届いたら、購買の担当からの問い合わせに、台帳とメモを見て答える
(a)手書きの欄を写すのに時間がかかる。 筆記体の作業内容を読み、型番を1文字ずつ写します。写し間違えた型番は、次に同じ部品を手配するときに誤った部品を頼む原因になります。
(b)停止時間の数え方が人によって違う。 報告書には到着・開始・終了の時刻がありますが、装置が止まったのはその前からです。故障の連絡から復旧までを停止時間とするのか、エンジニアの作業時間だけとするのかが、担当者で揃っていません。
(c)契約の範囲を担当者しか覚えていない。 6社・約60台の契約の違いを覚えているのは、課の中で1名です。その人が休むと、4番と5番が止まります。 引き継ぎの資料は契約の要点の表だけです。
(d)請求書が来てから探し直す。 作業から数か月たって請求書が届くと、当時の報告書とメモを探し、どの作業の請求かを突き合わせるところから始まります。
- 【人】 報告書のPDFか紙のスキャンを、メーカーごとの受け取りの場所(Amazon S3)に保存する
- 【自動】 保存をきっかけに、AWS Textract が欄・表・質問への答え・署名の位置の読み取りを始める
- 【自動】 プログラムが、欄と部品の表を組み立て、時刻から作業時間と停止時間を計算する
- 【自動】 プログラムが、交換部品の型番を部品表と過去の交換の記録に照らす
- 【自動】 Claude API が、作業の記述を点検・修理・部品交換・改造に分け、契約台帳のどの取り決めに当たりそうかを根拠付きで示す
- 【自動】 プログラムが、保証期間・定期点検の回数・部品の範囲を契約台帳と照らし、区分の候補と請求の確認点を決める
- 【人】 設備保全の担当者が、読み取りの信頼度が低い欄と、区分の候補を確かめ、台帳への登録を承認する
- 【人】 有償の候補と請求の確認点を、購買の担当に回す
7番目が、この設計の分かれ目です。 担当者は報告書を一から写すのではなく、読み取った値と原本の該当箇所、区分の候補と根拠の取り決めを並べて見て判断します。 台帳への登録は、担当者の承認の後です。
6番目を規則で決めているのも、意図してのことです。 保証期間の中か、定期点検の回数の内かは、日付と回数の比較で決まります。AIには作業の性質を分けさせ、日付と回数の比較はプログラムが行います。
02今回想定するシステム構成
サービス報告書(英文のPDF/紙のスキャン。メーカー6社) │ 担当者がメーカーごとの場所へ保存 ▼【トリガー】Amazon S3 への保存 AWS Lambda ── StartDocumentAnalysis(FeatureTypes:FORMS、TABLES、QUERIES、SIGNATURES) ▼ AWS Textract(非同期の文書分析) │ 完了の通知(Amazon SNS) ▼ AWS Lambda ── GetDocumentAnalysis ├──▶ Python:欄と部品の表の組み立て、時刻からの作業時間・停止時間の計算 ├──▶ Python:型番を部品表・過去の交換の記録と照らす ├──▶ Claude API:作業の区分と、当たりそうな契約の取り決め(根拠付き) └──▶ Python:保証期間・点検の回数・部品の範囲との照合、区分の候補と請求の確認点 ▼ 台帳への登録の案と確認点の一覧(設備保全の担当者が確認) ▼ 設備保全台帳へ登録(承認後)/購買の担当へ(有償の候補と確認点)
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | AWS Textract(StartDocumentAnalysis/GetDocumentAnalysis。FORMS・TABLES・QUERIES・SIGNATURES) | Azure AI Document Intelligence、Google Document AI |
| 生成AI | Claude API(作業の区分、当たりそうな契約の取り決めの提示) | OpenAI API、Gemini API |
| 差異計算 | Python(表の組み立て、時間の計算、型番と契約台帳との照合) | 保全管理のシステムの照合の機能 |
| 連携 | AWS Lambda(保存と完了の通知を起点に処理を動かす) | AWS Step Functions |
| 保管 | Amazon S3(報告書の原本、読み取り結果、判定の記録) | 社内のファイルサーバー |
土台は、AWS Textract の文書分析です。 公式のページでは、FeatureTypes に TABLES・FORMS・QUERIES・SIGNATURES・LAYOUT を指定でき、FORMS で欄(キーと値の組)、TABLES で表、SIGNATURES で署名の位置、QUERIES で質問への答えが返るとされています。報告書は数ページになることがあるので、非同期の StartDocumentAnalysis を使います。 同期の処理ではPDFが1ページまでです。
Textract を選べるのは、報告書が英文だからです。 公式の対応言語は英語・フランス語・ドイツ語・イタリア語・ポルトガル語・スペイン語で、手書きの文字の読み取りは英語だけとされています。手書きの欄が多いサービス報告書には、ここが効きます。日本語の報告書には使えません。 国内の代理店が日本語で報告書を書く装置は、Azure AI Document Intelligence か Google Document AI に替えます。
保守契約は、契約台帳として先に表にしておきます。 英文の契約の原本を毎回AIに読ませるのではなく、装置ごとに保証期間の終わり、定期点検の回数、範囲に含まれる部品の区分、時間外と移動の扱い、条項の番号を1行にまとめておきます。AIはこの台帳と照らします。
03どうやって実装するのか
処理の起点を決める
メーカーごとの受け取りの場所(S3 のフォルダ)にファイルが保存されたことを起点にします。 フォルダは fsr/<メーカーの記号>/<工場の記号>/ の形にし、どのメーカーの書式かを、保存した場所で決めます。 メーカーが分かれば、どの欄にどの情報があるかの設定を選べます。
PDFでメールされてくる報告書は、メールの受信から自動で保存することもできます。紙の控えは、現場の担当者が複合機でスキャンして同じフォルダに入れます。 経路が違っても、フォルダから先は同じ処理です。
読み取りを始めるとき、ClientRequestToken にファイルのハッシュを入れます。 同じ報告書がメールとスキャンの両方で入っても、読み取りは一度で済みます。完了は Amazon SNS の通知で受け、JobId が有効なあいだに結果を S3 に保存します。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| サービス報告書 | 報告書番号、装置の型式と製造番号、作業日、到着・開始・終了の時刻、作業の種類のチェック、作業内容、不具合、交換部品の表、作業時間、移動時間、次回の推奨、署名 | メーカーからのPDF・紙 |
| 読み取り結果 | 欄(キーと値)、表とセル、質問への答え、署名の位置、各要素の信頼度 | AWS Textract |
| メーカーごとの設定 | 欄の見出しと台帳の項目の対応、質問の文、日付と時刻の書き方 | 自社で用意する設定表 |
| 装置の台帳 | 装置番号、メーカー、型式、製造番号、設置場所、導入日 | 設備保全台帳 |
| 部品表と交換の記録 | メーカーの部品の型番と名称、過去の交換の日付 | 設備保全台帳、メーカーの部品表 |
| 契約台帳 | 装置ごとの保証期間の終わり、定期点検の年間の回数と実施済みの回数、範囲に含まれる部品の区分、消耗品の扱い、時間外・移動の扱い、条項の番号 | 購買部と設備保全課で作る表 |
| 故障の連絡の記録 | 装置が止まった時刻と、メーカーへ連絡した時刻 | 保全管理のシステム |
質を決めるのは、契約台帳です。 英文の契約には「Consumables are excluded from coverage」「Two (2) preventive maintenance visits per year」のように書かれています。これを台帳の列にしておけば、照合はプログラムで行えます。 原本を毎回読ませると、条項の解釈がその都度ぶれます。
故障の連絡の記録は、停止時間のために使います。 報告書の時刻だけでは、エンジニアが到着する前の停止が数えられません。停止の始まりは自社の記録、終わりは報告書の作業終了か、自社の復旧の記録と決めておきます。
データの取得方法を決める
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 欄(キーと値) | KEY_VALUE_SET のブロック(EntityTypes が KEY と VALUE) | 報告書番号、製造番号、作業日、時刻、作業内容 |
| チェック欄 | VALUE に含まれる選択の要素(SelectionStatus) | 作業の種類(PM/Repair/Installation など) |
| 交換部品の表 | TABLE と CELL のブロック | 型番、名称、数量、保証の印 |
| 質問への答え | QUERY と QUERY_RESULT のブロック | 欄の形になっていない箇所(例:What is the machine serial number?) |
| 署名 | SIGNATURE のブロック | 現場の担当者の署名があるか |
| 信頼度 | 各ブロックの Confidence | 低い値を人に回す |
欄はキーと値の組で返ります。 公式のページでは、KEY のブロックは VALUE のブロックとの関係を持ち、それぞれ文字のブロックを子に持つとされ、キーと値には同じ信頼度が付くとされています。「Serial No.」の値が何かは、この関係をたどって取ります。
質問は、欄の見出しがメーカーごとに違う項目に使います。 製造番号が「S/N」「Serial」「Tool ID」とばらばらなら、「What is the machine serial number?」と1つの質問で聞けます。公式のページでは、質問は英語の文書だけで使え、非同期の処理では1ページあたり30件までとされています。質問には別名(Alias)を付けられるので、serial_no のような台帳の項目名を付けておきます。
署名は、位置と信頼度だけが返ります。 公式のページでは、SIGNATURE のブロックは署名の位置の情報を持つとされています。誰の署名かは分かりません。 「署名欄に署名がある」ことを確かめるのに使い、署名が無い報告書は人に回します。
AIへ渡す前に整形する
- 形式の確認 … JPEG、PNG、PDF、TIFF のどれかであることを確かめます。XFA の形式のPDFとパスワード付きのPDFは扱えません
- スキャンの確認 … 紙のスキャンは、文字の高さが15ピクセル(150DPIで8ポイント相当)以上になる解像度で取ります。複写式の紙の2枚目は薄いので、1枚目の控えをもらうか、解像度を上げます
- メーカーの設定の選択 … 保存した場所からメーカーを決め、欄の見出しの対応と質問の文を選びます
- 装置の特定 … 製造番号で装置の台帳を引きます。見つからなければ、型式と設置場所の候補を出して人に回します
- 日付と時刻の読み替え … 月・日の順か日・月の順かを、メーカーの設定で決めます。推し量りません
- 時間の計算 … 開始と終了の時刻から作業時間を、自社の故障の連絡の記録と合わせて停止時間を計算します
- 型番の照合 … 交換部品の型番を部品表と照らします。完全に一致しないものは、近い型番の候補を並べて人に回します
5番目を軽く見ないでください。 欧州のメーカーの報告書は日・月・年、米国のメーカーは月・日・年で書きます。「03/04」を3月4日と読むか4月3日と読むかで、保証期間の中か外かが変わることがあります。
7番目で近い型番に寄せないのは、手配の誤りにつながるからです。 「0190-47321」と「0190-47312」は別の部品です。読み取りの信頼度が低い型番は、原本の画像を見て人が決めます。
AIに処理させる
させるのは、作業の記述を区分することと、契約台帳のどの取り決めに当たりそうかを根拠付きで示すことの2つです。 数と日付は Textract とプログラムが扱います。
| させること | 中身 | できないときの扱い |
|---|---|---|
| 作業の区分 | 作業内容の英文を、作業ごとに preventive(定期点検)/repair(修理)/part_replacement(部品交換)/modification(改造・更新)/other に分ける | 区分に当たらなければ other と原文 |
| 不具合の原因の記載の拾い出し | 原因として書かれた記述(摩耗・操作の誤り・外部の要因など)をそのまま写す | 書かれていなければ空 |
| 当たりそうな取り決め | 作業ごとに、契約台帳の条項の番号の候補と、根拠にした報告書の記述を返す | 当たるものが無ければ none |
| 台帳の作業内容の要約 | 作業内容を、台帳の作業内容の欄に入れる日本語の短い文にする | 原文を残し、要約は人が直す |
2行目が、請求の確認で効きます。 保守契約の多くは、操作の誤りや外部の要因による故障を範囲の外にしています。報告書に「Damage caused by improper handling」と書かれていれば、その作業は有償の候補になります。 AIにはその記述を写させ、範囲の外かどうかは契約台帳と人が決めます。
| させないこと | 理由 |
|---|---|
| 保証の対象か、有償かの決定 | 契約の解釈と請求に応じるかは、設備保全と購買が決める |
| 日付と時刻の読み替え・時間の計算 | 月と日を取り違えると保証期間の判定が変わる。プログラムで行う |
| 型番の補正 | 近い型番は別の部品。原本を人が見る |
| 契約の原本の解釈 | 台帳に無い取り決めは「台帳に無い」として人へ |
| 報告書に無い作業の補完 | 書かれていない作業を、型番や時間から推し量らない |
4行目を外すのは、AIに契約の原本を読ませると、条項の解釈が報告書ごとにぶれるからです。 台帳に無い論点が出たら、それは契約台帳を足す合図です。
指示内容を固定する
あなたは工場の設備保全課で、海外の装置メーカーのフィールドエンジニアが残した
英文のサービス報告書を読み、作業を区分して、保守契約の台帳のどの取り決めに
当たりそうかを示す担当者を手伝います。渡された読み取り結果と契約台帳だけを見てください。
【やること】
1. 作業内容の記述を、作業ごとに分け、work_type を次から選ぶ。
preventive / repair / part_replacement / modification / other
2. 不具合の原因として書かれた記述があれば、cause_text にそのまま写す。
3. 作業ごとに、契約台帳の条項の番号から当たりそうなものを clause_candidates に挙げ、
根拠にした報告書の記述を quote に写す。当たるものが無ければ none とする。
4. 作業内容を、台帳に入れる日本語の短い文にして summary_ja に書く。
【厳守事項】
- 保証の対象か、有償か、請求に応じるべきかを書かないでください。
「保証対象です」「有償です」という言葉を使わないでください。
- 日付・時刻・時間・数量・型番を、書き換えたり計算したりしないでください。
読み取り結果の文字をそのまま使ってください。
- quote と cause_text は、報告書の原文を1字も変えずに写してください。
- 報告書に書かれていない作業や原因を、推し量って補わないでください。
- 契約台帳に無い取り決めを、一般的な保守契約の慣行から補わないでください。
台帳に当たるものが無ければ none とし、note に理由を書いてください。
【メーカーと装置】{maker} {machine}
【読み取り結果(欄・表・質問への答え)】{extracted}
【契約台帳(この装置の行)】{contract_row}
「一般的な保守契約の慣行から補わない」を書くのは、 AIが「消耗品は通常は範囲外です」のように、台帳に無いことを当然のように書き足すからです。この装置の契約で消耗品が範囲内なら、その一言が誤った有償の候補を生みます。
summary_ja は、台帳の読みやすさのためだけに使います。 区分と照合には、英文の原文と work_type を使います。要約の言い回しが判定に入り込まないように、役割を分けます。
出力形式を固定する
AIの出力は、Claude API の構造化出力で形を決めて受けます。 公式のページでは、output_config.format に JSON スキーマを渡すとスキーマに合う JSON が返るとされ、正式提供の機能です。プログラムがこれに日付と時間の計算、契約台帳との照合を足して、台帳への登録の案を作ります。
{
"report_no": "FSR-24-0917",
"machine_id": "CVD-03",
"visit_date": "2026-09-17",
"downtime_hours": 14.5,
"labor_hours": 6.5,
"travel_hours": 2.0,
"signature_found": true,
"works": [
{ "work_type": "part_replacement",
"summary_ja": "真空ポンプの軸受を交換",
"cause_text": "Bearing worn after normal operation",
"clause_candidates": ["5.2"],
"quote": "Replaced vacuum pump bearing",
"parts": [ { "part_no": "0190-47321", "qty": 1,
"part_match": "exact", "min_confidence": 96.1 } ],
"category_candidate": "warranty | contract | chargeable | unknown",
"billing_checks": ["移動時間の請求が契約の上限内か"] }
],
"needs_human": [ { "field": "", "reason": "low_confidence | no_machine | part_mismatch | no_signature" } ]
}
1つ目の理由は、作業ごとに区分の候補を持てることです。 1枚の報告書に定期点検と修理が混ざっていても、作業ごとに category_candidate が付くので、請求書の明細と1行ずつ照らせます。
2つ目は、billing_checks を請求書の到着まで残せることです。 「移動時間の請求が契約の上限内か」「消耗品の請求が別に来ないか」を、作業の時点で書き残します。請求書が届いたとき、購買の担当はこの一覧から見始められます。
category_candidate | 決め方(プログラム) |
|---|---|
| warranty | 作業日が契約台帳の保証期間の終わりより前で、原因の記述が範囲外の型に当たらない |
| contract | 定期点検で、実施済みの回数が年間の回数より少ない。または部品が範囲に含まれる区分 |
| chargeable | 保証期間の外で、範囲に含まれない区分の部品、または範囲外の原因の記述がある |
| unknown | 上のどれにも当たらない、または台帳に当たる行が無い |
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| Amazon S3 | 保存の通知で Lambda を動かす | メーカーと工場をフォルダで決める |
| AWS Textract | StartDocumentAnalysis/GetDocumentAnalysis | 欄・表・質問への答え・署名・信頼度 |
| 設備保全台帳 | 装置と部品の参照、承認後の登録 | 登録は担当者の承認の後 |
| 契約台帳 | 読み取り | 保証期間、点検の回数、部品の範囲 |
| Claude API | API呼び出し(構造化出力) | 作業の区分、取り決めの候補、要約 |
| 購買の担当 | 有償の候補と確認点の一覧を共有フォルダに置き、チャットで知らせる | 請求書の確認に使う |
設備保全台帳への登録は、承認の後だけです。 承認の前に登録すると、読み取りの誤った型番が台帳に残り、次の手配の根拠になります。 承認の画面では、読み取った値と原本の該当箇所を並べて見せます。
Claude を Amazon Bedrock から使う場合は、構造化出力の対応を先に確かめます。 公式のページでは、Bedrock では構造化出力が旧来の Bedrock の連携でだけ使え、Claude in Amazon Bedrock では使えないとされています。
人が確認する
設備保全の担当者が全件を承認します。 見る順を決めておきます。
needs_humanを先に見る … 信頼度の低い欄、装置が特定できないもの、型番が部品表と合わないもの、署名が無いもの- 型番を原本で確かめる … 部品の表の該当セルから原本の画像を開き、型番を1文字ずつ見ます
- 区分の候補を確かめる …
chargeableとunknownは、根拠の記述と契約台帳の条項を読みます - 停止時間を確かめる … 自社の故障の連絡の時刻と、報告書の終了の時刻が合っているかを見ます
- 承認して台帳に登録する … 有償の候補と確認点は、購買の担当に回します
3番目で区分を確定させないでください。 担当者が付けるのは「確認済みの候補」で、請求に応じるかは、請求書が届いたときに購買と決めます。 メーカーと話して保証の扱いが変わることもあるからです。
目標は、80件をならして1件9分です。 定期点検だけの報告書は数分、修理と部品交換が混ざったものは20分ほどかかる想定です。
例外に対処する
| 起きること | 対応 |
|---|---|
| パスワード付き・XFA のPDF | 読めない。メーカーに外して送ってもらう |
| 日本語の報告書が届いた | 読み取りに通さず、人が写すか、別の読み取りのサービスへ |
| 製造番号で装置が見つからない | 型式と設置場所から候補を出して人へ |
| 型番が部品表に無い・信頼度が低い | 近い候補を並べ、原本を見て人が決める |
| 署名が無い | 現場の担当者に作業の確認を取ってから承認 |
| 契約台帳に装置の行が無い | unknown。契約台帳を足す |
| 1つのファイルに複数の報告書 | ページで分けて再投入 |
| JobStatus が FAILED か PARTIAL_SUCCESS | 読めなかったページを人が写す |
上から4行目が、最初の数か月は多く起きます。 手書きの型番は読み取りの信頼度が下がりやすく、ここだけは人の目を残す設計にしておきます。
記録を残す
- 報告書の原本と、受け取りの経路(メール/スキャン)
- Textract が返したブロックの全文と、組み立てた欄と表
- 使ったメーカーの設定と契約台帳の、その日の版
- AIの出力の JSON と、プログラムが付けた区分の候補と確認点
- 担当者が直した箇所 … どの欄の値を、どう直したか
- 請求書が届いたときの購買の判断と、メーカーとのやり取り
最後の行が、契約台帳を育てます。 請求書の段で「この作業は保証の扱いになった」と分かったら、その根拠を契約台帳の条項に書き足します。 担当者の記憶にあった判断が、表に移っていきます。
04実装レベルの3段階
半自動化で、1件30分が18分程度になります。 写しと型番の照合は機械が行いますが、契約に照らした区分が手作業のまま残ります。 本格構成で9分になり、この段階が本記事の想定です。 段階を飛ばさないでください。 半自動化で2か月回すと、メーカーごとの書式の癖と、契約台帳に足りない列が分かります。そこを埋めてから区分の候補を出すほうが、unknown が減ります。
05工数削減シミュレーション
導入後 80件 × 9分 ÷ 60 = 12 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 海外の装置メーカーの製造装置・検査装置を複数台使い、メーカーのフィールドエンジニアによる定期点検と修理が月に数十件ある工場。作業のあとに英文のサービス報告書(手書きの欄を含むPDFや紙)を受け取り、設備保全の担当者が作業内容と交換部品を台帳へ手で写している場合。保守契約の範囲と保証期間を担当者が覚えていて、後で届く請求書が契約どおりかを確かめるのに時間がかかっている場合。
- メーカーのサービスのポータルから作業の記録をデータで取れる場合(読み取りは要らず、データをそのまま台帳に入れれば足ります)。装置が数台で、作業が月に数件の場合。報告書が日本語や中国語で書かれている場合(この構成で使う読み取りのサービスは英語など6言語に対応し、手書きは英語だけです)。なお、作業が保証の対象か、請求に応じるかの判断はこの構成では代替できず、設備保全と購買の担当者が契約を確かめて決めます。
07最小構成で試す方法
- 先月のサービス報告書から15件を選ぶ(うち数件は、手書きの欄が多い紙のスキャンを入れる)
- AWS のコンソールで Textract の文書分析を開き、欄と表の読み取りを試す
- 読み取った欄と部品の表を、当時担当者が台帳に写した内容と並べる
- 手元のAIサービスに、作業内容の英文と契約の要点の表を貼り、作業の区分と当たりそうな条項を出させる
- 出てきた区分を、当時の担当者のメモと突き合わせる
手書きの紙は必ず入れてください。 読み取りの精度より先に、どの解像度でスキャンすれば型番が読めるかが、ここで分かります。
| 出てきた内容 | 判断 |
|---|---|
| 欄と型番が取れ、区分も当時のメモと合った | 照合のプログラムに進む |
| 複写式の2枚目で型番が読めない | スキャンの設定か、1枚目の控えをもらう運用で直る |
| 区分の根拠に台帳に無い一般論を書いた | 指示で直る。契約台帳の列が足りていない合図でもある |
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 「03/04」の月と日を取り違える | メーカーごとの設定で決める。推し量らない |
| 手書きの型番を近い型番に寄せる | 部品表と完全に一致しないものは人へ |
| 複写式の2枚目が薄くて読めない | 1枚目の控えをもらうか、解像度を上げる |
| 「保証対象です」と結論を書く | 結論の言葉を禁じ、区分の候補はプログラムで付ける |
| 台帳に無い一般論で区分の根拠を書く | 補わないと指示し、none を許す |
| 停止時間が作業時間だけになる | 停止の始まりは自社の故障の連絡の記録から取る |
| 製造番号の見出しがメーカーごとに違う | 質問(QUERIES)に別名を付けて1つの項目で取る |
| 署名の有無を誰の署名かと取り違える | 署名の位置だけが返る。誰の署名かは人が見る |
| Bedrock で構造化出力が使えない | Claude API を直接使うか、対応を先に確かめる |
上の2行が、この構成の失敗のほとんどです。 どちらも、読み取りの段の推し量りが、後の判定を静かに変えてしまう失敗です。月と日、型番の1文字は、推し量らずに人に回します。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 装置の型式と製造番号、故障の内容、交換部品、作業の時間、保守契約の取り決め、そして現場の担当者とメーカーのエンジニアの氏名と署名です。
- 装置の不具合の情報を外部に出す範囲を決める … 故障の内容と装置の構成は、生産の秘密に当たることがあります。生成AIに渡すのは作業内容の欄と契約台帳の1行に限り、報告書の全体は渡しません
- 署名の画像を生成AIに渡さない … 署名は Textract で位置を確かめるだけにします
- 受け取りの場所の権限を絞る … S3 のフォルダは、設備保全課と処理のプログラムだけが読めるようにします
- この構成は契約の解釈を代替しません … 保証の対象か、請求に応じるかは、設備保全と購買が契約を確かめて決めます。AIが出すのは、作業の区分と、当たりそうな取り決めの候補までです
- 台帳への登録を自動にしない … 承認の後だけ登録します
- メーカーとの契約で、報告書の扱いを確かめる … 報告書の中にメーカーの技術情報が含まれることがあります。外部のサービスで読み取ることが、秘密保持の取り決めに触れないかを確かめます
誤りが起きた場合のリスクは、読み取りの誤った型番や日付が台帳に残ることと、保証の作業に有償の請求を払ってしまうことの2つです。 前者は推し量りを禁じた前処理と承認で、後者は区分の候補と請求の確認点を作業の時点で残すことで防ぎます。
10まず何から始めるか
1週目:契約台帳を作る
装置ごとに、保証期間の終わり、定期点検の年間の回数、範囲に含まれる部品の区分、消耗品の扱い、時間外と移動の扱い、条項の番号を1行にまとめます。件数の多いメーカー2社の装置から始めます。
2週目:15件で読み取りを試す
手書きの紙を含む15件をコンソールで読み取り、当時台帳に写した内容と並べます。型番と日付が正しく取れるか、どの解像度でスキャンすればよいかを最優先で見ます。
3週目:メーカーごとの設定表を作る
欄の見出しの対応、質問の文と別名、日付の書き方をメーカーごとに決めます。月と日の順は、過去の報告書で必ず確かめます。
4週目:組み立てと時間の計算をつなぐ
保存を起点に読み取り、欄と表を組み立て、時間を計算し、型番を照らすところまで作ります。この時点では区分の候補を出さず、台帳への登録の案だけを見ます。
2か月目: 作業の区分と契約台帳との照合を足し、unknown の件数を毎週数えます。3か月目以降: 購買の担当に有償の候補と確認点を回し始め、1件30分が何分になったかを実測します。請求書の段の判断を契約台帳に書き足す流れが回り始めた時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 対応する形式が JPEG・PNG・PDF・TIFF で XFA の形式のPDFは扱えないこと。同期の処理はPDFが1ページまで、非同期の処理はPDFが500MB・3,000ページまでであること。パスワードで保護されたPDFは扱えないこと。対応言語が英語・フランス語・ドイツ語・イタリア語・ポルトガル語・スペイン語で、手書きは英語だけであること。縦書きに対応しないこと。クエリは英語の文書だけで、非同期で1ページ30件までであること。文字の高さの下限が15ピクセル(150DPIで8ポイント相当)であること | AWS: Set Quotas in Amazon Textract | 2026-10-13 |
| FeatureTypes に TABLES・FORMS・QUERIES・SIGNATURES・LAYOUT があること。SIGNATURE のブロックが署名の位置の情報を持つこと。QUERY と QUERY_RESULT のブロックで質問と答えが返り、答えに信頼度が付くこと。チェック欄などの選択の要素が選択の状態とともに返ること。非同期の処理には StartDocumentAnalysis を使うこと | AWS: AnalyzeDocument | 2026-10-13 |
| 欄が KEY_VALUE_SET のブロック(EntityTypes が KEY と VALUE)で返り、KEY が VALUE との関係と文字のブロックを持つこと。キーと値に同じ信頼度が付くこと。日付は文書に書かれたとおりに返ること | AWS: Form Data (Key-Value Pairs) | 2026-10-13 |
| 質問(Query)が Text・Alias・Pages を持ち、Text と Alias が200文字までであること。Pages を指定しなければ1ページ目だけに適用されること | AWS: Query | 2026-10-13 |
output_config.format に JSON スキーマを渡すとスキーマに合う JSON が返ること。正式提供の機能であること。Amazon Bedrock では旧来の連携でだけ使え、Claude in Amazon Bedrock では使えないこと | Claude Docs: Structured outputs | 2026-10-13 |
作業が保証の対象か、請求に応じるかは、設備保全と購買の担当者が保守契約を確かめて決めてください。 本記事は公開されている製品の仕様で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1416)についてのご相談はこちらから。
