Media > AI活用ユースケース > 人事 > 労働組合の事務局が、労働協約・組合規約・共済の手引きを Azure OpenAI に渡して組合員の質問にチャットで答え、個別の相談は役員に回す

労働組合の事務局が、労働協約・組合規約・共済の手引きを Azure OpenAI に渡して組合員の質問にチャットで答え、個別の相談は役員に回す

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

組合員がチャットで聞いた質問に、労働協約・組合規約・共済の手引きの条文を検索して、根拠の条番号付きで答えます。ハラスメントや処遇の不満のような個別の相談には答えず、内容を整理して担当の役員へ回します。

サマリー
生成AI
Azure OpenAI Service/ChatGPT/Claude
連携・自動化
Power Automate
対象業界
その他/物流/製造/金融
対象部門
人事/総務
対象業務
分類・仕分け/問い合わせ対応
主な課題
人手が足りない/問い合わせが多い/属人化している
AIで行う処理
対話
主な効果
対応スピード向上/属人化解消/工数削減
導入難易度
★★★★☆
実装レベル
本格構成
費用感
RAG・個別開発(大)
人間の確認
条件付き
現在工数
120h/月
AI導入後
40h/月
想定削減
67%
年間削減
960h
モデル条件による試算値です。実在企業の実績ではありません。

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

導入前(Before)
  1. フォーム・メール・支部役員からの転送で質問が届く。事務局の書記が受付の一覧に書き写す
  2. 書記が質問を読み、協約・規約・共済の手引きのどれに関わるかを見当を付ける
  3. 共有フォルダのPDFを開き、該当しそうな条文を探す。改定があった条文は、どの版が今の版かを確かめる
  4. 条文を読んで回答を書く。判断に迷うものは書記長に聞く
  5. 個別の事情を含む相談は、書記長が読んで担当の役員(賃金・労働時間・安全衛生・共済の各担当)に回す
  6. 回答をメールで返し、受付の一覧に完了と書く
  7. 同じ質問が多いものは、年に数回、組合のWebサイトのよくある質問に足す
導入後(After)
  1. 【組合員】 組合のポータルに組合員番号でログインし、チャットで質問する
  2. 自動質問を受け取り、個別の相談かどうかを先に判定する
  3. 自動質問であれば、現在有効な版の協約・規約・共済の手引きを検索し、該当する条文を取り出す
  4. 自動Azure OpenAI が条文だけを根拠に回答を作り、文書名と条番号、原文の引用を付けて返す
  5. 自動条文に答えが無いもの、解釈が分かれるものは「事務局が確認して返信します」と返し、事務局の確認待ちに入れる
  6. 自動個別の相談は回答せず、相談の種類と要点を整理して担当の役員へ通知し、組合員には受け付けたことと連絡の目安を返す
  7. 人事務局が確認待ちのものに返信し、役員が相談を受けて組合員に連絡する
  8. 人事務局が毎日、前日の回答から抜き取りで確認し、誤りがあれば組合員に訂正を送る
各工程の詳しい説明を読む
  1. フォーム・メール・支部役員からの転送で質問が届く。事務局の書記が受付の一覧に書き写す
  2. 書記が質問を読み、協約・規約・共済の手引きのどれに関わるかを見当を付ける
  3. 共有フォルダのPDFを開き、該当しそうな条文を探す。改定があった条文は、どの版が今の版かを確かめる
  4. 条文を読んで回答を書く。判断に迷うものは書記長に聞く
  5. 個別の事情を含む相談は、書記長が読んで担当の役員(賃金・労働時間・安全衛生・共済の各担当)に回す
  6. 回答をメールで返し、受付の一覧に完了と書く
  7. 同じ質問が多いものは、年に数回、組合のWebサイトのよくある質問に足す

(a)同じ質問に毎回条文を探し直している。 一時金の支給日、特別休暇の日数、共済の結婚祝金の申請期限といった質問は毎月何十件も届きます。答えは毎回同じなのに、毎回PDFを開いて条文を探します。 よくある質問のページは年に数回しか更新されず、協約の改定に追いついていません。

