Media > AI活用ユースケース > 人事 > 海外子会社の社内規程を訳して、本社の規程と条項どうしを突き合わせる

海外子会社の社内規程を訳して、本社の規程と条項どうしを突き合わせる

実装ステータス:構成例 技術的に実現可能な構成として設計したもの。自社未検証

海外子会社が現地の言語で作った社内規程を訳し、本社規程のどの条項に当たるかを条項単位で対応づけます。出てくるのは訳文ではなく、本社の条項と現地の条項をならべた対応表です。

サマリー
利用ツール
Amazon Kendra/Azure AI/ChatGPT/Claude/Gemini/Google Apps Script/Make/n8n/OpenSearch/Python/Zapier
対象業界
IT・SaaS/商社/物流/製造/金融
対象部門
人事/法務
対象業務
書類作成/比較検討
主な課題
人手が足りない/属人化している/情報が見つからない
AIで行う処理
翻訳
主な効果
品質標準化/属人化解消/工数削減
導入難易度
★★★☆☆
実装レベル
半自動化
費用感
API連携(中)
人間の確認
必須
現在工数
22.5h/月
AI導入後
8h/月
想定削減
64%
年間削減
174h
モデル条件による試算値です。実在企業の実績ではありません。

01導入前 / 導入後の業務フロー

導入前(Before)
  1. 子会社から規程のファイルがメールで届き、共有フォルダに保存する
  2. 改訂の場合、前版のファイルを探して開き、どこが変わったかを見比べる
  3. 全文を機械翻訳にかけ、出てきた日本語を読みながら不自然な箇所を直す
  4. 本社規程を開き、訳文を読みながら「本社ではどの条か」を記憶と目次で探す
  5. 見つかった条を並べてメモに書き、数値や期間が違うところを書き出す
  6. 見つからない事項は、本当に無いのか探し漏れかを判断するため訳文を読み直す
  7. 気づいた点を申し送りにまとめ、本社法務と、必要なら現地の弁護士に回す
導入後(After)
  1. 人届いた規程を受領フォルダへ置き、受付フォームで子会社・規程の種類・版・施行日を選ぶ
  2. 自動ファイル形式・ページ数・サイズを確かめ、Word はPDFにする
  3. 自動規程を条項の単位(条→項→号)に切り、原文の条番号を表記のまま保持する
  4. 自動用語集に従って各条項を訳し、訳と原文を対にして持つ
  5. 自動必須事項の一覧を1件ずつ取り、本社規程の条項を検索で引く
  6. 自動原文と訳文の両方で検索し、候補となる本社条項と現地条項を集める
  7. 自動1条ずつ、対応の有無を `matched` / `absent` / `divergent` の3値で判定する
  8. 自動判定と根拠、原文の条番号を並べた対応表を組み立てる
  9. 人担当者が `absent` と `divergent` のものだけを原文で確かめる
  10. 人確かめた結果を本社法務に回し、必要なものは現地の弁護士に照会する
各工程の詳しい説明を読む
  1. 子会社から規程のファイルがメールで届き、共有フォルダに保存する
  2. 改訂の場合、前版のファイルを探して開き、どこが変わったかを見比べる
  3. 全文を機械翻訳にかけ、出てきた日本語を読みながら不自然な箇所を直す
  4. 本社規程を開き、訳文を読みながら「本社ではどの条か」を記憶と目次で探す
  5. 見つかった条を並べてメモに書き、数値や期間が違うところを書き出す
  6. 見つからない事項は、本当に無いのか探し漏れかを判断するため訳文を読み直す
  7. 気づいた点を申し送りにまとめ、本社法務と、必要なら現地の弁護士に回す

(a)訳しても比べられない。 3番が終わった時点で、手元にあるのは日本語の規程全文です。条項の番号も並びも本社規程とは違うので、読み比べる順序が決まりません。 実際には4番で本社規程を何度も開き直します。1件90分のうち、いちばん長いのがここです。

