自治体の道路管理の担当に届く道路占用・道路使用の許可申請書を読み取り、場所・期間・占用物件・面積を受付台帳にそろえて、記入漏れと添付図面の不足を拾う
道路占用の許可申請書と添付図面を読み取り、場所・期間・占用物件・面積を受付台帳の行にそろえます。法令の記載事項の漏れ、添付図面の不足、申請書と図面の数値の食い違いを、受け付けた日のうちに担当へ出します。
- 生成AI
- ChatGPT/Claude/Gemini
- AIサービス
- Azure AI/Google Document AI
- 連携・自動化
- Google Apps Script/Python
- 対象業界
- 建設/自治体
- 対象部門
- 総務
- 対象業務
- データ入力・転記/内容確認・チェック
- 主な課題
- 人手が足りない/入力作業が多い/確認ミスが多い
- AIで行う処理
- 読み取り(OCR)
- 主な効果
- 入力漏れ削減/対応スピード向上/工数削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 窓口・郵送・電子申請で申請書と添付図面を受け取る。紙はスキャンして保存する
- 担当が申請書を開き、申請者、目的、場所、期間、占用物件を受付台帳に打ち込む
- 物件の構造の欄と求積図を見て、占用の面積や長さを打ち込む
- 道路法の7つの記載事項が書かれているかを、申請書を見ながら確かめる
- 市の手引きの一覧と見比べ、物件の種類に要る添付図面がそろっているかを確かめる
- 路線の一覧を開き、申請の場所が市道のどの路線かを確かめる
- 不備があれば申請者に電話して補正を頼む。そろったら審査に回す
- 人窓口と郵送で届いた紙をスキャンし、電子申請のPDFと同じ受付フォルダに保存する
- 自動Python のプログラムが受付フォルダを確かめ、新しい申請を1件ずつ取り出す
- 自動Google Document AI の Form Parser が、申請書の欄のキーと値、チェックボックス、表、全文を返す
- 自動Gemini API が、申請書の欄を受付台帳の項目にそろえ、添付のページを図面の種類に分ける
- 自動Python が、7つの記載事項の有無、物件の種類に要る図面の有無、申請書と求積図の面積の食い違い、路線の一覧との照合を規則で拾う
- 自動受付台帳の「受付待ち」のシートに行を書き込み、印と申請書の写しのリンクを付ける
- 人受付の担当が印の付いた申請を開き、申請者に補正を頼む
- 人そろった申請を審査に回す。道路使用の申請書があれば警察署へ送る段取りをとる
各工程の詳しい説明を読む
- 窓口・郵送・電子申請で申請書と添付図面を受け取る。紙はスキャンして保存する
- 担当が申請書を開き、申請者、目的、場所、期間、占用物件を受付台帳に打ち込む
- 物件の構造の欄と求積図を見て、占用の面積や長さを打ち込む
- 道路法の7つの記載事項が書かれているかを、申請書を見ながら確かめる
- 市の手引きの一覧と見比べ、物件の種類に要る添付図面がそろっているかを確かめる
- 路線の一覧を開き、申請の場所が市道のどの路線かを確かめる
- 不備があれば申請者に電話して補正を頼む。そろったら審査に回す
(a)打ち込みに時間を取られる。 1件の申請書に、場所・期間・物件・構造・面積と、写す欄が多くあります。物件が複数ある申請では、物件ごとに数量と面積を写します。 打ち込みの途中で行を飛ばしても、気づくのは審査のときです。
(b)面積が申請書と図面で合わない。 物件の構造の欄に書かれた面積と、求積図の計算の結果が違う申請があります。占用料は面積をもとに計算するので、どちらで台帳に載せるかで額が変わります。 受付の時点で気づかないと、許可の後に直すことになります。
(c)添付図面の不足に気づくのが遅い。 物件の種類ごとに要る図面が違うので、受付の担当がすべてを覚えているわけではありません。断面図が無い、写真が古い、と審査の担当が気づいたときには、受付から数日たっています。 申請者は工事の日程を組んでいるので、補正の連絡が遅れるほど困ります。
(d)道路使用の申請書がそろっているかを見落とす。 工事の仮囲いや足場の申請では、警察署の道路使用の許可が要ることがあります。 道路管理者を経由して出された道路使用の申請書を、占用の書類と一緒に綴じたまま警察署へ送り忘れると、申請者の工事が始められません。
- 【人】 窓口と郵送で届いた紙をスキャンし、電子申請のPDFと同じ受付フォルダに保存する
- 【自動】 Python のプログラムが受付フォルダを確かめ、新しい申請を1件ずつ取り出す
- 【自動】 Google Document AI の Form Parser が、申請書の欄のキーと値、チェックボックス、表、全文を返す
- 【自動】 Gemini API が、申請書の欄を受付台帳の項目にそろえ、添付のページを図面の種類に分ける
- 【自動】 Python が、7つの記載事項の有無、物件の種類に要る図面の有無、申請書と求積図の面積の食い違い、路線の一覧との照合を規則で拾う
- 【自動】 受付台帳の「受付待ち」のシートに行を書き込み、印と申請書の写しのリンクを付ける
- 【人】 受付の担当が印の付いた申請を開き、申請者に補正を頼む
- 【人】 そろった申請を審査に回す。道路使用の申請書があれば警察署へ送る段取りをとる
7番目が、この設計の分かれ目です。 受付の担当が開くのは、印の付いた申請だけです。印の無い申請は、台帳の行を流し見て審査に回します。 そろっていることの確かめは、規則に移します。
審査そのものは変わりません。 審査の担当は、これまでどおり申請書の原本と図面を見て、場所や構造が基準に合うかを判断します。この構成が出すのは、審査に入れる状態かどうかまでです。
02今回想定するシステム構成
道路占用の許可申請書+添付図面(紙・PDF) │ 紙は受付でスキャン ▼【トリガー】受付フォルダへの保存 Python ── 申請ごとに取り出し、形式とページを確認 ▼ Google Document AI(Form Parser) │ 欄のキーと値、チェックボックス、表、全文、信頼度 ▼ Gemini API ── 受付台帳の項目にそろえる/添付のページを図面の種類に分ける ▼ Python ── 記載事項の有無/図面の有無/面積の食い違い/路線の照合 ▼ 受付台帳の「受付待ち」シート(印と申請書の写しのリンク) ▼ 【受付の担当が印の付いた申請を確かめ、申請者に補正を頼む】 ▼ 審査へ(道路使用の申請書は警察署へ)
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | Google Document AI(Form Parser) | Azure AI Document Intelligence |
| 生成AI | Gemini API(申請書の欄の整理と添付ページの分類) | Claude API、OpenAI API |
| 連携 | Python(フォルダの確認、台帳への書き込み) | Google Apps Script |
| 差異計算 | Python(記載事項・図面・面積・路線の照合) | Google Apps Script |
| 保管 | 庁内のファイルサーバー(申請書と読み取り結果) | 文書管理システム |
新しく足すのは、物件の種類ごとの添付図面の一覧を表にすることと、受付台帳の「受付待ち」のシートの2つです。 添付図面の一覧は、市の手引きに書かれているものを、物件の種類を行、図面の種類を列にした表に起こします。
土台は Document AI の Form Parser です。 公式のプロセッサ一覧では、OCRのテキストに加えてキーと値のペア、チェックボックス、表を抽出するとされ、言語の一覧で日本語(ja)は手書きに対応する言語として示されています。申請書の「占用の目的」「占用の期間」は欄として、新規・更新・変更の□はチェックボックスとして読めます。
Form Parser の注意書きのうち、この題材で効くのは空欄の扱いです。 公式のページでは、値が空のキーと値のペアは確実には読み取れないとされています。記載事項の漏れを拾うことが目的の中心なので、「書かれていない」と「読めなかった」を分ける材料を別に持ちます(第7章)。
Gemini API は、構造化出力で受付台帳の形にそろえます。 公式のページでは、Interactions の要求(/v1beta/interactions)で response_format に JSON スキーマを渡す書き方が示されています。処理する場所は、Document AI のリージョンの一覧に日本がありません。 申請者には個人の商店主も含まれるので、市の情報セキュリティポリシーに照らして、国外で処理してよいかを導入前に決めます(第13章)。
03どうやって実装するのか
処理の起点を決める
受付フォルダに申請が保存されたことを起点にします。 Python のプログラムを数分おきに動かし、新しいフォルダを探します。申請1件を1つのフォルダにまとめる決まりにし、申請書と添付図面を同じフォルダに入れます。電子申請のPDFは、受付番号の付いたフォルダごと保存します。
紙の申請は、受付の担当が申請書と図面を一度にスキャンします。 図面を別にスキャンすると、どの申請の図面かが分からなくなります。フォルダの名前に受付日と受付番号を入れます。
処理が終わったフォルダは処理済みに移します。移すのは、受付台帳への書き込みまで終わったときだけにします。受付フォルダに残っている数が、そのまま未処理の数になります。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 申請書と添付図面 | PDF。受付日、経路(窓口・郵送・電子申請) | 受付フォルダ |
| 読み取り結果 | 欄のキーと値、チェックボックス、表、全文、信頼度 | Google Document AI |
| 添付図面の一覧 | 物件の種類ごとに要る図面(位置図、平面図、断面図、求積図、写真など) | 市の手引きを表にしたもの(新しく作る) |
| 路線の一覧 | 市道の路線名、路線番号、区間 | 道路管理課の一覧 |
| 受付台帳 | 申請者ごとの過去の占用(更新の申請の前回の内容) | 受付台帳 |
質を決めるのは、添付図面の一覧です。 これが無いと、図面の不足は「何も添付が無い」ときしか拾えません。物件の種類と図面の対応が表になっていれば、足りない図面の名前まで申請者に伝えられます。
受付台帳の過去の占用は、更新の申請を見るために使います。 前回と場所や面積が変わっていれば、更新ではなく変更の手続きが要るのではないかを担当が確かめる材料になります。
データの取得方法を決める
読み取りは、Python から Form Parser のプロセッサを呼ぶだけです。オンラインの処理は1回の要求で最大15ページなので、申請書と図面を合わせて15ページを超える申請は、公式の上限が100ページのバッチ処理に回します。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 申請書の欄 | 各ページの formFields(fieldName/fieldValue) | 申請者、目的、期間、場所、物件、構造、工事の方法・時期、復旧方法 |
| 区分の印 | fieldValue の valueType(filled_checkbox/unfilled_checkbox) | 新規・更新・変更の別 |
| 物件の表 | 各ページの表 | 物件ごとの数量、寸法、面積 |
| 全文 | 応答の text | 欄として取れなかった値、図面の表題や求積の数字 |
| 信頼度 | 各要素の layout の confidence | 手書きの読めない欄の見分け |
空欄の見分けは、キーと値のペアだけに頼りません。 「道路の復旧方法」という項目名があって値が取れないとき、全文の中で項目名の近くに文字が検出されているかを見ます。何も検出されていなければ空欄、検出されていて信頼度が低ければ読めない欄です。
図面のページは、欄ではなく全文を使います。 図面には「位置図」「平面図」といった表題と、求積の数字が書かれています。表題と数字の位置から、ページの種類と面積を取り出すのが Gemini API の仕事です。
AIへ渡す前に整形する
- 形式の確認 … 申請書と図面がPDFか画像であることを確かめます。複合機の保存はPDFにします
- 解像度の確認 … 図面の細かい数字を読むため、スキャンは300dpiで保存します
- ページの向きの確認 … 横長の図面は向きを直してから送ります
- 大きな図面の確認 … A3を超える図面を縮小してスキャンすると、数字がつぶれます。縮小した図面は読めない欄として扱う前提にします
- 申請書のページの特定 … 1ページ目が申請書でない申請(送り状や委任状が先頭)を見つけます
- 道路使用の申請書の分離 … 道路使用の許可申請書が同じフォルダに入っていれば、別の書類として印を付けます
4番目は、図面の数字を読むときにいちばん効きます。 求積図の数字が読めないと、面積の食い違いを見ることができません。読めないものを無理に読ませず、担当が原本で見る側に回します。
6番目を前処理に入れるのは、警察署へ送る書類を占用の書類と混ぜないためです。 道路法第32条第4項と道路交通法第78条第2項は、それぞれ反対向きの経由の手続きを定めています。どちらの書類がどちらへ行くかを、受付の時点で分けておきます。
AIに処理させる
させるのは、申請書の欄を受付台帳の項目に書かれたとおりに写すことと、添付のページを図面の種類に分けることです。 記載事項の有無、図面の不足、面積の食い違いは、Python の規則で見ます。
| させること | 中身 | 判断できないときの扱い |
|---|---|---|
| 記載事項の写し | 占用の目的、期間、場所、物件の構造、工事実施の方法、工事の時期、道路の復旧方法 | 空欄なら blank、読めなければ unreadable |
| 申請者と区分の写し | 申請者の名称・住所・連絡先、新規・更新・変更 | 区分の印が2つ以上なら multiple |
| 物件の写し | 物件の種類(書かれたとおり)、数量、寸法、面積 | 単位が書かれていなければ no_unit |
| 添付ページの分類 | 位置図・平面図・断面図・求積図・写真・道路使用の申請書・その他 | 分けられなければ unknown |
| 求積図の面積の写し | 求積図に書かれた合計の面積 | 読めなければ unreadable |
4行目が、AIを使う理由です。 図面の表題は「位置図」とは限らず、「案内図」「付近見取図」と書かれていることもあります。呼び方の揺れを図面の種類にそろえるのは、決まった規則では書きにくい作業です。
| させないこと | 理由 |
|---|---|
| 面積の計算 | 寸法から掛け算で埋めると、申請書と図面の食い違いが消える |
| 物件の種類の言い換え | 「足場」を「仮設物」とまとめると、要る図面の判定がずれる |
| 許可の可否・基準への適合の判断 | 審査の担当と決裁者が決める |
| 道路使用の許可の要否の判断 | 担当が確かめ、必要なら警察署と協議する |
| 占用料の計算 | 条例に沿って担当が行う |
1行目がいちばん大事です。 物件の構造の欄に寸法だけが書かれ、面積が書かれていない申請で、AIが寸法から面積を計算して埋めると、「面積が書かれていない」という不備が消えます。 面積は、書かれたとおりに写させます。
指示内容を固定する
あなたは市の道路管理課で、道路占用の許可申請書の読み取り結果を、
受付台帳の項目に写す立場です。OCRが返した結果だけを見て、
書かれていることを写してください。推測で埋めないでください。
【写す項目】
purpose(占用の目的)、period_from/period_to(占用の期間)、
location(占用の場所。路線名・地番を書かれたとおり)、
structure(物件の構造)、work_method(工事実施の方法)、
work_period(工事の時期)、restoration(道路の復旧方法)、
applicant(申請者の名称・住所・連絡先)、application_type(新規・更新・変更)
物件ごと:object_text(物件。書かれたとおり)、quantity、size、area、unit
【添付ページの分類】
各ページを site_map(位置図・案内図・付近見取図)、plan(平面図)、
section(断面図)、area_calc(求積図)、photo(写真)、
road_use_application(道路使用の許可申請書)、other のいずれかにしてください。
【厳守事項】
- 欄が空欄なら status を blank、文字はあるが読めなければ unreadable に
してください。空欄と読めない欄を混ぜないでください。
- 面積を寸法から計算しないでください。面積が書かれていなければ blank です。
- 数字と単位は書かれたとおりに写してください。単位が無ければ no_unit です。
- 物件の名前を言い換えたり、まとめたりしないでください。
- 求積図の合計の面積は、図に書かれた数字をそのまま写してください。
- 許可できるか、基準に合うか、道路使用の許可が要るかは書かないでください。
- 道路占用の許可申請書でない書類が先頭にある場合は、
document_type に種類を書いてください。
【読み取り結果】{ocr_result}
「面積を計算しない」を独立した1行にしているのは、AIがいちばん自然に埋めてしまう値だからです。 寸法が「幅1.5m 長さ20m」と書かれていれば、30㎡と書きたくなります。計算してよいのは、申請者に確かめた担当だけです。
分類の指示に、呼び方の揺れを括弧で並べています。 「案内図」を位置図に入れることを書いておかないと、other に落ちて「位置図が無い」という誤った印が付きます。
出力形式を固定する
次の形のJSONで受け取ります。 Gemini API の Interactions の要求で、response_format に JSON スキーマを渡して形を固定します。
{
"document_type": "road_occupancy_application",
"application_type": "new | renewal | change | multiple",
"fields": [
{ "item": "purpose | period_from | period_to | location | structure | work_method | work_period | restoration | applicant",
"value": "", "status": "read | blank | unreadable" }
],
"objects": [
{ "object_text": "", "quantity": "", "size": "", "area": "", "unit": "",
"status": "read | blank | unreadable | no_unit" }
],
"attachments": [
{ "page": 0, "kind": "site_map | plan | section | area_calc | photo | road_use_application | other | unknown",
"area_total": "" }
]
}
1つ目の理由は、7つの記載事項を同じ形で並べられることです。 道路法第32条第2項の7つを fields の item にそのまま当て、blank と unreadable の数を申請ごとに数えられます。
2つ目は、図面と記載の照合を Python の規則で持てることです。
| 条件 | 扱い |
|---|---|
7つの記載事項のいずれかが blank | missing_item |
物件の種類に要る図面が attachments に無い | missing_drawing |
| 申請書の面積の合計と、求積図の合計が違う | area_mismatch |
| 申請の場所の路線名が路線の一覧に無い | route_unknown |
| 期間の終わりが始まりより前、または読めない | period_error |
| 更新の申請で、前回の場所・面積と違う | changed_on_renewal |
road_use_application のページがある | road_use_attached |
該当の欄が unreadable | check_original |
road_use_attached は、不備の印ではありません。 警察署へ送る書類があることを受付の担当に知らせる印で、送る段取りを忘れないためのものです。 道路使用の申請書が無いのに工事の足場の申請がある、といった組み合わせは、要否の判断に関わるので印を付けず、担当の確かめに任せます。
3つ目は、area_total で図面の数字を記載と並べられることです。 求積図の数字と申請書の数字を同じ行に並べるので、担当は図面を開く前に食い違いの大きさが分かります。
公式のページでは、構造化出力は JSON スキーマの一部に対応し、出力が構文として正しい JSON でも値はアプリケーションの側で確かめるよう書かれています。Python で item と kind が決めた値のどれかであることを確かめ、外れたものは台帳に書かずに呼び直します。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 受付フォルダ | Python で数分おきに確認 | 新しい申請のフォルダを取り出す |
| Google Document AI | API呼び出し | 欄、チェックボックス、表、全文、信頼度 |
| Gemini API | API呼び出し(Interactions) | 台帳の項目への写しと、添付ページの分類 |
| 添付図面の一覧・路線の一覧 | 表の読み取り | 要る図面と路線名を引く |
| 受付台帳 | 「受付待ち」シートへの書き込み | 項目、印、申請書の写しのリンク |
受付台帳の「審査中」以降のシートと、許可書の作成には書き込みません。 受付待ちから審査へ回すのは、受付の担当の操作だけです。読み取りの誤りが、そのまま許可の手続きに流れることはありません。
申請者への補正の連絡も、この構成からは送りません。 足りない図面や記載事項の一覧は受付待ちのシートに出るので、担当はそれを見ながら電話で伝えます。
人が確認する
受付の担当が開くのは、印の付いた申請だけです。 印の無い申請は、台帳の行を流し見て審査に回します。
road_use_attachedを先に見る … 道路使用の申請書を占用の書類から分け、警察署へ送る段取りをとりますmissing_itemとmissing_drawingを見る … 申請書の写しで本当に書かれていないかを確かめ、申請者に補正を頼みますarea_mismatchを見る … 申請書と求積図のどちらが正しいかを申請者に確かめます。どちらかに合わせて台帳を直すのは、確かめた後ですchanged_on_renewalを見る … 更新ではなく変更の手続きが要るかを確かめますroute_unknown・period_error・check_originalを見る … 原本で確かめます
1番目を先にするのは、申請者の工事の日程に直結するためです。 道路使用の許可は警察署が出すので、送るのが1日遅れると、申請者の工事の開始が1日遅れることがあります。
目標は、200件をならして1件4.5分です。 印の無い申請は流し見で1分ほど、印の付いた申請は原本と図面を見て申請者に電話するので、十数分かかります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 申請書と図面が別のフォルダに入る | 受付番号で突き合わせ、合わなければ担当へ |
| 図面が縮小されて数字が読めない | check_original。原本で確かめ、AIに読ませ直さない |
| 図面の表題が無い | unknown。担当がページの種類を決める |
| 物件が多く、表が崩れて返る | 物件の行を全文から写させ、合わなければ担当へ |
| 申請書が市の様式でない | 記載事項がそろっていれば受付可。項目名の違いは分類で吸収する |
| 電子申請のPDFにパスワードがかかっている | 処理せず担当へ。申請者に解除を頼む |
| OCR・AIが応答しない | フォルダを受付フォルダに残す。次の実行で拾い直す |
5行目で市の様式でない申請書も受け付けるのは、道路法が求めているのが記載事項だからです。 項目名が違っても、7つが書かれていれば審査はできます。様式の違いで差し戻さないよう、規則は記載事項の有無で組みます。
記録を残す
- 元の申請書と図面、受付日と経路(窓口・郵送・電子申請)
- OCRが返したJSONの全文と、Gemini API の応答の全文
- 照合に使った添付図面の一覧と路線の一覧の版
- 付いた印と、担当が確かめた結果・申請者とのやり取り・審査へ回した日時
- 道路使用の申請書を警察署へ送った日
- 印の種類ごとの件数と、申請者ごとの補正の回数
3つ目で一覧の版を残すのは、手引きが改められるためです。 添付図面の一覧を変えると、過去の申請の「図面の不足」の意味が変わります。
最後の行は、手引きを見直す材料になります。 同じ図面の不足が多くの申請者で続くなら、手引きの書き方が分かりにくいのかもしれません。
04実装レベルの3段階
最小構成は確かめるための段階です。 1件ずつ貼り付けるので、月200件には使えません。 半自動化で、1件12分が7分程度になります。 打ち込みは無くなりますが、記載事項と図面がそろっているかの確かめは、目で行う作業として残ります。 本格構成で4.5分になり、この段階が本記事の想定です。 差が大きいのは、図面の不足と面積の食い違いの確かめが規則に移るためです。 段階を飛ばさないでください。 半自動化のシートを1か月見ると、どの物件の種類で図面の分類がずれるかが分かります。そこを直してから規則を足すほうが、印の空振りが減ります。
05工数削減シミュレーション
導入後 200件 × 4.5分 ÷ 60 = 15 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 市町村や都道府県の土木事務所で、道路占用の許可申請書が窓口・郵送・電子申請で毎月百件以上届き、受付の担当が記載事項と添付図面を目で確かめてから受付台帳に打ち込んでいる場合。工事に伴う仮囲いや足場、看板、電柱、水道・ガス管など、占用物件の種類が多く、申請書の書き方が申請者ごとにばらばらな場合。記入漏れや図面の不足に気づくのが、審査の途中になることがある場合。
- 申請の大半がすでに電子申請の入力画面で受け付けられ、記載事項が項目として入ってくる場合。申請が月に数十件で、受付の担当が目で見て足りる場合。申請書を国外のリージョンで処理することを、自治体の情報セキュリティポリシーで認められない場合。なお、許可するかどうか、占用料の額、警察署との協議の要否の判断は、この構成では代替できません。
07最小構成で試す方法
- 先月の申請から20件を選ぶ(補正を頼んだ申請、物件の多い新規の申請、手書きの申請を必ず入れる)
- その20件について、当時の受付台帳の行と、補正の記録を用意する
- 申請書と図面のPDFを、市の決まりで認められた環境のAIサービスの画面に1件ずつ貼り付ける
- 「この道路占用の許可申請書について、占用の目的・期間・場所・物件の構造・工事実施の方法・工事の時期・道路の復旧方法が書かれているかを、項目ごとに書かれたとおりに写してください。空欄と読めない欄を分けてください。面積を計算しないでください。添付のページを位置図・平面図・断面図・求積図・写真に分けてください」と指示する
- 写された値を当時の台帳と補正の記録と比べる
| 出てきた内容 | 判断 |
|---|---|
| 当時の補正と同じ記載漏れ・図面の不足が見つかった | OCRとプログラムの連携に進む |
| 寸法から面積を計算して埋めた | 指示の書き方で直る。構成は有効 |
| 図面の種類の分け方がずれる | 呼び方の揺れを指示に足す |
| 図面の数字が読めない | スキャンの設定が先。 300dpiで取り直す |
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 寸法から面積をAIが計算して埋める | 計算しないことを独立した1行で指示する |
図面の呼び方の揺れで other に落ちる | 「案内図」「付近見取図」などを指示に並べる |
| 空欄と読めない欄が混ざる | 値が空のキーと値は確実に読めない。全文と信頼度で分ける |
| 縮小した図面の数字が読めない | 原本で確かめる側に回す |
| 物件の名前をまとめて、要る図面がずれる | 物件は書かれたとおりに写させる |
| 道路使用の申請書を送り忘れる | road_use_attached を先に見る |
| 市の様式でない申請書を差し戻す | 記載事項の有無で規則を組む |
| 図面の一覧が手引きと食い違う | 手引きを改めたら一覧も同じ日に改める |
| 国外での処理を確かめていない | 日本のリージョンが無い。ポリシーの手続きを先に |
上の2行が、この構成の失敗のほとんどです。 どちらも、AIが気を利かせて埋めたり言い換えたりすることで、不備が見えなくなる型の失敗です。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 申請者の名称・住所・連絡先、占用の場所と期間、物件の構造と面積、現況の写真です。申請者には事業者のほか、個人の商店主も含まれます。
- 国外で処理することをポリシーに照らして決める … Document AI のリージョンの一覧に日本はありません。申請書を国外のリージョンで処理してよいかを、市の情報セキュリティポリシーと個人情報の取扱いの決まりで確かめます。認められない場合は、日本のリージョンで処理できる製品を検討します
- 外部へ渡す範囲を絞る … AIに渡すのは申請書と図面の読み取り結果だけです。受付台帳や過去の申請の一覧はAIに渡さず、照合は庁内の Python で行います
- 審査と許可を自動で行わない … この構成が出すのは、書類がそろっているかどうかまでです。許可の可否、占用料、警察署との協議は、担当と決裁者が行います
- 補正の連絡を自動で送らない … 申請者への連絡は担当が行います
- 元の申請書を残す … 審査の拠り所は申請書の原本と図面です。AIの写しは原本の代わりにしません
誤りが起きた場合のリスクは、不備のある申請を審査に回すことと、不備の無い申請に補正を頼むことの2つです。 前者は空欄をAIが埋めると起き、後者は図面の分類がずれると起きます。どちらも、埋めさせないことと、呼び方の揺れを指示に書くことで設計の側から防ぎます。
10まず何から始めるか
1週目:添付図面の一覧を表にする
市の手引きから、物件の種類ごとに要る図面を表に起こします。あわせて、路線の一覧が最新かを確かめます。
2週目:情報セキュリティポリシーの手続きを始める
申請書を外部のサービスで、国外のリージョンで処理してよいかを、情報政策の担当と確かめます。 試す段階でも、認められた環境だけで扱います。
3週目:20件で試す
先月の申請から20件を選び、認められた環境のAIサービスで記載事項と図面の分類を写させます。面積を計算していないか、図面の分類がずれていないかを最優先で見ます。
4週目:フォルダから受付待ちのシートまでをつなぐ
Python で受付フォルダを確かめ、OCRを呼び、写した値を受付待ちのシートに書き出すところまで作ります。この時点では印を出さず、担当がこれまでどおり確かめながら、シートの値が合っているかを見ます。
2か月目: 記載事項・図面・面積・路線の規則を足し、印の付いた申請だけを見る運用を始めます。3か月目以降: 1件12分が何分になったかを実測します。補正の連絡が受付の日のうちに出せるようになり、道路使用の申請書の送り忘れが無くなった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 道路の占用の許可の申請書に、占用の目的、期間、場所、工作物・物件・施設の構造、工事実施の方法、工事の時期、道路の復旧方法を記載すること(第32条第2項)。道路交通法第77条第1項の適用を受ける行為の場合、申請書の提出を警察署長を経由して行えること(同条第4項) | e-Gov 法令API: 道路法 | 2026-10-08 |
| 道路において工事・作業をしようとする者などが所轄警察署長の許可を受けること(第77条第1項)。その許可に係る行為が道路法第32条第1項または第3項の適用を受けるものであるときは、申請書の提出を道路の管理者を経由して行えること(第78条第2項) | e-Gov 法令API: 道路交通法 | 2026-10-08 |
Form Parser がOCRのテキストに加えてキーと値のペア、チェックボックス、表を抽出すること。言語の一覧で日本語(ja)が手書きに対応する言語として示されていること。オンラインの処理が1回の要求で最大15ページ、バッチ処理が最大100ページであること | Google Cloud: Processor list | 2026-10-08 |
| 値の入っていないキーと値の組を確実には読み取れないこと | Google Cloud: Form Parser | 2026-10-08 |
項目名と値の組が formFields の fieldName/fieldValue で返ること。チェックボックスの valueType が filled_checkbox/unfilled_checkbox であること。信頼度が各要素の layout に入ること | Google Cloud: Handle the processing response | 2026-10-08 |
マルチリージョンが us と eu で、日本のリージョンが一覧に無いこと | Google Cloud: Regional and multi-regional support | 2026-10-08 |
Interactions の要求(/v1beta/interactions)で response_format に JSON スキーマを渡して構造化出力を得ること。JSON スキーマの一部に対応すること。構文として正しい JSON でも値はアプリケーションの側で確かめるべきこと | Gemini API: Structured output | 2026-10-08 |
許可の可否、占用料の額、警察署との協議の要否、申請書を外部のサービスで処理してよいかは、道路法・道路交通法・市の条例と情報セキュリティポリシーに沿って、道路管理課と関係部署が決めてください。 本記事は法令と各製品の公式ページで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1054)についてのご相談はこちらから。