(b)答えられる人が書記長に偏っている。 書記は条文を探せますが、「この条文とこの別表の関係」「去年の改定で何が変わったか」は書記長に聞きます。書記長が交渉の期間に入ると、回答が止まります。 交渉の直後は改定の質問が集中する時期と重なります。

(c)質問と相談が同じ入口に混ざっている。 「特別休暇の日数を教えてください」の次に「休みの申請を上司に断られました」が届きます。後者を条文の回答で返してしまうと、組合員は二度と相談に来ません。 書記は全件を読み分けてから手を付けるので、読み分けだけで時間が取られます。

(d)返事が遅いほど、相談が深刻になる。 個別の相談は、返事を待つ間に事態が進みます。質問の山に埋もれて相談への初動が遅れることが、事務局にとっていちばん避けたい事態です。

  1. 【組合員】 組合のポータルに組合員番号でログインし、チャットで質問する
  2. 【自動】 質問を受け取り、個別の相談かどうかを先に判定する
  3. 【自動】 質問であれば、現在有効な版の協約・規約・共済の手引きを検索し、該当する条文を取り出す
  4. 【自動】 Azure OpenAI が条文だけを根拠に回答を作り、文書名と条番号、原文の引用を付けて返す
  5. 【自動】 条文に答えが無いもの、解釈が分かれるものは「事務局が確認して返信します」と返し、事務局の確認待ちに入れる
  6. 【自動】 個別の相談は回答せず、相談の種類と要点を整理して担当の役員へ通知し、組合員には受け付けたことと連絡の目安を返す
  7. 【人】 事務局が確認待ちのものに返信し、役員が相談を受けて組合員に連絡する
  8. 【人】 事務局が毎日、前日の回答から抜き取りで確認し、誤りがあれば組合員に訂正を送る

2番目を3番目より先に置いているのが、この設計の分かれ目です。 検索してから相談かどうかを判断すると、条文が見つかった時点で回答に寄ってしまいます。相談かどうかは、条文を探す前に質問の文面だけで決めます。

人が見るのは全件ではありません。 条文で答えが決まる質問はそのまま返し、事務局と役員の時間は、確認待ちと相談に使います。 全件を事務局が承認してから返す設計にすると、返事の速さという利点がなくなります。

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

構成図
組合員(スマートフォン・PC)
   │  組合員番号でログイン
   ▼
組合ポータルのチャット画面(Azure App Service)
   ▼【トリガー】質問の送信
Azure Functions ── 前処理(個人の識別情報の分離、長さの確認)
   ▼
Azure OpenAI ── ①相談か質問かの判定(構造化出力)
   │
   ├─ 相談 ──▶ 担当役員への通知(要点と種類)/組合員へ受付の返信
   │
   └─ 質問
        ▼
     Azure AI Search ── 現在有効な版の条文をハイブリッド検索
        ▼
     Azure OpenAI ── ②条文だけを根拠に回答(構造化出力)
        ▼
     根拠の照合(引用が原文にあるか)
        ├─ 照合OK ──▶ 組合員へ回答(文書名・条番号・引用付き)
        └─ 照合NG/答え無し ──▶ 事務局の確認待ち
役割想定する製品代替候補
生成AIAzure OpenAI(Microsoft Foundry)Claude API(Amazon Bedrock)、OpenAI API
連携Azure Functions(判定・検索・回答の順番と、引用の照合)Power Automate
文書検索Azure AI Search(ハイブリッド検索)Azure OpenAI の埋め込みと自前の全文検索の組み合わせ
画面Azure App Service(組合ポータルのチャット)組合の既存Webサイトへの埋め込み
保管Azure Blob Storage(条文の原本と会話の記録)組合の文書管理

Azure OpenAI を選ぶ理由は、組合が自分の契約で持てることです。 会社の Microsoft 365 にある Copilot を使えば手軽ですが、相談の記録が会社の管理者の見える場所に残ります。 組合のサブスクリプションに Azure OpenAI と検索を置き、組合が管理者になる構成にします。

検索は自前で行い、取り出した条文をプロンプトに入れます。 Azure OpenAI には自社のデータを直接つなぐ「持ち込みデータ」の仕組みがありますが、公式ドキュメントでは構造化出力は持ち込みデータのシナリオでサポートされていないとされています。回答を決まった形の JSON で受け取って根拠を照合したいので、Azure AI Search で検索し、その結果を回答の呼び出しに渡します。