(b)「無い」を確かめるほうが時間がかかる。 対応する条項が見つかったときは、そこで終わります。見つからないときに、無いのか探せていないだけなのかを決めるのが6番です。 訳文を読み直しても確信は持てず、結果として「見当たらず」とだけ書かれた申し送りが残ります。

(c)訳語がぶれると対応が外れる。 懲戒、譴責、減給といった語は、機械翻訳のたびに違う日本語になります。同じ現地語が前回は「懲戒処分」、今回は「規律処分」と訳されると、前版の対応表と突き合わせられません。 担当者の読み替えは記録に残りません。

(d)12社分の全体像が出てこない。 1件ずつ処理しているので、「贈収賄の禁止がどの子会社の規程に入っているか」を一覧で言えません。 この業務の本当の目的はそこにあるのに、最後まで出てきません。

  1. 【人】 届いた規程を受領フォルダへ置き、受付フォームで子会社・規程の種類・版・施行日を選ぶ
  2. 【自動】 ファイル形式・ページ数・サイズを確かめ、Word はPDFにする
  3. 【自動】 規程を条項の単位(条→項→号)に切り、原文の条番号を表記のまま保持する
  4. 【自動】 用語集に従って各条項を訳し、訳と原文を対にして持つ
  5. 【自動】 必須事項の一覧を1件ずつ取り、本社規程の条項を検索で引く
  6. 【自動】 原文と訳文の両方で検索し、候補となる本社条項と現地条項を集める
  7. 【自動】 1条ずつ、対応の有無を matched / absent / divergent の3値で判定する
  8. 【自動】 判定と根拠、原文の条番号を並べた対応表を組み立てる
  9. 【人】 担当者が absent と divergent のものだけを原文で確かめる
  10. 【人】 確かめた結果を本社法務に回し、必要なものは現地の弁護士に照会する

5番目が、この設計の要です。 現地の規程を上から順に読むのではなく、本社側の「必ず入れる事項」から現地の規程を引きにいきます。 向きを逆にすると、「無い」が結果として出てきます。

7番目を1条ずつにしているのは、まとめて判定させると精度が落ちるためです。 長い文脈から1か所を探す使い方は精度が高い一方、探すものが複数あると同じ精度が出ないとされています。 規程全文を渡して全事項を判定させると、この条件に当たります。

9番目で人が開くのは全件ではありません。 matched は一覧で流し見て終わりにし、時間は absent と divergent に使います。 全件を確認する設計にすると、90分は減りません。

02今回想定するシステム構成

構成図
海外子会社の規程(現地語のPDF/Word)
   ▼【トリガー】受領フォルダへの保存+受付フォーム(子会社・種類・版・施行日)
Make ── 形式・ページ数・サイズの確認、Word はPDF化
   ▼
Gemini API ── 条項に切る/原文の条番号を保持/用語集に従って訳す
   ▼
Azure AI Search ── 本社規程の条項を引く(原文と訳文の両方で)
   │   search と vectorQueries を1要求/RRFで統合/queryType=semantic
   ▼
Gemini API ── 必須事項ごとに対応の有無を3値で判定
   │   matched(ある)/ absent(無い)/ divergent(内容が違う)
   ▼
Python ── 出力の形を検証し、対応表(XLSX)を組み立てる
   ▼
【人が absent と divergent だけ原文で確かめる】→ 本社法務と現地の弁護士が判断
役割想定する製品代替候補
処理Gemini APIClaude API、OpenAI API
検索基盤Azure AI SearchAmazon Kendra、OpenSearch
集計PythonGoogle Apps Script
連携MakeZapier、n8n

本社規程の検索基盤が、この構成でいちばん効く部品です。 Azure AI Search のハイブリッド検索は、search と vectorQueries の両方を含む1つのクエリ要求で、フルテキスト検索とベクター検索を並列に実行し、逆ランク融合(RRF)でマージするとされています。条番号のような完全一致はキーワード側が、言い回しの違う条項はベクトル側が拾います。

