船舶管理会社が、外国人船員の英文の資格証明書(STCW の海技資格・健康証明書)を読み取り、種類・有効期限・職務の範囲を乗組員台帳に転記して、乗船予定に対する期限切れと資格不足を拾う
配乗会社から届く外国人船員の英文の資格証明書の一式を読み取り、証明書の種類・職務の範囲・有効期限を乗組員台帳への転記の案にします。乗船予定の船と職務に必要な資格の表と、乗船の予定期間に照らして、期限切れと資格不足を乗船の前に拾います。
- 生成AI
- ChatGPT/Claude/Gemini
- AIサービス
- AWS Textract/Azure AI/Google Document AI
- 連携・自動化
- Python
- 対象業界
- その他/物流
- 対象部門
- 人事
- 対象業務
- データ入力・転記/内容確認・チェック
- 主な課題
- 入力作業が多い/期限・対応漏れが起きる/確認ミスが多い
- AIで行う処理
- 読み取り(OCR)
- 主な効果
- 入力漏れ削減/工数削減/機会損失防止
- 導入難易度
- ★★★☆☆
- 実装レベル
- 半自動化
- 費用感
- API連携(中)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 配乗会社から届いた資格証明書の一式のPDFを、船員ごとのフォルダに保存する
- 一式を1ページずつめくり、証明書の種類を見分ける
- 証明書の番号・発行国・職務の範囲・有効期限を乗組員台帳に写す
- 職務ごとの必要な資格の表と見比べ、足りない証明書を探す
- 乗船の予定期間と有効期限を見比べ、期間中に切れるものを探す
- 足りないもの・切れるものを配乗会社に英文のメールで知らせ、差し替えや更新を頼む
- 人配乗の担当者が、届いた一式のPDFを船員ごとの受け取りの場所(Amazon S3)に保存する
- 自動保存をきっかけに、AWS Textract が全ページの問い合わせと行の読み取りを非同期で始める
- 自動Claude API が、ページごとに証明書の種類を決め、職務の範囲と制限の英文を項目に分ける
- 自動プログラムが、日付を発行国ごとの設定で読み、乗組員台帳への転記の案を作る
- 自動プログラムが、乗船予定の船の種類と職務に必要な資格の表と照らし、足りないものを拾う
- 自動プログラムが、有効期限を乗船の予定期間の終わりと照らし、期間中に切れるものを拾う
- 自動足りないもの・切れるものについて、Claude API が配乗会社への依頼の英文の下書きを作る
- 人配乗の担当者が、転記の案と拾われた事項を原本と見比べ、台帳に登録し、依頼を送る
各工程の詳しい説明を読む
- 配乗会社から届いた資格証明書の一式のPDFを、船員ごとのフォルダに保存する
- 一式を1ページずつめくり、証明書の種類を見分ける
- 証明書の番号・発行国・職務の範囲・有効期限を乗組員台帳に写す
- 職務ごとの必要な資格の表と見比べ、足りない証明書を探す
- 乗船の予定期間と有効期限を見比べ、期間中に切れるものを探す
- 足りないもの・切れるものを配乗会社に英文のメールで知らせ、差し替えや更新を頼む
(a)証明書の種類を見分けるのに時間がかかる。 発行国ごとに様式が違い、題名だけでは基本訓練の修了証か、その更新の修了証かが分からないことがあります。一式の順番も配乗会社ごとにばらばらです。
(b)期限の日付の書き方がそろわない。 「05/06/2027」が5月6日か6月5日かは発行国で変わります。期限を1か月取り違えると、乗船の期間中に切れることを見落とします。
(c)職務の範囲と制限を読み飛ばす。 海技資格の証明書には、どの職務で、どの大きさの船で使えるか、制限があるかが英文で書かれています。「Limitations: None」のときもあれば、細かい制限が書かれていることもあります。
(d)期間中に切れることに乗船後に気づく。 乗船の日に有効なことだけを見て台帳に入れると、寄港地で健康診断や更新の手配をすることになり、費用も手間もかかります。
- 【人】 配乗の担当者が、届いた一式のPDFを船員ごとの受け取りの場所(Amazon S3)に保存する
- 【自動】 保存をきっかけに、AWS Textract が全ページの問い合わせと行の読み取りを非同期で始める
- 【自動】 Claude API が、ページごとに証明書の種類を決め、職務の範囲と制限の英文を項目に分ける
- 【自動】 プログラムが、日付を発行国ごとの設定で読み、乗組員台帳への転記の案を作る
- 【自動】 プログラムが、乗船予定の船の種類と職務に必要な資格の表と照らし、足りないものを拾う
- 【自動】 プログラムが、有効期限を乗船の予定期間の終わりと照らし、期間中に切れるものを拾う
- 【自動】 足りないもの・切れるものについて、Claude API が配乗会社への依頼の英文の下書きを作る
- 【人】 配乗の担当者が、転記の案と拾われた事項を原本と見比べ、台帳に登録し、依頼を送る
3番目を「種類の判別」に留めるのが、この設計の分かれ目です。 証明書の題名や本文の言い回しは発行国で違い、規則で見分け切れません。ただし、必要な資格が足りているか、期限が足りるかは、プログラムが表と日付で決めます。 AIに「乗船できます」とは言わせません。
6番目で期限を「乗船の予定期間の終わり」と照らすのは、乗船の日だけを見ると期間中の期限切れを拾えないからです。 予定期間には、交代の遅れを見込んだ余裕の日数を足します。
02今回想定するシステム構成
資格証明書の一式(英文のPDF。配乗会社からメールで届く) │ 配乗の担当者が船員ごとの場所へ保存 ▼【トリガー】Amazon S3 への保存 AWS Lambda ── StartDocumentAnalysis(FeatureTypes:QUERIES、FORMS。問い合わせは全ページ) ▼ AWS Textract(非同期の文書分析)── 完了の通知(Amazon SNS) ▼ AWS Lambda ── GetDocumentAnalysis ├──▶ Claude API:ページごとの証明書の種類、職務の範囲と制限 ├──▶ Python:日付の読み方、台帳の転記の案 ├──▶ Python:必要な資格の表と乗船の予定期間との照合 └──▶ Claude API:配乗会社への依頼の英文の下書き ▼ 転記の案と確認事項の一覧(配乗の担当者が確認・登録) ▼ 乗組員台帳/配乗会社への依頼(担当者が送る)
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | AWS Textract(StartDocumentAnalysis/GetDocumentAnalysis。QUERIES・FORMS) | Azure AI Document Intelligence、Google Document AI |
| 生成AI | Claude API(証明書の種類の判別、職務の範囲と制限の項目化、依頼の英文の下書き) | OpenAI API、Gemini API |
| 差異計算 | Python(日付の読み方、必要な資格の表と予定期間との照合) | 船員の管理の仕組みの期限の通知の機能 |
| 連携 | AWS Lambda(保存と完了の通知を起点に処理を動かす) | AWS Step Functions |
| 保管 | Amazon S3(証明書の原本、読み取り結果、確認の記録) | 社内のファイルサーバー |
土台は、AWS Textract の問い合わせの機能です。 証明書は発行国ごとに様式が違い、項目の位置がばらばらです。「What is the date of expiry?」のように英語で問いかけ、答えを受け取る形なら、様式ごとの位置の設定が要りません。 一式が10〜20ページあるので、非同期の StartDocumentAnalysis を使います。
Textract を選べるのは、証明書が英文だからです。 公式の対応言語は英語・フランス語・ドイツ語・イタリア語・ポルトガル語・スペイン語で、問い合わせは英語の文書でだけ使えます。発行国の言葉だけで書かれ、英語の併記が無い証明書は人が読みます。
乗組員台帳には書き込みません。 転記の案は担当者が確かめてから登録します。
03どうやって実装するのか
処理の起点を決める
船員ごとの受け取りの場所(S3 のフォルダ)にPDFが保存されたことを起点にします。 フォルダは crew/<船員番号>/<乗船予定の番号>/ の形にし、どの船員の、どの乗船予定の一式かを、保存した場所で決めます。 証明書の氏名から船員を探すと、同姓同名や名前の綴りの違いで取り違えます。
読み取りを始めるとき、ClientRequestToken に「船員番号+乗船予定の番号+受領日」を入れます。 公式のページでは、同じトークンで StartDocumentAnalysis を呼ぶと同じ JobId が返り、同じジョブを誤って二度始めるのを防げるとされています。
完了は Amazon SNS の通知で受け、JobTag に入れた乗船予定の番号でどの予定かを知ります。 JobId は7日間だけ有効なので、結果は受け取ったその場で S3 に保存します。
期限の確認は、届いた一式とは別に、毎週月曜に乗船中の全員について台帳で行います。 乗船中に延長が決まった船員は、最初の予定期間では足りていた証明書が、延長後の期間では切れることがあります。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 資格証明書の一式 | 証明書の種類と題名、番号、氏名、生年月日、発行国、発行日、有効期限、職務の範囲(Capacity)、制限(Limitations)、条約の規則の番号、健康証明書の適否と制限 | 配乗会社から届くPDF |
| 読み取り結果 | 問い合わせの答えと信頼度、キーと値の組、行と単語 | AWS Textract |
| 乗船の予定 | 船員番号、乗船予定の船、職務、乗船予定日、予定期間(月数) | 船員の管理の仕組み |
| 必要な資格の表 | 船の種類(ばら積み船・油タンカー・ケミカルタンカーなど)と職務ごとに必要な証明書の種類と、旗国ごとの追加の要件 | 船員部が旗国の要件と自社の手順から作る表 |
| 発行国ごとの設定 | 日付の順(日月年か月日年か)、証明書の題名の言い換え | 自社で用意する設定表 |
質を決めるのは、必要な資格の表です。 表が「職員:海技資格」のように粗いと、タンカーの訓練の修了証の不足を拾えません。船の種類と職務の組み合わせごとに、証明書の種類を1つずつ並べます。 表を作るのは船員部の責任者で、旗国の要件が変わったら直します。
健康証明書の有効期限の上限は、表に持たせます。 ILO の海上労働条約の問答では、健康証明書の有効期間は最長2年(18歳未満は1年)、色覚の証明は最長6年とされ、これは上限で、国はもっと短い期間を定めうるとされています。旗国ごとの上限を表に書き、証明書に書かれた有効期限と照らします。
職務の言い換えの表も用意します。 証明書に書かれる職務の言葉(「Officer in charge of a navigational watch」「Chief mate」など)と、自社の配乗の予定の職務(二等航海士、一等航海士など)の対応を1行ずつ持ちます。対応を決めるのは船員部の責任者で、AIには決めさせません。
データの取得方法を決める
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 証明書の題名と本文 | 各ページの LINE のブロック | 生成AIによる種類の判別 |
| 番号・氏名・生年月日・発行国 | QUERIES の QUERY_RESULT、キーと値の組 | 台帳との照合 |
| 発行日・有効期限 | QUERIES の QUERY_RESULT | 予定期間との照合 |
| 職務の範囲と制限 | QUERIES の QUERY_RESULT と、そのページの LINE のブロック | 職務との照合 |
| 健康証明書の適否と制限 | QUERIES の QUERY_RESULT | 配乗の担当者の確認 |
問い合わせは、全ページに当てるよう指定します。 公式のページでは、問い合わせの対象のページを指定しないと、既定で1ページ目だけに当てられるとされています。**Pages に ["*"] を入れて全ページに当てます。** これを忘れると、一式の1ページ目の証明書しか読めません。
| 問い合わせ(Text) | Alias |
|---|---|
| What is the certificate number? | CERT_NO |
| What is the name of the holder? | HOLDER_NAME |
| What is the date of birth of the holder? | DOB |
| Which country or administration issued this certificate? | ISSUER |
| What is the date of issue? | ISSUE_DATE |
| What is the date of expiry? | EXPIRY |
| In what capacity may the holder serve? | CAPACITY |
| What limitations apply? | LIMITATIONS |
| Is the seafarer fit for duty? | FIT_FOR_DUTY |
公式のページでは、非同期の問い合わせは1ページあたり30件までとされています。9件なら余裕があります。
職務の範囲と制限は、問い合わせの答えだけに頼りません。 表の形で複数の職務と制限が並ぶ証明書があり、答えが1行だけになることがあります。答えの位置のページの LINE のブロックから、職務と制限の表の行を全部取ります。
AIへ渡す前に整形する
- 形式の確認 … JPEG、PNG、PDF、TIFF のどれかであることを確かめます。パスワードで保護されたPDFは扱えないとされています
- ページの区切り … 1ページに1つの証明書を前提にし、2ページにまたがる証明書は生成AIの判別で「前のページの続き」として扱います
- 日付の読み方 … 月の名前で書かれたものはそのまま読み、数字だけの日付は発行国ごとの設定で読みます。設定の無い発行国で日が12以下のものは人に回します
- 氏名の照らし … 姓と名の順、ミドルネームの有無、綴りの違いを整え、台帳の氏名と照らします。合わないものは別人の証明書の混入の疑いとして出します
- 生年月日の照らし … 証明書の生年月日と台帳の生年月日を照らします
3番目を軽く見ないでください。 期限の月と日を取り違えると、予定期間との照合そのものが誤ります。 日が12以下の数字だけの日付は、どちらの順でも日付として成り立つので、機械では決められません。
AIに処理させる
させるのは、ページごとの証明書の種類の判別と、職務の範囲と制限の項目化だけです。 項目の読み取りは Textract、日付と照合はプログラムが行います。
| させること | 中身 | できないときの扱い |
|---|---|---|
| 証明書の種類の判別 | ページの題名と本文から、種類の一覧(海技資格・旗国の承認の裏書・基本訓練・上級消火・医療の応急手当・船の種類ごとの訓練・健康証明書・その他)のどれかを付け、根拠の文を写す | 決められなければ unknown |
| 職務の範囲と制限の項目化 | 職務の範囲の文と制限の文を、職務・船の大きさや機関の出力の条件・制限の有無に分ける | 書かれていなければ空 |
| 依頼の下書き | 足りないもの・切れるものごとに、配乗会社に送る英文のメール | 理由ごとの定型の文に限る |
種類の判別は、必要な資格の表との照合の前提です。 判別を誤ると、足りている資格を「足りない」と出し、足りない資格を「ある」と扱います。unknown と信頼度の低いものは、必ず人が原本で見ます。
| させないこと | 理由 |
|---|---|
| 乗船させてよいかの結論 | 配乗の責任者が旗国の要件と自社の手順で決める |
| 期限の計算と予定期間との照合 | プログラムが日付で決める |
| 職務の範囲を広げて読む | 「Officer in charge of a navigational watch」を上の職務に読み広げない |
| 証明書が本物かの判断 | 発行国の照会の手段で確かめる |
| 健康の状態の推し量り | 健康証明書の適否と制限の欄を写すだけ |
3行目がいちばん起きやすい失敗です。 証明書に書かれた職務より上の職務での乗船を予定していても、AIは「航海士の資格がある」と読みがちです。指示で「書かれた職務の言葉のまま返し、上の職務に当てはめない」と縛ります。
指示内容を固定する
あなたは船舶管理会社の船員部で、外国人船員の資格証明書を確かめる担当者を手伝います。
渡された「ページごとの文」と「証明書の種類の一覧」だけを見てください。
【やること】
- ページごとに、cert_type を種類の一覧から1つ選んでください。
前のページの証明書の続きなら continuation、どれにも当たらなければ unknown です。
- 判断に使った題名や本文の文を evidence にそのまま写してください。
- 海技資格の証明書と旗国の承認の裏書のページでは、
職務の範囲(capacity)と制限(limitations)の文を、行ごとにそのまま写してください。
- 訓練の修了証のページでは、条約の規則や基準の番号が書かれていれば、そのまま写してください。
【厳守事項】
- 書かれた職務の言葉のまま返してください。上の職務や別の職務に読み替えないでください。
- 制限が書かれていないときは空にしてください。「None」と書かれていれば None と写してください。
- 日付を計算しないでください。有効期限の判断をしないでください。
- 乗船させてよいか、資格が足りるかを書かないでください。
- 健康証明書のページでは、適否と制限の欄の文だけを写し、病名や検査の結果は写さないでください。
- 迷ったときは unknown を選んでください。
「病名や検査の結果を写さない」を明記するのは、健康証明書が健康の情報を含むからです。 台帳に要るのは、適否・制限・有効期限だけです。必要の無い健康の情報を出力に残さないことで、保存する場所も広げずに済みます。
依頼の下書きの指示は短くします。「理由(missing_cert/expires_during_contract/name_mismatch/unreadable)ごとに、船員の氏名・乗船予定の船・職務・証明書の種類と期限を渡された値のまま書き、差し替えか更新した証明書の送付をお願いする形にする。乗船の可否に触れない」とします。
出力形式を固定する
転記の案と照合の結果は、プログラムがJSONで出します。 ページごとの判別は Claude API の構造化出力で受けます。公式のページでは、output_config.format に JSON スキーマを渡すと、スキーマに合う JSON が返るとされ、正式提供の機能です。
{
"crew_no": "C-20451",
"assignment": { "vessel": "MV EXAMPLE", "vessel_type": "oil_tanker", "rank": "2nd Officer",
"sign_on": "2026-11-10", "contract_end_with_margin": "2027-09-10" },
"certificates": [
{ "page": 1, "cert_type": "coc", "cert_no": "", "issuer": "",
"expiry": "2029-03-14", "capacity": ["Officer in charge of a navigational watch"],
"limitations": "None", "evidence": "" },
{ "page": 9, "cert_type": "medical", "expiry": "2027-05-02", "fit_for_duty": "fit" }
],
"missing": [ "oil_tanker_basic_training" ],
"expires_during_contract": [ { "cert_type": "medical", "expiry": "2027-05-02" } ],
"name_check": "matched",
"actions": [ "missing_cert", "expires_during_contract" ],
"min_confidence": 94.8
}
1つ目の理由は、照合の結果を種類ごとに持てることです。 どの種類が足りないか、どの種類が期間中に切れるかが分かれて出るので、配乗会社への依頼を種類ごとに書けます。
2つ目は、capacity を職務の言葉のまま残せることです。 予定の職務と照らすのはプログラムで、職務の言い換えの表を船員部が持ち、照らした結果を actions に出します。
actions | 決め方(プログラム) |
|---|---|
| missing_cert | 必要な資格の表の種類が一式に無い |
| expires_during_contract | 有効期限が予定期間の終わり(余裕込み)より前 |
| expired | 有効期限が乗船予定日より前 |
| capacity_check | capacity が予定の職務の言い換えの表に当たらない |
| name_mismatch | 氏名か生年月日が台帳と合わない |
| unreadable | unknown のページがある、または日付を人に回した |
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| Amazon S3 | 保存の通知で Lambda を動かす | 船員と乗船予定をフォルダで決める |
| AWS Textract | StartDocumentAnalysis/GetDocumentAnalysis | 問い合わせの答え・キーと値の組・行・信頼度 |
| Amazon SNS | 完了の通知 | JobTag で乗船予定を知る |
| 船員の管理の仕組み | 乗船の予定と台帳を書き出して読む | 読み取りだけ |
| Claude API | API呼び出し(構造化出力) | 種類の判別、職務と制限の項目化、依頼の下書き |
| 配乗の担当者 | 転記の案と確認事項を共有の場所に置き、チャットで知らせる | 確認、台帳への登録、依頼の送信 |
乗組員台帳には書き込みません。 読み取りの誤りで有効期限が延びたまま登録されると、毎週の期限の確認でも気づけなくなります。
人が確認する
配乗の担当者が全件の転記の案を見ます。 見る順を決めておきます。
name_mismatchとunreadableを先に見る … 別人の証明書の混入か、読み取りの問題かを原本で確かめますmissing_certを見る … 一式に本当に無いのか、種類の判別の誤りかを原本で確かめますexpires_during_contractとexpiredを見る … 原本で日付を確かめ、配乗会社に更新を頼みますcapacity_checkを見る … 職務の範囲と制限の原文を読み、予定の職務に足りるかを配乗の責任者に確かめます- 台帳に登録し、依頼を送る … 送信は担当者が行います
証明書が本物かは、読み取りでは分かりません。 IMO の通知では、他国の資格を認める取り決めで、資格を認める側が発行国に証明書の有効性や内容を照会する手順を定めておくことが挙げられています。疑いのあるものは、発行国の照会の手段で確かめます。
例外に対処する
| 起きること | 対応 |
|---|---|
| パスワード付きのPDF | 読めない。配乗会社に送り直してもらう |
| 1ページに複数の証明書 | 種類の判別で unknown。人が分ける |
| 英語の無い証明書 | 対応言語の外。人が読む |
| 有効期限の無い証明書 | 期限の無い種類かを表で確かめ、無い種類でなければ人へ |
| 乗船中の延長 | 新しい予定期間で毎週の確認をやり直す |
| 同じ種類の証明書が2枚ある | 有効期限の新しい方を案にし、古い方も並べて人が確かめる |
| 旗国の承認の裏書の期限が資格より先に切れる | 裏書の期限で expires_during_contract を出す |
最後の行を見落としやすいです。 海技資格の証明書が有効でも、旗国がそれを認めた裏書には別の期限があり、先に切れることがあります。 裏書と資格を別の種類として表に持ち、それぞれの期限で照らします。
記録を残す
- 一式の原本と、保存した場所(船員・乗船予定・受領日)
- Textract が返した結果の全文
- ページごとの種類の判別と根拠の文、転記の案、照合の結果
- 担当者が直した箇所 … どのページの種類・日付を、どう直したか
- 配乗会社への依頼と、届いた差し替えの証明書
- 毎週の期限の確認の結果
健康証明書の原本は、ほかの証明書と同じ場所に置かず、見られる人を絞ります。 台帳には適否・制限・期限だけを残します。
04実装レベルの3段階
半自動化で、1件30分が9分になり、この段階が本記事の想定です。 写す作業と表との照合は無くなり、人は拾われた事項を原本で確かめ、台帳に登録します。 本格構成は、管理する船の多い会社で検討します。 配乗の予定を立てる段階で不足が見えれば、候補の船員を選ぶ前に気づけます。 そのためには、半自動化で必要な資格の表を半年回して固めておく必要があります。 段階を飛ばさないでください。 半自動化の確認事項を数か月見ると、missing_cert が多く出る配乗会社と、種類の判別が分かれやすい発行国が先に分かります。そこを配乗会社との取り決めと種類の一覧の説明で直してから本格構成に進むほうが、誤った警告で配乗の担当者が警告を見なくなる事態を防げます。
05工数削減シミュレーション
導入後 80件 × 9分 ÷ 60 = 12 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 外国籍の船(便宜置籍船など)を数十隻管理し、フィリピン・インドなどの配乗会社を通じて外国人船員を配乗している船舶管理会社。船員の交代のたびに、配乗会社から英文の資格証明書の一式がPDFで届き、配乗の担当者が証明書の種類と有効期限を乗組員台帳に手で写し、乗船予定の船と職務に必要な資格を目で確かめている場合。乗船の期間中に健康証明書や訓練の修了証が切れることに乗船後に気づく、といったことが起きている場合。
- 管理する船が数隻で、乗組員の交代が月に数人の場合。配乗会社の船員管理の仕組みから資格の情報をデータで受け取れる場合(読み取りは要らず、受け取った値を確かめれば足ります)。証明書が英語以外の言語だけで書かれている場合(この構成で使う読み取りのサービスは英語など6言語に対応します)。なお、船員を乗船させてよいか、資格が職務に足りるかの最終の判断は、旗国の要件と自社の安全管理の手順に基づいて配乗の責任者が行います。この構成は確かめるべき点を拾うまでです。
07最小構成で試す方法
- 先月乗船した船員の一式から、配乗会社と発行国の違う10人分を選ぶ(うち数人は、タンカーの職員と、期間中に期限が切れたことがあった人を入れる)
- AWS のコンソールで Textract の文書分析を開き、問い合わせに上の9つの問いを入れ、対象を全ページにして読み取る
- 答えを、当時台帳に写した値と並べる
- 手元のAIサービスにページごとの文を貼り、証明書の種類を判別させる
- 必要な資格の表と予定期間に照らした結果を、当時の担当者の確認と比べる
最も見たいのは、種類の判別の正しさです。 判別がそろえば、後の照合は表と日付の問題になります。
| 出てきた内容 | 判断 |
|---|---|
| 項目が取れ、種類の判別も当時の確認と合った | 必要な資格の表との照合に進む |
| 2ページ目以降の答えが空だった | 問い合わせの対象のページの指定で直る。構成は有効 |
| 更新の修了証を元の修了証と取り違えた | 種類の一覧の説明と指示で直す。構成は有効 |
スマートフォンで撮った画像が多い配乗会社は、別に見ておきます。 傾きや影で読み取りの信頼度が下がるなら、AIの問題ではなく受け取り方の問題です。 スキャナーでのPDFを配乗会社に頼むほうが、指示を工夫するより確実です。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 2ページ目以降の問い合わせの答えが空 | 既定は1ページ目だけ。 Pages に ["*"] を入れる |
| 月と日を取り違えて期限がずれる | 発行国ごとの設定で読み、日が12以下の数字だけの日付は人へ |
| 乗船の日だけで期限を見る | 予定期間の終わり(余裕込み)と照らす |
| AIが職務を上の職務に読み広げる | 書かれた職務の言葉のまま返させる |
| 裏書の期限を見落とす | 資格と裏書を別の種類として期限を照らす |
| 健康の情報が出力に残る | 適否・制限・期限だけを写させる |
| 古い証明書を案に採ってしまう | 同じ種類が2枚あれば期限の新しい方を案にし、両方を並べる |
| 氏名の綴りの違いで別人と出る | 姓と名の順とミドルネームを整え、生年月日と合わせて照らす |
| Bedrock で構造化出力が使えない | Claude API を直接使うか、対応を先に確かめる |
上の3行が、この構成の失敗のほとんどです。 1行目は読み取りを1ページ目だけにし、2行目と3行目は期限の確認を崩します。問い合わせの対象と日付の読み方を最初に固めておけば、台帳の期限を信頼できるものにできます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 船員の氏名・生年月日・国籍、資格証明書の番号、健康証明書の適否と制限です。健康証明書は健康の情報を含み、慎重に扱う必要があります。
- 生成AIに渡す範囲を絞る … 種類の判別にはページの文を渡しますが、健康証明書のページは題名と適否・制限・期限の行だけに絞って渡します
- 受け取りの場所の権限を絞る … S3 のフォルダは船員部と処理のプログラムだけが読めるようにし、結果は KMSKeyId を指定した暗号化で保存します
- 台帳を自動で更新しない … 有効期限と種類は、担当者が原本で確かめてから登録します
- 乗船の可否をこの構成で決めない … 拾われた事項は確かめる点で、乗船させるかは配乗の責任者が旗国の要件と自社の手順で決めます
- 依頼を自動で送らない … 下書きまでです
- 保存の期間を決める … 下船した船員の証明書をいつまで持つかを、自社の規程で決めておきます
- 配乗会社と送り方を決める … 一式をメールの添付で送るのをやめ、受け取り専用の共有の場所に置いてもらうほうが、誤送信と保存先の散らばりを防げます
誤りが起きた場合のリスクは、期限切れや資格の足りない船員を乗船させることと、資格のそろった船員を不足と誤って配乗を遅らせることの2つです。 前者は予定期間の終わりとの照合と人の確認で、後者は種類の判別を原本で確かめてから依頼することで防ぎます。
10まず何から始めるか
1週目:必要な資格の表を整える
船員部の責任者が、管理する船の種類と職務の組み合わせごとに、必要な証明書の種類と健康証明書の有効期限の上限を表にします。交代の多い職務から始めます。
2週目:10人分で読み取りを試す
発行国の違う10人分をコンソールで読み取り、当時の台帳と並べます。問い合わせの対象を全ページにしたか、日付の取り違えが無いかを最優先で見ます。
3週目:種類の判別を確かめる
手元のAIサービスで10人分の種類を判別し、当時の担当者の見分けと比べます。 更新の修了証と元の修了証の取り違えが無いかを見ます。
4週目:保存から照合の結果までをつなぐ
保存を起点に読み取り、種類を判別し、表と予定期間に照らすところまで作ります。毎週の乗船中の全員の期限の確認もここで動かします。
2か月目: 依頼の下書きを足し、missing_cert と expires_during_contract の件数を毎週数えます。3か月目以降: 1件30分が何分になったかを実測し、職務の言い換えの表を育てます。乗船の期間中の期限切れが乗船の前に拾えるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 対応する形式が JPEG・PNG・PDF・TIFF であること。パスワードで保護されたPDFは扱えないこと。対応言語が英語・フランス語・ドイツ語・イタリア語・ポルトガル語・スペイン語であること。問い合わせは英語の文書だけで、非同期で1ページ30件までであること | AWS: Set Quotas in Amazon Textract | 2026-10-14 |
| StartDocumentAnalysis の FeatureTypes に QUERIES・FORMS などがあること。文書を S3 に置くこと。完了の状態が SNS に通知されること。ClientRequestToken で同じジョブの二重の開始を防げること。JobTag が通知に含まれること。KMSKeyId で結果を暗号化できること。JobId が7日間だけ有効であること | AWS: StartDocumentAnalysis | 2026-10-14 |
問い合わせの対象のページを指定しないと既定で1ページ目だけになること。* で全ページを指定できること | AWS: Query(Amazon Textract API) | 2026-10-14 |
output_config.format に JSON スキーマを渡すとスキーマに合う JSON が返ること。正式提供の機能であること。Amazon Bedrock では旧来の連携でだけ使え、Claude in Amazon Bedrock では使えないこと | Claude Docs: Structured outputs | 2026-10-14 |
| STCW 条約が1978年に採択され1984年に発効したこと。2010年のマニラ改正で、海技資格の証明書の不正の防止と健康の基準が強められたこと | IMO: International Convention on Standards of Training, Certification and Watchkeeping for Seafarers | 2026-10-14 |
| STCW 条約の規則 I/10 による他国の資格の承認の取り決めで、証明書の有効性や内容を照会する手順、承認の裏書の取消しの通知の手順を定めておくこと | IMO: MSC.1/Circ.1450 | 2026-10-14 |
| 健康証明書の有効期間が最長2年(18歳未満は1年)、色覚の証明が最長6年で、これらは上限であり国はもっと短い期間を定めうること | ILO: MLC, 2006 FAQ C1.2.b | 2026-10-14 |
船員を乗船させてよいか、資格が職務に足りるかは、旗国の要件と自社の安全管理の手順に基づいて配乗の責任者が決めてください。 本記事は公開されている製品の仕様と資料で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1512)についてのご相談はこちらから。