Azure AI Search のハイブリッド検索は、全文検索とベクトル検索を1つの要求で並列に実行し、逆ランク融合(RRF)で結果をまとめます。 ベクトル検索は、文章の意味を数値の並びにして近いものを探す方式です。「産休」と書いた質問から「産前産後休暇」の条文に届くのはベクトル検索の側、「第32条」「別表3」のような番号や固有の語に正確に当たるのは全文検索の側です。協約の質問は両方が混ざるので、片方だけでは取りこぼします。

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

Step1

処理の起点を決める

組合員がチャット画面で質問を送信したときに動きます。 定時のまとめ処理にはしません。チャットの利点は返事の速さで、まとめて処理するとメールで聞くのと変わらなくなります。

ログインは組合員番号と、組合が発行するパスワードで行います。 会社のアカウント(会社の Microsoft Entra ID)でのサインインにはしません。会社のアカウントでサインインさせると、誰がいつ組合に何を聞いたかの痕跡が会社の管理する仕組みに残ります。 組合のテナントに組合員のアカウントを作るか、組合のポータルの独自の認証にします。

フォームとメールで届く質問も、受付の担当がチャットと同じ入口に貼り付けて流せるようにします。入口が複数あっても、判定と回答の仕組みは1つにします。 経路ごとに判定の基準が違うと、相談の拾い方がばらつきます。

Step2

入力データを集める

データ中身取得元
質問の文面組合員がチャットに書いた本文。同じ会話の直前のやり取りチャット画面
組合員の属性所属の支部、雇用区分(正社員・嘱託・パートなど)、共済の加入区分組合員名簿(氏名は渡さない)
労働協約本文の各条と別表。版ごとの効力の発生日と終了日共有フォルダの原本から作った検索の索引
組合規約組合費、役員選挙、大会、脱退などの各条同上
共済の手引き給付の種類、支給の条件、申請の期限と必要書類同上
担当の割り当て相談の種類ごとの担当役員と連絡先事務局が持つ一覧

質を決めるのは、雇用区分と版の日付の2つです。 協約は正社員と嘱託・パートで適用される条文が違うことが多く、雇用区分が無いと正社員の条文で嘱託の組合員に答えてしまいます。 版の日付が無いと、改定前の条文で答えます。

労働協約は、書面に作成し、両当事者が署名し又は記名押印することによって効力を生ずると労働組合法で定められています。 検索の索引に入れるのは、署名・記名押印が済んだ確定版だけにします。交渉中の案や、合意前の会社回答を入れると、まだ効力の無い条件を組合員に伝えることになります。

Step3

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

条文は、共有フォルダにある協約・規約・手引きのPDFから、条ごと・別表ごとに1件の文書として検索の索引に入れます。ページで区切ると、1つの条が2つに割れたり、別の条とくっついたりします。

取るものどこから何に使うか
条の本文原本のPDFを条単位に切ったテキスト全文検索とベクトル検索の対象
文書名・条番号・見出し条の先頭の行回答に示す根拠
効力の発生日・終了日協約の改定の記録現在有効な版だけに絞るフィルター
適用される雇用区分条文の適用範囲の記載と事務局の付記組合員の雇用区分での絞り込み
原本の場所共有フォルダのファイルとページ組合員が原文を開くためのリンク

検索の要求には、効力の日付と雇用区分のフィルターを必ず付けます。 Azure AI Search のハイブリッド検索は、フィルターやセマンティック ランク付けといったテキスト側の機能をベクトル検索と一緒に使えます。旧版の条文は索引から消さずに残し、フィルターで外します。 「去年はどうだったか」という質問に答えるときと、後から過去の回答を検証するときに必要になるからです。

別表は条とは別の文書として入れ、条から別表への参照を項目として持たせます。 「特別休暇の日数は別表2による」という条文だけが検索に当たっても、日数は答えられません。条が当たったら、参照先の別表も一緒に取り出します。

Step4