多言語の扱いについても記載があります。 埋め込みスペースに多言語コンテンツが含まれる場合、ベクタークエリは言語アナライザーや翻訳を必要とせず一致を見つけられるとされています。訳文に加えて原文でも引けば、訳がぶれた条項を拾い直せます。

セマンティックランカーは、候補の順番を決める部分です。 queryType=semantic を指定すると、BM25 または RRF でスコア付けされた上位50件だけが再ランクの対象になり、多言語の深層学習モデルが @search.rerankerScore を付けます。スコアの範囲は 4 から 0 で、4.0 は「非常に関連性が高い」、0.0 は「関係ない」とされ、k は 50 にすると書かれています。

Gemini API 側は、文書をそのまま読める点と、出力の形を固定できる点で選んでいます。 ネイティブの視覚機能でテキスト、画像、図、グラフ、表を扱います。非PDFも渡せますが通常のテキストとして見えるため、図表や書式の文脈が失われるとされており、Word はPDFにしてから渡します。対応表の保管先は、この表に入れていません。 法務の共有フォルダを使います。

03どうやって実装するのか

Step1

処理の起点を決める

受領フォルダにファイルが保存されたことを起点にします。 月15件と少ないので常時の監視は要りません。Make のシナリオは既定で15分ごとに実行され、「At regular intervals」では間隔を分で指定します(最小はプランによるとされています)。ここでは1日1回とし、急ぎのものは「On demand」(run once button)で届いた日に回します。

ファイルを置くだけでは始めません。受付フォームで人が、子会社・種類・版・施行日を選びます。版を自動で判定させないでください。 取り違えると全部やり直しです。フォームは10秒、やり直しは90分です。

処理済みフォルダへ移すのは成功したときだけにし、受領フォルダに残っている数を未処理の数とします。

Step2

入力データを集める

データ中身取得元
現地の規程PDFまたはWord。言語、子会社コード、種類、版、施行日受領フォルダと受付フォーム
本社規程の条項条ごとに切った本文、条番号、見出し、規程名、改訂日本社規程の検索インデックス
必須事項の一覧事項コード、内容、対応する本社条番号、必須か推奨か本社法務が作る表
法令用語の対訳表日本語の用語、各言語の訳語、使ってはいけない訳語本社法務と現地担当が作る
前版の対応表前回の判定結果と、人が直した記録対応表の保管先

質を決めるのは、真ん中の2つです。 必須事項の一覧が無ければ、何を探すのかが決まりません。対訳表が無ければ、同じ現地語が月ごとに違う日本語になり、前版と比較できません。

必須事項は10件から15件で始めます。 贈収賄の禁止、機密情報の持ち出しの禁止、労働時間の上限、懲戒の種類と手続、購買の相見積り、内部通報の窓口など。それぞれに本社規程の条番号と、必須か推奨かを付けます。対訳表は30語程度から始め、「使ってはいけない訳語」の列を持たせます。

Step3

データの取得方法を決める

本社規程は、条ごとに1件のレコードにして検索インデックスへ入れます。 全文を1件にすると、どの条が当たったかが返ってきません。

取るものどこから何に使うか
本社条項の候補ハイブリッド検索現地条項と突き合わせる相手
候補の並びqueryType=semantic と @search.rerankerScore上位から順に判定へ渡す
現地規程の条文PDFをそのまま Gemini API へ条項に切る、訳す、判定する
前版との差分前版の対応表と条番号の照合改訂で変わった条だけに絞る

セマンティック構成には、フィールドの優先順位を付けます。 要約モデルは1件あたり最大2,000トークンを受け取り、title と keywords がそれぞれ128トークン、残りが content とされます。条の見出しを title、コードを keywords、本文を content に置きます。

検索は、1つの現地条項につき訳文で1回、原文で1回行います。 訳語のぶれで訳文から当たらない条項が、原文の側から当たります。候補を束ね、上から10件程度を判定へ渡します。

Step4

