海外から日本へ連れてくる犬・猫の英文の健康証明書と狂犬病の予防接種の証明書を読み取り、マイクロチップ・接種日・抗体検査の日を案件台帳に転記して、輸入の条件に照らした不足を到着前に拾う
海外から日本へ連れてくる犬・猫の英文の証明書と予防接種・抗体検査の書類を読み取り、マイクロチップの番号・接種日・採血日・抗体価を案件台帳に写します。日本の輸入の条件の日数と順序に照らし、不足を到着の前に拾います。
- 生成AI
- ChatGPT/Claude/Gemini
- AIサービス
- AWS Textract/Azure AI/Google Document AI
- 連携・自動化
- Python
- 対象業界
- その他/物流
- 対象部門
- 物流
- 対象業務
- データ入力・転記/内容確認・チェック
- 主な課題
- 入力作業が多い/期限・対応漏れが起きる/確認ミスが多い
- AIで行う処理
- 読み取り(OCR)
- 主な効果
- 入力漏れ削減/工数削減/機会損失防止
- 導入難易度
- ★★★★☆
- 実装レベル
- 半自動化
- 費用感
- API連携(中)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 飼い主または現地の獣医師から、証明書の下書き・予防接種の証明書・抗体検査の結果通知書・マイクロチップの記録のPDFが共有受信箱に届く
- 担当者が書類を開き、マイクロチップの番号と埋め込み日、生年月日を読む
- 予防注射の接種日、有効免疫期間、予防液の種類と製品名を読む
- 抗体検査の採血日、抗体価、検査施設名を読む
- 案件台帳に転記し、カレンダーで日数を数える(1回目の接種の日齢、1回目と2回目の間隔、採血日から到着予定日までの日数、届出の期限)
- 足りない処置や書かれていない欄があれば、飼い主と現地の獣医師にメールで確かめる
- 到着の日の40日前までに届出を出し、出発の前に輸出国の政府機関の裏書きが済んだ証明書を受け取る
- 自動共有受信箱に届いた書類のPDFが、案件番号を付けて受付フォルダ(Amazon S3)に保存される
- 自動保存をきっかけに処理が動き、形式・ページ数・パスワードの有無を確かめ、書類の種類を振り分ける
- 自動OCRが、全文・キーと値・表・質問への答え・署名の位置を、信頼度と手書きか印字かの別を付けて返す
- 自動生成AIが、マイクロチップ・接種・採血・抗体価・検査施設・輸出前検査の各欄を原文のまま取り出す
- 自動プログラムが、案件台帳に値を書き、日付の順序と間隔、書類どうしの食い違い、届出の期限を数えて印を付ける
- 人担当者が、全件の要点を一覧で確かめ、印の付いたものは画像で確かめて飼い主と現地の獣医師に問い合わせる
- 人担当者が、必要に応じて動物検疫所に証明書の内容の事前確認を頼み、届出を出す
各工程の詳しい説明を読む
- 飼い主または現地の獣医師から、証明書の下書き・予防接種の証明書・抗体検査の結果通知書・マイクロチップの記録のPDFが共有受信箱に届く
- 担当者が書類を開き、マイクロチップの番号と埋め込み日、生年月日を読む
- 予防注射の接種日、有効免疫期間、予防液の種類と製品名を読む
- 抗体検査の採血日、抗体価、検査施設名を読む
- 案件台帳に転記し、カレンダーで日数を数える(1回目の接種の日齢、1回目と2回目の間隔、採血日から到着予定日までの日数、届出の期限)
- 足りない処置や書かれていない欄があれば、飼い主と現地の獣医師にメールで確かめる
- 到着の日の40日前までに届出を出し、出発の前に輸出国の政府機関の裏書きが済んだ証明書を受け取る
(a)日付の数え方を担当者が手で確かめている。 1回目の予防注射は「生後91日齢以降(生まれた日を0日目とする)」、2回目は「1回目から30日以上(接種日を0日目とする)」、待機は「採血日を0日目として180日間以上」です。起点を1日目と数えると、1日ずれます。 3名の担当者のうち、どの起点で数えたかを台帳に残している人はいません。
(b)同じ接種が2つの書類で違う。 Form AC の下書きと、現地の病院の予防接種の証明書で、接種日が1日違う、製品名が違う、有効免疫期間が1年と3年で違うことがあります。どちらかの写し間違いですが、目で読んでいると、片方しか見ていない担当者は気づきません。
(c)日付の書き方が国で違う。 04/05/2026 は、米国の獣医師なら4月5日、欧州の獣医師なら5月4日です。180日の待機の数え方は、この1つの日付で結果が変わります。
(d)不足に気づくのが到着の直前。 書類がそろってから数えると、出発の2週間前に採血日の不足が分かることがあります。
- 【自動】 共有受信箱に届いた書類のPDFが、案件番号を付けて受付フォルダ(Amazon S3)に保存される
- 【自動】 保存をきっかけに処理が動き、形式・ページ数・パスワードの有無を確かめ、書類の種類を振り分ける
- 【自動】 OCRが、全文・キーと値・表・質問への答え・署名の位置を、信頼度と手書きか印字かの別を付けて返す
- 【自動】 生成AIが、マイクロチップ・接種・採血・抗体価・検査施設・輸出前検査の各欄を原文のまま取り出す
- 【自動】 プログラムが、案件台帳に値を書き、日付の順序と間隔、書類どうしの食い違い、届出の期限を数えて印を付ける
- 【人】 担当者が、全件の要点を一覧で確かめ、印の付いたものは画像で確かめて飼い主と現地の獣医師に問い合わせる
- 【人】 担当者が、必要に応じて動物検疫所に証明書の内容の事前確認を頼み、届出を出す
6番目で全件を人が見るのは、到着の日に止まると取り返しがつかないからです。 印の付いた案件だけ、画像を開いて詳しく見ます。
5番目の日数の計算をAIにさせないのも意図してのことです。 日付の引き算、起点の扱い、期限の計算は、規則で決まる処理として Python に置きます。 生成AIに日数を数えさせると、もっともらしい数字を返すことがあり、その1日の誤りが、この業務ではいちばん高くつきます。
02今回想定するシステム構成
英文の証明書(Form AC/ATTACH)・予防接種の証明書・抗体検査の結果通知書(PDF) ▼【トリガー】受付フォルダ(Amazon S3)への保存/毎朝8時の期限の確認 AWS Lambda ── 形式・ページ数・パスワードの確認、書類の振り分け ▼ AWS Textract(StartDocumentAnalysis:FORMS/TABLES/QUERIES/SIGNATURES) │ 全文、キーと値、表、質問への答え、署名の位置、信頼度、手書きか印字か ▼ Claude API ── 各欄を原文のまま取り出す │ ① マイクロチップの番号と埋め込み日 ② 生年月日 │ ③ 接種日・有効免疫期間・予防液の種類・製品名・製造会社 │ ④ 採血日・抗体価・検査施設名 ⑤ 輸出前検査の日と結果 ▼ Python ── 台帳に書き、日付の順序と間隔・書類の食い違い・届出の期限を数える ▼ 台帳(ok / sequence_issue / conflict / field_missing / deadline_near / needs_human) ▼ 【担当者が全件を一覧で確認し、印の付いたものを画像で確認】 └──▶ 飼い主・現地の獣医師に確かめ、動物検疫所への届出へ
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | AWS Textract(StartDocumentAnalysis/GetDocumentAnalysis) | Azure AI Document Intelligence、Google Document AI |
| 生成AI | Claude API(証明書の各欄の取り出し) | OpenAI API、Gemini API |
| 差異計算 | Python(日付の順序と間隔、書類どうしの食い違い、届出の期限) | 案件管理システムの計算の機能 |
| 連携 | AWS Lambda(保存と完了の通知を起点に処理を動かす) | Amazon EventBridge |
| 保管 | Amazon S3(書類、読み取り結果、計算の結果) | 社内のファイルサーバー |
案件台帳は、新しく足すものではありません。 最初の準備は、日本の輸入の条件の日数と順序を、プログラムが読める規則の表にすることと、指定検査施設の一覧を表にすることです。どちらも動物検疫所のページに載っている内容で、変わったときに人が直す決まりにします。
OCRに AWS Textract を選ぶのは、証明書が英文だからです。 公式の上限の表で、対応言語は英語、フランス語、ドイツ語、イタリア語、ポルトガル語、スペイン語とされ、手書きは英語のみです。 現地の獣医師が Form AC を手書きで埋めることは珍しくなく、英語の手書きを読めることが効きます。逆に、中国語や韓国語で書かれた予防接種の証明書は読めないので、人が見る一覧に回します。
質問(QUERIES)は英語の文書でしか使えません。 そして質問の対象のページを指定しないと、既定で1ページ目だけに当たります。 公式のページでは、Pages を指定しなければ ["1"] になるとされています。Form AC と ATTACH を1つのPDFにまとめて送ってくる獣医師が多く、2ページ目以降の接種の記録が質問に当たらないことになるので、Pages: ["*"] を指定します。
署名の検出(SIGNATURES)で、政府機関の裏書きの欄が空のまま届いた証明書を拾えます。 署名が本物かどうかは分かりません。
03どうやって実装するのか
処理の起点を決める
起点は、受付フォルダ(Amazon S3)にPDFが保存されたことです。 共有受信箱のルールで、案件ごとに登録した飼い主と現地の獣医師のアドレスから届いたメールの添付を、件名の案件番号を付けてS3へ転送します。保存の通知で AWS Lambda が動き、読み取りから台帳への記録までを済ませます。
書類は少しずつ届くので、届くたびにその案件の全書類で計算をやり直します。 先に届いた書類だけで数えた結果は「途中」と印を付け、確定した結果と混ぜません。
毎朝8時にも1回動かします。 日付が進むことで変わる印があるからです。
| 毎朝見るもの | 印を付ける条件 |
|---|---|
| 届出の期限 | 到着予定日の40日前が、14日以内に来るのに届出が出ていない |
| 待機の不足 | 到着予定日が、採血日を0日目として180日に届かない |
| 有効期間の切れ | 到着予定日が、採血日から2年、または接種の有効免疫期間を過ぎる |
| 輸出前検査 | 出発予定日の10日前を過ぎたのに、検査の記録が届いていない |
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 証明書(Form AC/ATTACH) | 個体の情報(生年月日を含む)、マイクロチップの番号と埋め込み日、接種日・有効免疫期間・予防液の種類・製品名・製造会社、採血日・抗体価・検査施設名、輸出前検査の結果と日、政府機関の裏書き | 受付フォルダ(Amazon S3) |
| 予防接種の証明書 | 現地の病院が出す接種の記録。接種日、製品名、ロット、有効期限、次回の接種日 | 受付フォルダ(Amazon S3) |
| 抗体検査の結果通知書 | 検査施設名、採血日、抗体価(IU/ml)、マイクロチップの番号 | 受付フォルダ(Amazon S3) |
| 読み取り結果 | 全文、キーと値、表、質問への答え、署名の位置、信頼度と手書きか印字かの別 | AWS Textract |
| 規則の表 | 日齢・間隔・待機・有効期間・届出の期限の日数と起点、認められる予防液の種類 | 動物検疫所のページから人が作る表 |
| 指定検査施設の一覧 | 施設名、国、指定の状態 | 動物検疫所のページから人が作る表 |
| 案件台帳 | 案件番号、飼い主、犬か猫か、出発地、出発予定日、到着予定日、到着の空港、届出の状態 | 輸入手続課のスプレッドシート |
質を決めるのは、下から3つ目と2つ目の表です。 規則の表に起点の扱い(その日を0日目とする)を書いておかないと、プログラムも人と同じ取り違えをします。指定検査施設は、指定が取り消された例があります。 一覧には指定の状態と、確かめた日を持たせます。
データの取得方法を決める
読み取りは StartDocumentAnalysis にS3の場所と FeatureTypes を渡して始めます。完了は NotificationChannel に指定した Amazon SNS のトピックに通知され、状態が SUCCEEDED なら GetDocumentAnalysis で結果を取ります。
| 指定するもの | 値 | 理由 |
|---|---|---|
FeatureTypes | FORMS、TABLES、QUERIES、SIGNATURES | 欄のキーと値、接種の記録の表、名前で受け取りたい項目、裏書きの有無 |
QueriesConfig | 質問の文と Alias と Pages: ["*"] の組 | 全ページで、値を項目名で受け取る |
ClientRequestToken | ファイルのハッシュ | 同じ書類で二重に読み取りを始めない |
JobTag | 案件番号と書類の種類 | 完了の通知から案件を引く |
Alias | 質問の文 |
|---|---|
MICROCHIP_NO | What is the microchip number? |
MICROCHIP_DATE | What is the date of microchip implantation? |
VACCINE_DATES | What are the dates of rabies vaccination? |
VACCINE_TYPE | What type of rabies vaccine was used? |
BLOOD_DATE | What is the date of blood sampling? |
TITRE | What is the rabies antibody titre? |
LAB_NAME | What is the name of the laboratory? |
答えが空の項目は、全文から欄の見出しの語を探し、無ければ missing にします。
接種の記録は TABLES の表から行ごとに取ります。 質問の答えは1つの値しか返らないことがあるので、突き合わせに使います。
手書きの欄は TextType が HANDWRITING として返るので、確認の優先度を上げて一覧に出します。規則の表、指定検査施設の一覧、案件台帳は Python が読み、生成AIには渡しません。
AIへ渡す前に整形する
- 形式の確認 … JPEG、PNG、PDF、TIFF であることを確かめます
- パスワードの確認 … PDFはパスワードで保護できないとされています。保護されたものは送り元に解除したものを頼みます
- サイズとページ数の確認 … 非同期の処理で、PDFとTIFFは500MB・3,000ページまでです
- 書類の振り分け … 1ページ目の見出しの語(
Form AC、ATTACH、Vaccination、Rabies Antibody、FAVN、Microchip)で振り分けます - 言語の確認 … 6言語に入らない書類は読み取りに回さず、担当者が目で見る一覧に入れます
- 文字の大きさの確認 … 検出できる文字の高さは15ピクセル以上で、150DPIで8ポイントに当たるとされています。写真で届いたものはスキャンし直してもらいます
- 案件の特定 … 件名の案件番号と、書類のマイクロチップの番号で、案件台帳の行を引きます
7番目で番号を先に引くのは、2頭の案件で書類の個体の取り違えが起きるからです。 番号が台帳に無ければ、案件を決めずに人へ回します。
AIに処理させる
させるのは、各欄を原文のまま取り出し、値が何を表すかを書き出すことです。 日付の計算と条件の照合はさせません。
| 見るもの | 取り出し方 | 判断できないときの扱い |
|---|---|---|
| マイクロチップ | 番号(数字の列)と埋め込み日を原文のまま | 番号の桁が読めなければ unreadable |
| 生年月日 | 原文のまま。年齢だけなら年齢を | 書かれていなければ missing |
| 接種 | 回ごとに、接種日・有効免疫期間・予防液の種類・製品名・製造会社 | 欄が空なら blank |
| 予防液の種類 | 原文の語(inactivated、killed、recombinant、live、RNA など) | 種類の語が無ければ missing |
| 抗体検査 | 採血日、抗体価と単位、検査施設名 | 単位が無ければ unit_unknown |
| 輸出前検査 | 検査日と、所見の原文 | 書かれていなければ missing |
| 裏書き | 署名の有無、政府機関の名称の原文 | 名称が読めなければ unreadable |
日付は、原文と解釈を両方持たせます。 月が英語の名前で書かれているか、書類に日付の書式(DD/MM/YYYY など)が明記されているときだけ解釈を入れ、決まらなければ解釈を空にして ambiguous にします。 案件の出発地から日付の順序を推すことはさせません。米国にいる欧州の獣医師もいるからです。
| させないこと | 理由 |
|---|---|
| 輸入の条件を満たすかの判断 | 家畜防疫官が判断する |
| 日数の計算 | 起点の扱いを含めて Python が数える |
| 日と月の順序の補完 | 推して決めると、待機の日数の判定がずれる |
| Form AC の空欄を、予防接種の証明書の値で埋めること | どちらの書類に書かれた値かが消える |
| マイクロチップの番号の補完 | 桁を足すと、別の個体の番号になる |
4行目がいちばん起きやすい失敗です。 2つの書類を一緒に渡すと、Form AC の空いた欄を病院の証明書の値で埋めて返し、Form AC の書き漏れが消えます。 書類は1通ずつ渡します。
指示内容を固定する
あなたはペットの輸送代行会社で、犬・猫の輸入に使う英文の書類の
記載を記録する担当です。
OCRの読み取り結果だけを使ってください。推測で埋めないでください。
渡すのは1通の書類だけです。他の書類の値で埋めないでください。
【取り出す項目】
document_type、animal(species_raw、name_raw、birth_date_raw、birth_date、age_raw)、
microchip(number_raw、implant_date_raw、implant_date)、
vaccinations(配列:date_raw、date、valid_until_raw、validity_raw、
vaccine_type_raw、product_raw、manufacturer_raw)、
antibody(blood_date_raw、blood_date、titre、titre_unit_raw、lab_name_raw)、
clinical_exam(date_raw、date、finding_raw)、
endorsement(signature_detected、authority_raw)、
handwritten_fields(配列)、date_format_stated(書類に書かれた日付の書式)
【status の選び方】
- ok ............. 値が読み取れており、その欄として解釈できる
- blank .......... 欄はあるが空
- missing ........ 欄そのものが見当たらない
- unreadable ..... 文字は検出されているが値として確定できない
- ambiguous ...... 候補が複数ある、または日付の日と月の順序が決まらない
- unit_unknown ... 抗体価の単位が決まらない
【厳守事項】
- 日付は、月が英語の名前で書かれているか、書類に日付の書式が明記されて
いるときだけ YYYY-MM-DD で解釈を入れてください。決まらなければ解釈を
空にし、ambiguous にしてください。国や地域から推さないでください。
- 日数を数えないでください。条件を満たすかも書かないでください。
- マイクロチップの番号は、読めた数字だけをそのまま入れてください。
桁を補わないでください。
- 予防液の種類は、書かれた語をそのまま写してください。
製品名から種類を推さないでください。
- 抗体価は数値と単位を分けてください。単位を換算しないでください。
- 接種が複数あるときは、書かれた順に配列に入れてください。
- 輸入できるか、係留が要るかを書かないでください。
- 犬・猫の輸入の書類でないと判断した場合は、項目を取り出さず
document_type に種類を書いてください。
【書類の種類の見込み】{document_type_hint}
【読み取り結果】{textract_result}
「国や地域から推さない」を書かないと、米国の案件の 04/05/2026 を4月5日と決めて返します。 獣医師が欧州の書き方なら、待機の日数が1か月ずれます。
出力形式を固定する
Claude API の構造化出力(output_config.format に json_schema を指定)で、書類ごとに次の形のJSONを受け取ります。
{
"file": "",
"document_type": "form_ac",
"microchip": { "number_raw": "392141000123456", "implant_date_raw": "12 Jan 2026", "implant_date": "2026-01-12" },
"vaccinations": [
{ "date_raw": "12 Jan 2026", "date": "2026-01-12", "validity_raw": "1 year",
"vaccine_type_raw": "Inactivated", "product_raw": "", "manufacturer_raw": "" }
],
"antibody": { "blood_date_raw": "03/03/2026", "blood_date": "", "titre": 2.1,
"titre_unit_raw": "IU/ml", "lab_name_raw": "" },
"endorsement": { "signature_detected": false, "authority_raw": "" },
"items": [
{ "item": "antibody.blood_date", "status": "ambiguous", "confidence": 0, "source": "" }
]
}
構造化出力では、数値の最小・最大の制約をスキーマに書けません。 公式のページでは、minimum や maximum といった数値の制約は対象外とされています。抗体価が0.5以上かどうかは、スキーマではなく Python の規則で見ます。
1つ目の理由は、日数の計算をプログラムの側に置けることです。 Python が案件の全書類を集め、規則の表に沿って数えて印を付けます。
| 印 | 付ける条件 |
|---|---|
ok | 規則の表の順序と間隔をすべて満たし、書類どうしの値が合う |
sequence_issue | 埋め込み日が1回目の接種より後、1回目が91日齢に届かない、2回目が1回目から30日に届かない、採血が2回目より前、など |
conflict | Form AC と予防接種の証明書・結果通知書で、日付・製品名・番号が違う |
field_missing | 予防液の種類、検査施設名、裏書きなどが missing か blank |
deadline_near | 届出の期限・待機・有効期間・輸出前検査のどれかが近い |
needs_human | ambiguous、unreadable、unit_unknown がある、検査施設が一覧に無い、6言語でない、など |
2つ目の理由は、起点の扱いを規則に書けることです。 規則の表に「採血日を0日目」のように起点を書き、Python は差の日数をそのまま比べます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 受付フォルダ(Amazon S3) | 保存の通知 | 書類の保存を検知して AWS Lambda を動かす |
| AWS Textract | API呼び出し(非同期) | 読み取りを始め、完了の通知で結果を取る |
| Claude API | API呼び出し | 各欄の取り出し |
| 案件台帳 | 読み取りと書き込み | 案件の行に値を書き、印と計算の結果を付ける |
| 規則の表・指定検査施設の一覧 | 読み取り | 日数と順序、施設の指定の状態を引く |
| 通知 | メール | 毎朝の期限と要確認の一覧を担当者に送る |
動物検疫所への届出と、飼い主・獣医師への連絡は、この構成からは行いません。 届出はNACCSか届出書で担当者が出します。届出の内容は、担当者が確かめた台帳の値から作ります。
人が確認する
担当者は全件を一覧で確かめます。 一覧には、案件ごとに日付の計算の結果、欄の埋まり方、手書きの欄、裏書きの有無を1行で出します。
sequence_issueを最初に片付ける … 処置のやり直しが要るかもしれない案件です。飼い主と現地の獣医師に事実を伝え、動物検疫所への相談を勧めますdeadline_nearを見る … 届出の期限が近い案件は、書類がそろっていなくても届出の準備を先に進めますconflictの正しい値を確かめる … 現地の獣医師にどちらが正しいかを確かめ、Form AC を直してもらいます。証明書の訂正に修正テープや修正液を使わないよう、あわせて伝えますneeds_humanの値を画像で確定させる … 日付の順序、手書きの数字、検査施設名を確かめます
1番目で「やり直しが必要」と断定しないでください。 条件付きで認められる場合もあるとされており、伝えるのは数えた事実までです。
例外に対処する
| 起きること | 対応 |
|---|---|
| パスワードで保護されたPDF | 読めない。送り元に解除したものを頼む |
| 6言語に入らない書類 | 読み取りに回さず、担当者が目で見る |
| 日と月の順序が決まらない | ambiguous。獣医師に書式を確かめ、人が確定する |
| マイクロチップの番号が台帳と合わない | 案件を決めずに人へ。個体の取り違えを疑う |
| 番号の前の桁が、動物検疫所が注意を出している並び | needs_human。動物検疫所の案内を担当者が確かめる |
| 検査施設が一覧に無い、指定の状態が「取消」 | needs_human。到着の空港の動物検疫所への相談を飼い主に勧める |
| 予防液の種類の語が live や RNA | sequence_issue。人が確かめる |
記録を残す
- 元の書類と、受け取った日時、送り元、メールの件名
- AWS Textract が返したJSONの全文と、使った質問の一覧
- Claude API が返したJSON(原文と解釈の両方)
- 日付の計算の結果と、そのとき参照した規則の表と指定検査施設の一覧の版
- 担当者が印を覆した記録と、飼い主・獣医師への問い合わせの回答
- 届出を出した日と、届出受理書を受け取った日
04実装レベルの3段階
本記事の想定は半自動化です。 読み取りと転記と日数の計算が自動になり、担当者は全件を一覧で確かめて印の付いた案件を問い合わせます。1件30分が9分になるのはこの段階です。 本格構成で足すのは、不足を起きる前に防ぐ仕組みです。 到着予定日から逆算した採血の締め切りを Python が出し、現地の獣医師に処置の予定として渡します。
05工数削減シミュレーション
導入後 120件 × 9分 ÷ 60 = 18 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 海外赴任から帰国する家族や、海外から日本へ移り住む人の犬・猫の輸送と輸入の手続きを代行するペットの輸送代行会社・引越し会社・航空貨物の代理店。指定地域以外の国から連れてくる案件が毎月100件前後あり、海外の獣医師が書いた英文の証明書を担当者が目で読んで台帳に写し、接種日や採血日の数え方を担当者が手で確かめている場合。書類の不備に気づくのが到着の直前で、係留が長くなる案件や届出の期限を過ぎる案件が出ている場合。
- 犬・猫の輸入の代行が月に数件で、目で読んでも負担にならない場合。証明書が英語以外(中国語・韓国語・ロシア語など)で届くことが多い場合(この構成のOCRは英語・フランス語・ドイツ語・イタリア語・ポルトガル語・スペイン語しか読めず、手書きは英語のみです)。指定地域(狂犬病の発生のない地域)からの案件が中心で、予防接種と抗体検査の書類が無い場合。なお、輸入の条件を満たすかどうか、係留の期間をどうするかは動物検疫所の家畜防疫官が判断するもので、この構成では代替できません。
07最小構成で試す方法
- 過去半年に到着した案件から30件を選ぶ(日付が
04/05/2026のような書き方のもの、手書きの Form AC、2頭の案件、追加接種のあるものを必ず入れる) - 手元の生成AIの画面に書類を1通ずつ貼り付け、「この書類のマイクロチップの番号と埋め込み日、接種日と有効免疫期間と予防液の種類、採血日と抗体価と検査施設名を、書かれたとおりに表にしてください。空欄は『空欄』、欄が無ければ『欄なし』とし、他の書類から補わないでください。日付の日と月が決まらなければ『不確定』としてください。日数は数えないでください」と指示する
- 出てきた表を、当時の台帳の値と、手で数えた日数と見比べる
30件は必ずやってください。 仕組みを組む前に、日付の扱いと他の書類からの補完を確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 各欄を原文どおりに取り出し、不確定な日付を分けた | OCRのAPIと日付の計算の処理に進む |
| Form AC の空欄を病院の証明書の値で埋めた | 1通ずつ渡し、補完を禁じる。直るまで先に進まない |
| 手書きの日付を読み誤った | 手書きの欄を人に回す。構成は有効 |
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 日数の起点を1日目と数える | 規則の表に「0日目」を明記し、試験の例で確かめる |
| 日と月の順序を出発地から推す | 月の名前か書式の明記があるときだけ確定し、それ以外は人へ |
| Form AC の空欄を病院の証明書で埋める | 書類は1通ずつ渡し、他の書類からの補完を禁じる |
| 2ページ目以降の接種の記録が質問に当たらない | 質問の Pages を ["*"] にする。既定は1ページ目だけ |
| 指定が取り消された検査施設を見逃す | 一覧に指定の状態と確かめた日を持たせ、毎月見直す |
| 条件を満たすかまで判定しようとする | 判断は家畜防疫官のもの。 出すのは事実と日数まで |
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 飼い主の氏名・住所・連絡先、犬・猫の個体の情報、マイクロチップの番号、処置の記録、出発と到着の予定です。個人の情報と、家族の転居の予定が含まれます。
- 外部へ渡す範囲を、読み取りに必要なものに限る … 生成AIに渡すのは書類の読み取り結果だけです。案件台帳、飼い主の連絡先の一覧、他の案件の情報は渡しません
- 判断の言葉を出さない … 一覧に「輸入可」「係留なし見込み」といった語を出しません。日数と欄の事実だけを出します
- 飼い主と獣医師への連絡を自動で送らない … 処置のやり直しに関わる連絡は、担当者が事実を確かめてから送ります
- 元の書類を書き換えない … 輸入検査では原本の証明書が確かめられます。読み取りのために画像を加工しても、元のPDFと原本には手を加えません
誤りが起きた場合のリスクは、日数の不足を見落としたまま到着し、係留が延びることです。 原文を残し、数える規則を1か所に置いて防ぎます。
10まず何から始めるか
1週目:規則の表を作る
動物検疫所の「指定地域以外編」のページから、日齢・間隔・待機・有効期間・届出の期限・輸出前検査の日数と起点を1行ずつ表にします。起点の扱いを、ページの書き方どおりに写します。 あわせて、指定検査施設の一覧を表にします。
2週目:30件で試す
過去半年の案件から30件を選び、手元の生成AIの画面で各欄を表にさせ、日数を表計算で数えます。日付を推さないか、他の書類で埋めないかを最優先で見ます。
3週目:日付の計算を作る
規則の表を読んで日数を数える Python を書き、過去の案件の日付の組を試験の例にして、手で数えた結果と合うかを確かめます。
4週目:受付フォルダから台帳までをつなぐ
S3、Lambda、Textract、Claude API、Python の計算をつなぎ、台帳に値と印を書くところまで作ります。この時点では、北米からの案件だけを対象にします。
2か月目: 対象を全出発地に広げ、毎朝の期限の確認を足します。sequence_issue と conflict の件数を毎週数えます。3か月目以降: 1件30分が何分になったかを実測します。到着の直前に日数の不足が分かる案件が無くなり、どの担当者でも同じ数え方で台帳を読めるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 指定地域以外から犬・猫を輸入するには、マイクロチップ・複数回の予防注射・抗体検査などが記載された輸出国政府機関の証明書が要ること。マイクロチップは1回目の接種の前(同日可)に埋め込み、前6桁が「900202」のものは当面認められないこと。1回目の接種は生後91日齢以降(生まれた日を0日目)、2回目は1回目から30日以上(接種日を0日目)で有効免疫期間内。不活化か組換え型を有効とし、生ワクチンとRNAワクチンは認めないこと。採血は2回目の後(同日可)、指定検査施設で0.5IU/ml以上、有効期間は採血日から2年。採血日を0日目として180日間以上待機。到着の40日前までに届出。出国前10日以内に輸出前検査。証明書の記載事項と Form AC・ATTACH、修正テープ等を使わないこと。不備があると最長180日間の係留または輸入できないこと。輸入検疫証明書は再交付できないこと | 動物検疫所: 犬、猫の日本への入国(指定地域以外編) | 2026-10-15 |
| 輸入検疫の根拠法令と、家畜防疫官が犬・猫と検査証明書を検査すること。ある検査施設の指定が、指定基準に適合しないことが分かったため取り消されたこと | 動物検疫所: 犬、猫を輸入するには | 2026-10-15 |
| 指定地域以外からの手続きの流れ(マイクロチップ、複数回の予防注射、指定の検査機関での抗体価の確認、180日間の待機、40日前までの届出、政府機関の証明書) | 動物検疫所: 診療獣医師の皆様へ | 2026-10-15 |
| 対応する形式がJPEG、PNG、PDF、TIFFであること。非同期はPDFとTIFFで500MB・3,000ページ。PDFはパスワードで保護できないこと。対応言語が英・仏・独・伊・葡・西で、質問の検出は英語の文書だけ、非同期で1ページ30個まで。手書きは英語のみ。検出できる文字の高さが15ピクセル以上(150DPIで8ポイント) | AWS: Set Quotas in Amazon Textract | 2026-10-15 |
StartDocumentAnalysis の FeatureTypes(TABLES/FORMS/QUERIES/SIGNATURES/LAYOUT)、QueriesConfig、ClientRequestToken、JobTag、NotificationChannel で Amazon SNS に完了を通知し、SUCCEEDED を確かめて GetDocumentAnalysis で結果を取ること | AWS: StartDocumentAnalysis | 2026-10-15 |
質問の Pages を指定しないと既定で ["1"] になり、全ページは ["*"] で指定すること | AWS: Query | 2026-10-15 |
ブロックの種類に SIGNATURE(署名の位置と信頼度)と QUERY_RESULT があること。TextType で手書きか印字かが返ること | AWS: Block | 2026-10-15 |
構造化出力を output_config.format に json_schema を指定して受け取れること。minimum・maximum などの数値の制約は対象外であること | Claude Docs: Structured outputs | 2026-10-15 |
輸入の条件の細部は改正されることがあります。実際の案件では、到着する空海港の動物検疫所のページと案内を確かめてください。 本記事は公開資料で確認できた範囲だけを扱っており、条件を満たすかどうかの判断は家畜防疫官が行います。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1594)についてのご相談はこちらから。