AIへ渡す前に整形する

  1. 個人の識別情報を分ける … 質問に氏名・社員番号・上司の名前が書かれていれば、回答の呼び出しには渡さず、相談の通知にだけ使います
  2. 長さを確かめる … 長すぎる質問は、要点を書き直してもらうよう案内します。相談の可能性が高いので、判定には全文を渡します
  3. 会話の文脈を付ける … 「それはパートでも同じですか」のような続きの質問には、直前の質問と回答を添えます
  4. 雇用区分と共済の加入区分を付ける … 名簿から引いて、検索のフィルターと回答の条件に使います
  5. 検索の語を整える … 「産休」「育休」「年休」のような略語に、条文の正式な語を添えます。略語の一覧は事務局が持ちます
  6. 同じ質問の連投をまとめる … 送信の二度押しや、言い換えての再送を1件として扱います

1番目を最初に置くのは、回答に個人を入れる必要が無いからです。 「特別休暇の日数」に答えるのに、誰が聞いたかは要りません。AIに渡す範囲を、答えるのに要る範囲に絞ります。

Step5

AIに処理させる

呼び出しは2回に分けます。 1回目は相談か質問かの判定、2回目は条文に基づく回答です。1回で両方をさせると、条文が手元にあるせいで相談にも条文で答えようとします。

呼び出しさせること判断できないときの扱い
①判定質問の文面だけを見て、question(文書で答えが決まる)か consultation(本人の事情の相談)かを決め、相談なら種類を付ける迷えば consultation
②回答渡された条文だけを根拠に答え、文書名・条番号・原文の引用を返す条文に答えが無ければ not_found

判定で consultation とする目安は、次のようなものです。

相談の種類例
ハラスメント上司の言動、職場での扱い
処遇・異動への不服評価、配置転換、昇格の見送り
懲戒・退職・解雇処分の通知、退職の勧め
賃金の計算違い自分の給与明細の残業代や手当が合わない
心身の不調休職、復職、体調と勤務の両立
共済の給付の可否自分のケースで給付が出るかの判断

最後の行は、文書の質問に見えて相談です。 「入院したら見舞金は出ますか」は手引きの条件で答えられますが、「この入院で出ますか」は共済の担当が書類を見て決めることです。一般の条件は答え、個別の可否は回す、と線を引きます。

させないこと理由
協約の解釈が会社と割れている事項への見解組合としての見解は執行委員会が決める
個別の労働契約が協約に反するかの判断協約の基準に反する労働契約の部分は無効と法律にあるが、当てはめは事実を聞かなければできない
条文に無いことの補い会社の就業規則や慣行を推測で答えない
交渉中の内容の説明確定していない条件を伝えない
相談への助言聞き取りと判断は役員が行う

2行目は特に起きやすい失敗です。 労働組合法には、労働協約に定める労働条件その他の労働者の待遇に関する基準に違反する労働契約の部分は無効とする規定があります。AIは「協約に反するので無効です」と言い切りたがりますが、その人の契約が実際にどうなっているかを、チャットの一文からは判断できません。

Step6

指示内容を固定する

①判定の呼び出し

あなたは労働組合の事務局で、組合員から届いた文面を仕分ける担当です。
回答はしません。仕分けだけをしてください。

【仕分けの基準】
- question ....... 協約・規約・共済の手引きの条文を読めば、誰にでも同じ答えが
                   返せる質問(日数、期限、金額の決まり、手続きの方法など)
- consultation ... 本人や職場の具体的な事情が書かれていて、事実の聞き取りや
                   組合としての判断が要るもの

【厳守事項】
- 迷ったときは consultation にしてください。question にしないでください。
- 制度の質問の形をしていても、本人が困っている事情が書かれていれば
  consultation です。
  例:「育休は取れますか。上司に取るなと言われています」は consultation。
- 共済の給付について「自分の場合に出るか」を聞いているものは consultation です。
- consultation のときは category を1つ選び、summary に事情の要点を
  3文以内で書いてください。本人の評価や推測は書かないでください。
- 心身の不調や、自分を傷つける考えが書かれているときは、
  urgent を true にしてください。

【文面】{message}
【直前のやり取り】{history}

②回答の呼び出し