AIへ渡す前に整形する

  1. 形式の確認 … Word はPDFに変換します。非PDFは通常のテキストとして扱われ、書式の文脈が失われるためです
  2. ページ数とサイズの確認 … 50MBまたは1,000ページが上限です。超えるものは章で分割します
  3. 条項への切り分け … 条、項、号に切ります。原文の条番号は表記のまま文字列で持ちます
  4. 版の記録 … 受付フォームで選んだ版と施行日を、全レコードに付けます
  5. 個人情報の除去 … 起草者の氏名、署名欄、押印欄、連絡先を落とします
  6. 前版との照合 … 前版と本文が同一の条には印を付け、判定の対象から外します
  7. 画像だけのPDFの検知 … 文字が取り出せなければ、現地へ元ファイルを依頼します

6番目が、改訂の処理時間を決めます。 届くのは全文でも、変わっているのは数条です。外さないと、毎回すべての条を判定し直すことになります。

3番目は、国によって形が違います。 条が無く箇条書きだけの規程、章と条の二段構えの規程、別表が本体と同じ重さを持つ規程があります。原文の見出しを識別子に使います。

Step5

AIに処理させる

させるのは、条項に切ること、訳すこと、対応の有無を3値で判定することの3つです。 中心は3つ目です。

見るもの判定の仕方判断できないときの扱い
必須事項の内容その事項が現地条項に規定されているか候補が無ければ absent
数値・期間上限時間、日数、金額が本社と同じか違えば divergent
手続の主体誰が承認し、誰に届けるか違えば divergent
適用の範囲対象の従業員の範囲、例外の有無違えば divergent
原文の条番号原文の表記をそのまま写す訳さない、振り直さない

1行目がいちばん守らせにくく、候補ゼロは absent の既定にします。

させないこと理由
現地法に適合しているかの判断現地の弁護士の領分。差は不備を意味しない
どちらが正しいかの判断本社法務が決める。事実として並べるまで
条番号の振り直し・付け替え人が原文に戻れなくなる
候補に無い条項の当てはめ「無い」が「ある」に変わり、抜けが隠れる
原文に無い規定の補完書かれていなければ absent
用語集に無い訳語を作ること訳語がぶれると前版と比較できない

4行目が、最も起きやすい失敗です。 言葉の上で近い条項は、どの規程にも見つかるからです。

Step6

指示内容を固定する

あなたは本社法務の担当者で、海外子会社の社内規程を本社規程と条項単位で
突き合わせる立場です。渡された「現地の条項」と「本社規程の候補条項」だけを
見て判定してください。

【match_status の選び方】
- matched ..... 候補の本社条項と同じ事項を規定し、内容も食い違わない
- divergent ... 同じ事項を規定しているが、数値・期間・手続の主体・適用の
                範囲のいずれかが違う
- absent ...... その事項の規定が、この現地の条項に無い

【厳守事項】
- 候補が1件も渡されていない場合は、必ず absent にしてください。
  原文に書かれていない規定を「あるはずだ」と補わないでください。
- matched と divergent を選ぶときは、evidence_src に現地の原文をそのまま
  写してください。写せないときは absent です。
- local_article_no には、原文の条番号の表記をそのまま入れてください。
  訳す、振り直す、本社の条番号に合わせることをしないでください。
- 見出しが似ているだけで matched にしないでください。
  見るのは見出しではなく、規定されている中身です。
- divergent のときは、difference に「何が」「本社ではどう」「現地ではどう」
  を事実として書き、どちらが正しいかは書かないでください。
- 現地法に適合しているか、違法かどうかを書かないでください。
- 訳語は用語集の語だけを使い、無い語は訳さず原文の表記を残して
  note に「用語集に無い」と書いてください。

【グループ必須事項】{control_item}
【本社規程の候補条項】{hq_candidates}
【用語集】{glossary}
【現地の条項】{local_article}
上の現地の条項に、グループ必須事項が規定されているかを判定してください。

「候補がゼロなら absent」を厳守事項の先頭に置いているのは、これが判定の既定だからです。 「無い」は探した結果ではなく、検索で当たらなかったという事実から出します。

