シフト編成 AI システム ご案内

本資料は、シフト編成を AI で自動化する本システムについて、「どんなデータを入力に使うか」・「どのように処理するか」・「何が出力されるか」を 3 章でご説明します。エンジニア以外の方にもご理解いただけるよう、平易な表現で記載しています。
目次

1. 入力データ一覧(API 開放のお願い)

本システムは、以下 8 種類のデータをご提供いただくことで、日々のシフト編成を AI で自動化します。Rinks の API から定期取得できる形でご提供いただけますと幸いです。

データ名 利用カラム 用途
エリアマスタ area_id / area_name / is_delete スタッフの所属拠点の判別。本資料では area_name が「本社」のレコードに紐づくスタッフを対象とします(Mono/菱東産業様間 QA 合意事項)
ユーザーマスタ user_id / area_id / user_name / short_name / last_name / first_name / is_delete スタッフ基本情報の名寄せ・所属判定
作業依頼 作業依頼No / 依頼区分1通常2手戻り3手直し / 作業日程 / 物件名 / 集合時間 / 朝礼時間 / 終了時間 / 作業員数 / 備考 / 職長名 / Nexus製品タイプ / Nexus製品名 / 製品名 / 基本U / 動力U / 室内機 / 室外機 / 機器形名連絡事項 「いつ・どこで・どんな作業を・何人で」の依頼情報
スタッフ情報(スキルマップ) ユーザーID / 取得資格 / 入社日 / 技能ステータス 入社日・保有資格・技能ステータスの参照
シフト情報(カレンダー) 対象日 / 開始時刻 / 終了時刻 / 終日フラグ / シフト名 / ユーザー名 / 作業依頼No スタッフごとの既存予定(休暇・別案件)の把握
作業報告書 作業者氏名 / 機器形名1 / 機器形名2 / 機器形名3 / 機器形名4 / 機器形名5 / 機器形名6 / 機器形名7 過去にどの機器を担当したかの実績参照
評価照会 評価対象 / 作業依頼No / 回答1 / 回答2 / 回答3 / 回答4 / 回答5 / 回答6 営業担当者から技術スタッフへの評価アンケート結果
現場の安全配慮情報 物件名 過去の安全記録を参考に、適切なスタッフ配置を行うためのデータ

API 仕様のお願い

2. 処理の流れ

本システムは入力データを受け取り、AI とプログラムの判定を組み合わせて、各作業依頼に最適な 2 名(職長役と一般役)を選び出します。流れは以下の通りです。

全体の流れ

各ステップの補足

② 候補スタッフの絞り込み(5 条件) ― 物理的に作業ができないスタッフを最初に除外します。

  1. 本社所属である(ユーザーマスタの所属エリアが、エリアマスタ.xlsx で「本社」に該当するかどうかで判断)
  2. 技能ステータスが有効である(休職・退職等を除く目的)
  3. 作業に必要な資格を保有している(※ 本実証では作業依頼側に「必要資格」項目がないため判定枠のみ用意。本番連携で当該項目を API 提供いただいた時点で有効化)
  4. 当日が休暇シフトではない
  5. 他のシフトと時間帯が重なっていない

③ 適性スコアの算出(6 軸) ― 残った候補に対して、6 つの観点で 0.0〜1.0 の点数を付けます。最終的に重み付け合算して総合スコアを出します。

  1. スキル適合度:依頼の機器情報とスタッフの保有スキルが合っているか(AI が判定)
  2. 経験年数フィット:入社日からの経験年数が依頼内容に見合っているか
  3. 過去実績:同じ種類の機器を過去に担当した回数
  4. 移動効率:同日の他シフト数を「移動負荷」の代理指標として評価
  5. 稼働バランス:その週のシフト数に偏りがないか
  6. 過去評価:営業からの評価アンケート(6 項目)の加重平均

AI とプログラムの役割分担

本システムでは、「意味を理解する処理」は AIに、「ルールに従う数値計算」はプログラムに分担させています。
AI が一時的に応答しなかった場合の挙動:スキル適合度とアサイン理由の自動生成は空欄になりますが、ハード条件チェックと残り 5 軸の計算はプログラム側で必ず動作するため、物理ルールを破った結果が出力されることはありません。

3. 出力内容

処理結果は次の 3 ファイルとして出力されます。

ファイル名内容
assignments.csv 人間が Excel で開いて確認するためのファイル(日本語ヘッダ、UTF-8 BOM 付き)。本資料の以下の表が、このファイルの列構成になります。
assignments.yaml 機械可読形式。他システムとの連携や自動処理に利用できます。
metadata.yaml 実行条件(実行日時、対象作業依頼の範囲、使用 AI 等)と入力データのサマリ。結果の再現性確保のために添付されます。

assignments.csv の列構成

#列名内容
1作業依頼 No入力された作業依頼の識別番号(そのまま引き継ぎ)
2警告候補者不足や AI 算出失敗が発生した場合のタグ
3作業日入力情報の引き継ぎ
4物件名入力情報の引き継ぎ
5機器情報入力情報の引き継ぎ
6必要人数入力の依頼人数(通常 2 名)
7スタッフ ID選出されたスタッフの ID
8スタッフ名選出されたスタッフの氏名
9役割「職長」または「一般」
10総合スコア6 軸を重み付け合算した最終点数(0.0〜1.0)
11スキル適合度機器とスキルの合致度(AI 判定、0.0〜1.0)
12経験年数フィット経験年数の点数
13過去実績同種機器の担当回数の点数
14移動効率移動負荷の点数
15稼働バランス当該週のシフト数による偏りの点数
16過去評価営業からの評価アンケート 6 項目の加重平均
17アサイン理由AI が生成した日本語の選出理由
18実職長(正解)過去実績との比較用(精度評価のため)
19一致度過去実績との一致割合(精度評価のため)

精度評価のための 4 つの指標

出力結果を集計し、本システムが期待通りの精度で動作しているかを次の 4 指標で評価します。

指標名意味本実証における目標値
完全一致率 AI が選んだ職長役が、過去実績の職長と一致した割合 30〜50%
部分一致率 AI が選んだ 2 名のいずれかに、過去実績の職長が含まれた割合 50% 以上
制約違反率 物理ルール(時間・資格等)を破った結果が出力された割合 0%(必達)
スキルカバー率 スキル適合度 0.7 以上の候補が見つかった割合 80% 以上

入力データと出力結果の対応関係

下図は、ご提供いただく入力データが、出力 CSV のどの列に反映されるかを示した対応図です。

※「現場の安全配慮情報」から処理ブロックへの矢印は破線で示しており、補助的に参照されることを表しています。