あなたは労働組合の事務局として、組合員の質問に答えます。
下の【条文】に書かれていることだけを根拠にしてください。

【厳守事項】
- 条文に書かれていないことは答えないでください。会社の就業規則や
  慣行、一般的な法律の知識で補わないでください。
- 条文に答えが無いときは status を not_found にしてください。
- 回答に使った条文は、citations に文書名・条番号・原文の引用を入れてください。
  引用は条文からそのまま写し、言い換えないでください。
- 別表を参照している条文は、別表の値まで確かめてから答えてください。
  別表が渡されていなければ not_found です。
- 雇用区分が【組合員の区分】と合わない条文を根拠にしないでください。
- 協約と共済の手引きで似た言葉が出てきても、混ぜないでください。
  どちらの文書の話かを回答の中で明示してください。
- 「無効です」「違反です」「請求できます」のような判断を書かないでください。
- 回答は、組合員が読む文章として丁寧語で、300字以内にしてください。

【組合員の区分】{employment_type}/共済:{mutual_aid_type}
【質問】{question}
【条文】{retrieved_articles}

判定の側に「迷ったら consultation」を明記しないと、question に寄ります。 文面の多くは制度の言葉を含むので、言葉だけを見ると質問に見えるからです。相談を質問と取り違えた損失は、質問を相談と取り違えた損失よりはるかに大きいので、迷いの向きを指示で固定します。

回答の側で「言い換えないで写す」を求めるのは、後段で引用を照合するためです。 引用が原文に無ければ、回答は返さずに確認待ちに回します。

Step7

出力形式を固定する

①判定は次の形の JSON で受け取ります。

{
  "route": "question | consultation",
  "category": "harassment | treatment | discipline | wage_error | health | mutual_aid_case | other | none",
  "urgent": false,
  "summary": ""
}

②回答は次の形です。

{
  "status": "answered | not_found | ambiguous",
  "answer": "",
  "citations": [
    { "document": "労働協約 | 組合規約 | 共済の手引き",
      "article": "", "version_from": "", "quote": "" }
  ],
  "needs_staff": false
}

構造化出力を使うのは、後段の処理を機械で分岐させるためです。 Azure OpenAI の構造化出力は、指定した JSON スキーマに従った出力を返す仕組みで、Chat Completions API と Responses API の両方で使えます。route が consultation なら回答の呼び出しをせずに通知へ、status が answered 以外なら確認待ちへ、と文章を読まずに振り分けられます。

スキーマには制約があります。 公式ドキュメントでは、すべての項目を必須にし、オブジェクトには常に additionalProperties: false を設定するとされています。省略したい項目は、null との共用体の型で表します。文字列の長さや配列の要素数の制約(maxLength、minItems、maxItems など)はサポートされていないので、「回答は300字以内」「引用は1件以上」はスキーマでは縛れません。受け取った後に Azure Functions の側で数えて、外れたものは確認待ちに回します。

後段の条件行き先
route が consultation担当役員へ通知。urgent なら即時の連絡と相談先の案内
status が answered で、引用がすべて原文にある組合員へ回答
status が answered だが、引用が原文に無い事務局の確認待ち
status が not_found か ambiguous事務局の確認待ち。組合員には「確認して返信します」
回答が300字を超える、引用が0件事務局の確認待ち
Step8

システムへ連携する

つなぎ先方式内容
チャット画面Azure App Service の画面から Azure Functions を呼ぶ質問の受け取りと回答の表示
Azure OpenAIAPI呼び出し(構造化出力)判定と回答の2回
Azure AI SearchAPI呼び出し(ハイブリッド検索、フィルター付き)現在有効な版の条文を取り出す
組合員名簿読み取りのみ雇用区分と共済の加入区分
役員への通知組合のメールまたはチャット相談の種類・要点・緊急かどうか
確認待ちの一覧事務局の画面not_found と照合NGの回答

役員への通知に、相談の全文は載せません。 載せるのは種類と3文以内の要点と、事務局の画面で全文を開くためのリンクです。役員のメールが会社のメールである場合、全文を送ると会社のサーバーに相談の内容が残ります。 組合の連絡手段を使うか、リンクだけを送ります。