「見出しが似ているだけで matched にしない」も外せません。 現地の規程にも「Confidentiality」や「Disciplinary Action」といった見出しは並びます。見出しがあることを、中身があることとして扱わせないのが、この一行の役目です。

資料を先に、問いを最後に置いています。 長い文脈では、問いを他の文脈のすべての後ろに置いたほうが性能が上がるとされています。

Step7

出力形式を固定する

次の形のJSONで受け取ります。 必須事項1件と現地条項1件の組で1レコードです。

{
  "subsidiary_code": "",
  "policy_type": "work_rules | expense | procurement | infosec",
  "version": "",
  "control_item": "G-05",
  "hq_article_no": "",
  "local_article_no": "",
  "local_article_title_src": "",
  "translation_ja": "",
  "match_status": "matched | absent | divergent",
  "evidence_src": "",
  "evidence_ja": "",
  "difference": [{ "aspect": "", "hq": "", "local": "" }],
  "glossary_missing": [],
  "note": ""
}

訳と原文(translation_ja と evidence_src)を同じレコードに持たせ、local_article_no に原文の条番号を残します。 人が原文に戻る経路を、データの形の側で確保するためです。形の固定には response_format(type / mime_type / schema)を使い、match_status を enum で3値にします。

ただし、スキーマに頼りきらないでください。スキーマに沿っていながら意味の上では誤っていることがあるため、アプリケーション側で値を必ず検証するよう案内されています。 Python 側で次を見ます。

検証する内容落ちたときの扱い
match_status が3値のいずれか形式エラーとして再実行
matched / divergent に evidence_src があるか空なら absent に倒す
evidence_src が原文に実在する文字列か実在しなければ人へ
local_article_no が原文の条番号一覧にあるか無ければ人へ
divergent に difference が1件以上あるか空なら人へ

3行目を必ず入れてください。 写された原文が元のファイルに実在するかを確かめます。ここを見ないと、それらしい引用が付いた誤った matched が通ります。 なお、非常に大きい、深く入れ子になったスキーマは拒否されうるとされるため、規程全体を1つのJSONで返させません。

Step8

システムへ連携する

つなぎ先方式内容
受領フォルダと受付フォームMake のトリガーファイルの保存と、子会社・種類・版・施行日の受け取り
Gemini APIAPI呼び出し条項の切り分け、訳、3値の判定
Azure AI SearchAPI呼び出し本社規程の条項の候補を引く
Pythonスクリプト実行出力の検証と対応表(XLSX)の組み立て
対応表の保管先既存の共有フォルダ子会社と版ごとに保管する

本社規程の検索インデックスには書き込みません。子会社の規程もここに入れないでください。 混ぜると、現地の条項を引いたときに別の子会社の条項が候補に出ます。

対応表の列は、判定、本社条番号、原文の条番号、原文、訳、差分です。12社分を縦に積んだ集計表も別に作ります。 「贈収賄の禁止がどの子会社に入っているか」が、そこで一覧になります。

Step9

人が確認する

人が開くのは absent と divergent のものだけです。 matched は一覧で流し見ます。全件を開く設計にすると、第10章の8.0時間には収まりません。

  1. absent を先に見る … 本当に無いのかを、原文の目次と該当しそうな章で確かめます。ここが対応表の成果です
  2. divergent の差分を確かめる … difference の数値や期間を、訳ではなく原文の該当箇所で見ます
  3. 現地法による差かどうかを仕分ける … 現地の規制で本社どおりにできない事項は、その旨を記録します。適否の判断はしません
  4. 判定を覆したら記録し、本社法務へ回す … 必要なものは現地の弁護士に照会します

3番目を対応表の上で終わらせないでください。 差があることと不備であることは違い、判断は現地の弁護士に確かめます。

目標は、15件をならして1件30分です。 absent と divergent が1件あたり数件に収まる想定で、それより多い月は、必須事項の書き方が広すぎるか、対訳表に語が足りていません。

Step10

例外に対処する