組合員名簿は読むだけで、書き込みません。 雇用区分が変わっていても、チャットからは直しません。

Step9

人が確認する

事務局が見るのは、確認待ちに入ったものと、毎日の抜き取りです。 条文で答えた回答をすべて承認してから返す設計にはしません。

  1. 緊急の相談を最初に見る … urgent が付いたものは、担当役員と書記長に同時に通知します。組合員への連絡は人が行います
  2. 確認待ちに返信する … not_found は条文に答えが無いもの、照合NGは引用が原文に無いもの。多くは、別表が索引に入っていないか、略語の一覧が足りていません
  3. 前日の回答から抜き取る … 1日20件程度を読み、条文と回答が合っているかを見ます。誤りがあれば組合員に訂正を送り、原因を記録します
  4. 相談の振り分けを見直す … question と判定されて回答されたもののうち、文面に事情が書かれていたものを探します

4番目を毎週続けてください。 相談を質問と取り違えた件は、組合員の側からは「組合に相談したのに条文を返された」という形でしか表に出ません。事務局が自分から探さないと、見つかりません。

目標は、600件をならして1件4分です。 確認待ちと相談が2割前後という想定で、それより多い月は、協約の改定が索引に反映されていないか、略語の一覧が足りていません。

Step10

例外に対処する

起きること対応
質問が安全方針で止まるハラスメントや心身の不調の相談は、内容によって入力の段階で止まることがある。エラーを捨てずに相談として役員へ回す
回答が安全方針で止まる出力が止まった回答は返さず、事務局の確認待ちへ
検索で条文が1件も当たらないnot_found として確認待ちへ。よくある語なら略語の一覧に足す
改定の効力の発生日の前後で質問が来る新旧両方の条文を取り出し、いつから変わるかを書いて答える
雇用区分が名簿に無い回答せず確認待ちへ。区分で条文が変わるため
交渉中の内容を聞かれる確定していない旨を返し、組合の報告文書の場所を案内する
組合員でない人が聞くログインで弾く。会社の人事や管理職からの質問は受けない
同じ人が短時間に大量に送る一定の件数で受付を止め、事務局に知らせる
Azure OpenAI が応答しない質問を保存して「後ほど事務局から返信します」と返す

1行目が、この構成でいちばん気を付ける例外です。 Azure OpenAI の既定の安全方針(DefaultV2)は、憎悪と公平性・暴力・性的・自傷の4つの区分について、入力と出力の両方で重大度「中」以上をブロックします。 入力が止まるとエラーが返ります。ハラスメントの具体的な言動や、つらい気持ちを書いた相談ほど止まりやすく、エラーを「処理失敗」として捨てると、いちばん急ぐ相談が誰にも届きません。 止まった質問は、判定を待たずに相談として扱います。

Step11

記録を残す

  • 質問の全文と、受け付けた日時・経路
  • 判定の結果(route、category、urgent、summary)
  • 検索で取り出した条文の ID と版、回答の JSON の全文
  • 引用の照合の結果と、確認待ちに回した理由
  • 事務局が訂正した回答と、その理由
  • 相談を受けた役員と、組合員へ連絡した日時

記録は組合のサブスクリプションの中に置き、会社の管理者が読めない場所にします。 保存の期間と、退会した組合員の記録の扱いは、執行委員会で決めて組合員に示します。

3つ目で条文の版を残すのは、協約が毎年改定されるためです。 後から「あのときの回答は正しかったか」を確かめるとき、当時有効だった版が分からなければ検証できません。

04実装レベルの3段階

最小構成:生成AIの画面に条文を貼り、事務局が質問を1件ずつ入れて回答の下書きを得る / 回答の下書きと、相談の見分けの補助
半自動化:上記+条文を検索の索引に入れ、事務局向けの画面で判定と回答案を自動で出す。返信は事務局が送る / 条文の検索、判定、回答案の作成
本格構成:上記+組合員が直接チャットで聞き、照合を通った回答はそのまま返し、相談は役員へ自動で回す / 質問への回答と、相談の引き継ぎまで

半自動化の段階で、少なくとも2か月は回してください。 組合員に直接返す前に、事務局が判定と回答案を毎回見ることで、相談の取り違えと、索引の抜けが先に見つかります。 1件12分は、半自動化で6分程度、本格構成で4分になる見立てです。 本格構成に進む条件は、相談の取り違えが続けて出なくなることです。 回答の誤りは訂正できますが、取り違えた相談は取り戻せません。

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

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

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

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

AI活用について相談する

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

向いている
  1. 組合員が千人を超え、専従の事務局が数名で、労働協約・組合規約・共済の手引きへの同じ質問に毎月何百件も答えている企業別の労働組合。協約の条文と共済の給付条件がPDFや冊子で整っており、改定のたびに版を差し替えられる場合。相談内容を会社側から見えない場所に置く運用を、組合として決められる場合。
向いていない
  1. 組合員が数十人で、委員長や書記長が顔を見て答えれば足りる場合。労働協約が書面になっておらず、慣行と口頭の確認で運用している場合。組合の情報基盤を会社の情報システム部門に預けていて、相談の記録を会社側の管理者が読める状態を変えられない場合。なお、協約の解釈が会社と割れている事項や、個別の紛争の見通しは、この構成では答えません。

07最小構成で試す方法

  1. 過去3か月に届いた質問から50件を選ぶ(うち10件は、個別の事情を含む相談を入れる)
  2. 組合の契約で使える生成AIの画面に、協約の目次と、よく聞かれる10条ほどの本文を貼る
  3. 50件を1件ずつ、「この文面は、条文で答えが決まる質問か、本人の事情の相談か。相談なら答えずに種類だけ書いてください」と聞く
  4. 質問と判定されたものについて、「貼った条文だけを根拠に、条番号と引用を付けて答えてください。無ければ『条文に無い』と書いてください」と聞く
  5. 判定と回答を、当時事務局が返した内容と突き合わせる

会社の業務用の生成AIでは試さないでください。 実際の質問を入れる以上、組合の契約の環境で行います。

出てきた内容判断
相談10件がすべて相談と判定され、質問の回答が当時と合う検索と構造化出力の連携に進む
相談の一部が質問と判定された判定の指示の書き方で直る見込み。迷いの向きを指示に足して取り直す
貼っていない条文の内容まで答えた根拠の制約が効いていない。引用の照合を必ず組む

2行目が出ることは珍しくありません。 失敗ではなく、事務局が普段どの言葉で相談を見分けているかを書き出すきっかけになります。

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

問題対策
相談に条文で答えてしまう判定を検索より先に置き、迷ったら相談にする
改定前の条文で答える効力の日付のフィルターを検索に必ず付ける
正社員の条文で嘱託・パートに答える雇用区分を名簿から引き、フィルターと指示の両方に入れる
条だけ当たって別表の値が無い別表を別の文書にし、条から参照を辿って一緒に渡す
協約と共済の手引きの言葉を混ぜる回答にどちらの文書かを明示させ、引用で確かめる
条文に無いことを就業規則の知識で補う根拠の制約と、引用の照合で止める
「無効です」と言い切る判断の語を禁じ、抜き取りの確認で探す
相談の入力が安全方針で止まり、消えるエラーを相談として役員へ回す
回答の長さ・引用の数をスキーマで縛れない受け取った後に数えて、外れたものを確認待ちへ
持ち込みデータで組んで構造化出力が使えない検索は自前で行い、結果をプロンプトに入れる
会社のアカウントでログインさせてしまう組合のアカウントで認証する
交渉中の案が索引に入る署名・記名押印の済んだ確定版だけを入れる

上の1行目と、下から4行目が、この構成の失敗のほとんどです。 どちらも、相談がいちばん届いてほしい人に届かなくなるという同じ結果になります。

下の2行は、技術の問題に見えて組合の信頼の問題です。 会社に相談が見えているかもしれない、まだ決まっていないことをチャットが言った。一度そう受け取られると、チャットは使われなくなります。

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