起きること対応
条番号が無く箇条書きだけの規程原文の見出しを識別子に。番号を振らない
1つの現地条項が本社の複数条に当たる1対多を許し、対応表の行を分ける
候補が1件も出ないabsent の既定。 AIに探させない
訳語が対訳表に無い訳さず原文のまま残し、glossary_missing に入れて人へ
ページ数・サイズが上限を超える50MBまたは1,000ページが上限。章で分割する
版が分からない、複数版が混ざる受付フォームで人が選ぶ。自動判定しない
現地法により本社どおりにできない旨が条文にあるdivergent にし note に原文を残す
再ランクのスコアが軒並み低い上位50件だけが対象。しきい値を細かく決めすぎない
出力の検証に落ちる1回だけ再実行し、また落ちたら人へ

上から3行目が、この構成の守りどころです。 候補ゼロを absent に固定すれば、検索を直す作業と判定を直す作業が分かれます。

最後から2行目について補足します。 @search.rerankerScore の分布は若干変動しうるとされ、しきい値を細かくしすぎないよう案内されています。

Step11

記録を残す

  • 原文ファイルと、子会社・種類・版・施行日・受け取った日
  • 条項に切った結果(原文の条番号の表記をそのまま含む)
  • 検索で出した候補の一覧と、そのときのスコア
  • AIが返したJSONの全文と、Python 側の検証の結果
  • 人が判定を覆した記録 … どの事項を、どちらに変えたか
  • 参照した本社規程の版と、必須事項の一覧の版、対訳表の版
  • 本社法務へ回した日と、現地の弁護士への照会の有無

下から2つ目が、いちばん重要なログです。 本社規程が改訂されると、過去の対応表の意味が変わります。 「当時どの版と突き合わせたか」が残っていないと、やり直す範囲が決まりません。必須事項の一覧も同じで、項目を1つ足せば、それ以前の対応表は「その事項を見ていない表」になります。

人が覆した記録は、対訳表と検索の改善に使います。 absent を matched に覆すものが続くなら、検索で候補が出ていません。

04実装レベルの3段階

最小構成:条文を手でAIの画面に貼り、必須事項ごとに3値の判定をさせる / 1条ずつの対応づけ
半自動化:上記に加え、本社規程を検索基盤に入れて候補を自動で引き、対応表を書き出す / 訳と候補の抽出、対応表の作成
本格構成:上記に加え、受領フォルダを起点に自動で動かし、前版との差分で対象を絞り、12社分を横断集計する / 受け取りから対応表と集計まで

最小構成では12社分はさばけません。 1条ずつ貼るので、確かめるための段階です。それでも対訳表と必須事項の一覧はここで作れます。 半自動で、1件90分が32分程度になります。本記事の想定はこの段階です。 候補を探す35分と翻訳の30分が消え、残るのは受け取りの手当てと、absent / divergent の確認です。本格構成に進んでも、この確認の時間は減りません。 段階を飛ばさないでください。 半自動を1か月回すと、absent の空振りが多い事項と、候補が出ない事項が先に分かります。そこを直してから自動で回します。

05工数削減シミュレーション

前提値(モデル条件)
対象人数
2 名
月間件数
15 件
1件あたり現在時間
90 分
1件あたり導入後時間
32 分
現在  15件 × 90分 ÷ 60 = 22.5 時間/月
導入後 15件 × 32分 ÷ 60 = 8 時間/月
月間削減時間
14.5h
削減率
64%
年間削減時間
174h
年間金額換算(時間単価4,000円)
70万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

自社条件で導入効果を整理したい方へ

このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。

AI活用について相談する

06向いている企業・向いていない企業

向いている
  1. 海外子会社を5社以上持ち、就業規則・経費規程・購買規程・情報管理規程が現地の言語で別々に作られている製造業・商社・IT企業など。本社が「グループ全体で必ず入れる事項」を決めており、それが現地の規程に入っているかを確かめたい場合。子会社の規程の改訂が毎月発生し、そのたびに本社の法務・人事が読む体制になっている場合。