この構成で扱うデータ: 組合員の質問と相談の内容、所属・雇用区分・共済の加入区分、そして相談に書かれる職場の人間関係、心身の状態、処遇への不満です。

  1. 相談の記録を会社から切り離す … 組合のサブスクリプションに置き、組合が管理者になります。組合員が組合に何を相談したかは、会社に知られてはならない情報です
  2. AIに渡す範囲を答えに要る範囲に絞る … 回答の呼び出しには氏名を渡しません。相談の要点も、役員への通知には3文以内にします
  3. 相談に答えさせない … 聞き取りと判断は役員が行います。AIは仕分けと引き継ぎまでです
  4. 組合としての見解を出させない … 協約の解釈が会社と割れている事項は、執行委員会が決めることです。この構成が答えるのは、条文に書かれていることだけです
  5. 緊急の相談は人が連絡する … 心身の不調や、自分を傷つける考えが書かれたものは、自動の返信で済ませません。担当役員がその日のうちに連絡します
  6. 安全方針の挙動を、組合員の実際の文面で確かめる … 公式ドキュメントでは、分類のモデルには誤検知と見逃しがあり、実際の利用の内容で評価するよう求めています。過去の相談の文面(本人の同意の範囲で)で、止まるものと止まらないものを確かめてください
  7. 確定していない条件を伝えない … 索引に入れるのは確定版だけにし、交渉の経過は組合の報告文書で伝えます

誤りが起きた場合のリスクは、誤った条件を伝えることと、相談を取りこぼすことの2つです。 前者は訂正で取り戻せますが、後者は取り戻せません。だから判定は迷ったら相談に倒し、止まった入力も相談として扱います。

10まず何から始めるか

1週目:決めごとを執行委員会で決める

相談の種類と担当役員、記録を置く場所と残す期間、会社に見せないための認証の方式を決めます。ここが決まらないうちは、仕組みを作り始めません。

2週目:50件で試す

過去3か月の質問から50件(うち相談10件)を選び、組合の契約の生成AIで判定と回答を試します。相談がすべて相談と判定されるかを最優先で見ます。

3週目:協約を条単位に切る

協約・規約・共済の手引きを条ごとに分け、別表を切り出し、版の効力の日付と適用される雇用区分を付けます。 略語の一覧も作ります。

4週目:事務局向けの画面で回す

検索の索引と2回の呼び出しをつなぎ、事務局が届いた質問を貼ると判定と回答案が出るところまで作ります。この時点では組合員に直接返しません。

2か月目: 引用の照合と確認待ちの一覧を足し、相談の取り違えを毎週数えます。3か月目以降: 取り違えが続けて出なくなったら、組合員向けのチャットを一部の支部で開きます。協約の改定のたびに索引を差し替える手順が、書記長以外でも回るようになった時点で、この構成は完成です。


11関連ユースケース

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

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

技術仕様確認日:2026-10-26/最終更新:2026-10-27
確認した内容情報源確認日
労働協約は書面に作成し、両当事者が署名し又は記名押印することによって効力を生ずること(第14条)。3年を超える有効期間の定めができないこと(第15条)。労働協約に定める労働条件その他の労働者の待遇に関する基準に違反する労働契約の部分は無効とすること(第16条)e-Gov 法令API: 労働組合法2026-10-26
構造化出力が JSON スキーマに従った出力を返し、Chat Completions API と Responses API の両方で使えること。すべての項目を必須にし additionalProperties: false を設定すること。minLength・maxLength・pattern・format・minItems・maxItems などがサポートされないこと。持ち込みデータのシナリオでは構造化出力がサポートされないことMicrosoft Learn: Azure OpenAI で構造化出力を使用する方法2026-10-26
既定の安全方針(DefaultV2)が憎悪と公平性・暴力・性的・自傷の4区分について入力と出力の両方で重大度「中」以上をブロックすること。入力が止まるとエラーが返ること。分類のモデルに誤検知と見逃しがあり、実際の内容で評価するよう求めていることMicrosoft Learn: Default safety policies2026-10-26
ハイブリッド検索が全文検索とベクトル検索を1つの要求で並列に実行し、RRF で結果をまとめること。フィルターやセマンティック ランク付けと併用できることMicrosoft Learn: ハイブリッド検索の概要2026-10-26

協約の解釈や個別の相談への対応は、組合の執行委員会と担当役員で決めてください。 本記事は公開されている法令と製品の仕様で確認できた範囲だけを扱っています。

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

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

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

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