向いていない
  1. 海外子会社が1〜2社で、規程を本社が直接作って現地へ渡している場合。すべての子会社が本社規程の翻訳版をそのまま使っており、現地で条文を足していない場合。現地法への適合の可否を判定させたい場合は対象外です。この構成が出すのは本社規程との差までで、適法性の判断は本社法務と現地の弁護士が行います。

07最小構成で試す方法

  1. グループ必須事項を5件だけ決め、本社規程の条番号を付ける
  2. 子会社1社の規程を1本選ぶ(できれば、抜けがあると分かっているもの)
  3. その規程から条項を10条ほど抜き出し、原文と機械翻訳の訳を並べる
  4. 手元のAIサービスに、必須事項1件と本社条項の全文、現地条項10条を貼る
  5. 「この5件の事項が、この10条に規定されているかを判定してください。ある場合は現地の条番号と原文をそのまま写し、無い場合は無いと書いてください。近い条項を当てはめないでください。現地法に適合しているかは書かないでください」と指示する
  6. 出てきた判定を、担当者が知っている実際の状況と突き合わせる

5件と10条で足ります。 確かめたいのは、「無い」を「無い」と返すかどうかだけです。

出てきた内容判断
無い事項を無いと返した検索基盤の構築に進む。 構成は有効
近い条項を当てはめて「ある」と返した指示の書き方で直る。候補ゼロの既定を先に書く
条番号を訳したり振り直したりした指示で直る。原文の表記のままと明記する
訳語が前後で変わった対訳表が先。 AIの問題ではない

2行目は、何も制約しなければ必ず出ます。 失敗ではなく、AIに任せてはいけない部分が1つ分かったということです。

08実装時につまずきやすいポイント

問題対策
「無い」が「ある」になる候補ゼロを absent の既定に。 原文を写せなければ absent に倒す
条番号を訳す・振り直す原文の表記のまま文字列で持つ。人が原文に戻れることが最優先
訳語がぶれて前版と比較できない対訳表を先に作り、「使ってはいけない訳語」の列を持たせる
突き合わせる軸が決まらない必須事項の一覧が軸。 現地の規程を上から読む設計に戻らない
差を不備として扱ってしまう現地法により本社どおりにできない場合がある。出すのは差まで
1対1で対応させようとする1つの現地条項が本社の複数条に当たる。1対多を許す
全文を一度に渡して全事項を判定させる探すものが複数あると精度が落ちる。1条ずつ渡す
訳文からしか検索できていない原文でも引く。多言語の埋め込みは訳を経ずに一致しうる
スキーマが大きすぎて拒否される非常に大きい・深い入れ子は拒否されうる。1件1レコードにする
本社規程のインデックスに子会社の規程を入れる候補に他社の条項が出る。インデックスを分ける
規程全文を無償の利用形態のサービスに貼る社外秘。 有償の利用形態を前提にする

上の3行が、この構成の成否を分けます。 どれも「それらしく見えるものを、そのまま通してしまう」という同じ形です。候補が無いこと、条番号が原文のままであること、訳語が1つに決まっていること。この3つを機械の側で守らせてあるかで、対応表が使えるかが決まります。

下の2行は、設計の最初に決めてしまえば起きません。 後から直すと入れ直しになります。

09セキュリティ・AIガバナンス上の注意点

この構成で扱うデータ: 海外子会社の就業規則・経費規程・購買規程・情報管理規程の全文、本社規程の全文、必須事項の一覧です。いずれも社外秘です。

  1. 外部APIへ渡す範囲を絞る … 1回の呼び出しで渡すのは、現地の1条項、検索で引いた本社条項の候補、該当する必須事項1件、対訳表です。規程集を丸ごと渡しません
  1. 無償の利用形態を使わない … 無償の形態では、入力と出力が製品の提供・改善・開発に使われ、人のレビュアーが読み、注釈を付け、処理することがあるとされ、「機微な情報、秘密情報、個人情報を無償のサービスに送信しないでください」と明記されています。有償では、プロンプト(システム指示、キャッシュされたコンテンツ、ファイルを含む)と応答を製品の改善に使わないとされています
  1. ファイルを置きっぱなしにしない … Files API にアップロードしたファイルは48時間保存されるとされています。処理後に削除する手順を運用に入れます
  1. 個人情報は前処理で落とす … 起草者の氏名、署名欄、押印欄、連絡先は要りません。外に出るのは条文だけにします。 原文、訳、対応表は法務の共有フォルダに置き、検索インデックスに入れるのは本社規程だけにします
  1. 現地法の判断をこの仕組みでしない … 出すのは本社規程との差までです。現地法により本社規程どおりにできない事項があり、差は不備を意味しません。 どう扱うかは本社法務と現地の弁護士が決めます
  1. 対応表を現地へそのまま送らない … absent の一覧は、現地から見れば指摘の一覧です。本社法務が内容を確かめ、伝え方を決めてから渡します

誤りが起きた場合のリスクは、抜けを見落とすことと、無いものを指摘することの2つです。 前者は候補ゼロを matched に倒すと、後者は引用を検証しないと起きます。

10まず何から始めるか

1週目:グループ必須事項の一覧を作る

本社法務と人事で、グループ全体で必ず入れる事項を10件から15件決め、それぞれに本社規程の条番号と、必須か推奨かを付けます。この作業はAIを使いません。 ここが決まらないうちに仕組みを作ると、判定は出るのに何を意味するのか誰も言えない表ができます。

2週目:対訳表を作り、1社で手で試す

解雇、懲戒、時間外労働などの法令用語を30語ほど、言語ごとに訳語を決めます。 あわせて子会社1社の規程から10条を抜き、必須事項5件で手で判定を試し、「無い」を「無い」と返すかだけを見ます。

3週目:本社規程を条ごとに切って検索インデックスに入れる

条、見出し、本文、埋め込み、必須事項のコードを持たせ、見出しを title、コードを keywords、本文を content に置きます。

4週目:1社分を通す

検索、判定、対応表の作成までをつなぎ、1社の規程1本を通します。この時点では自動で動かさず手で実行し、 absent が実際の状況と合っているかを原文で全件確かめます。

2か月目: 5社に広げ、absent の空振りを毎週数えます。3か月目以降: 自動実行と、前版との差分での絞り込みを足します。どの事項がどの子会社に入っていないかを集計表で一覧にできた時点で、この構成は完成です。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-09-25/最終更新:2026-09-25
確認した内容情報源確認日
response_format(type / mime_type / schema)で出力の形を指定でき enum が使えること。大きすぎるスキーマは拒否されうること。値の検証が要ることGemini API 構造化出力2026-09-25
探す対象が複数あると同じ精度が出ないこと。問いを文脈の後ろに置くと性能が上がるとされることGemini API 長いコンテキスト2026-09-25
PDFを図表とともに扱い50MBまたは1,000ページが上限、非PDFは通常のテキストとして見えること。48時間保存されることGemini API 文書の読み込み2026-09-25
無償の形態では入出力が製品の提供・改善に使われ人のレビュアーが読むことがあり、機微・秘密・個人情報を送信しないよう明記されていること。有償では改善に使われないことGemini API 追加利用規約2026-09-25
search と vectorQueries を含む1要求を並列実行し RRF でマージすること。多言語の埋め込みでは翻訳を経ずに一致すること。k は 50 とされることAzure AI Search ハイブリッド検索2026-09-25
上位50件のみ再ランクされ、要約は最大2,000トークン(title 128/keywords 128/残りが content)であること。@search.rerankerScore が 4 から 0 で、しきい値を細かくしすぎないとされること。使用量で課金され無料枠があることAzure AI Search セマンティックランキング2026-09-25
既定で15分ごとに実行され「At regular intervals」と「On demand」(run once button)が選べ、最小の間隔がプランによることMake シナリオのスケジュール2026-09-25

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。

自社の業務に使えるAI活用候補を整理します

このユースケース(UC-0244)についてのご相談はこちらから。

AI活用について相談する
目次