見出し画像

メンバーからの勤怠報告をAIでラクにしてみたら意外な気づきがあった話


はじめに


こんにちは。SHIFTの森川です。
現役エンジニア兼マネージャーをしています。

多重管理をAIの力で解決を試みたところ、意外な気づきがあったのでシェアします。シェア風ゆる自慢として、軽~く読み流していただければです。

きっかけ


予定休や、体調不良の連絡と共有はとても大切だが、それを手軽にする手立てがなかった。

部内のコミュニケーションはMicrosoft Teamsに大きく依存しており、勤怠の報告もTeamsに投げてもらっている。別途ファイルへの記載も必要で、本流の勤怠管理システムへの申請も入れると最低4重になる多重管理が悩ましい。

スレッドへの報告をデータ化して、来たる当日に誰が休みなのかを周知してくれたら良いのだが、業務ツールやOutLookの予定はあるものの、さっと見れるところにないし、さっと見れもしない。どうにかならないものか?

現役エンジニア兼マネージャーとしては技術の力でなんとかしたい。

きっとこんな感じだろう。

ということでやってみた

まず、勤怠報告CHのメッセージ投稿をトリガーにして、LLMで予定を正規データ化する仕組みを作る。

正規化したデータはこんな感じ

{
  "email": "...",
  "client": "Tomoo Morikawa",
  "date": "2024-04-28",
  "category": "有給休暇"
}

メッセージの返信と同時にクラウド上のExcelファイルに氏名、日付、休暇種別などの情報が記載される流れだ。

LLMなので書き方・フォーマットをとわず、意味を汲み取ってくれるところがポイントだと思う。

柔らかく書いてもちゃんと理解してくれる。

ワークフローはPowerAutomateで組んだ。DevUX的には少し苦手なのだが、MSプロダクトまわりのフローを組むなら手っ取り早いのでついつい採用してしまいがち。

LLMとの接続は、以前試験用に立ち上げたプロンプトを投げたらよしなにjsonを返してくれるWeb APIを流用している。

プロンプトはこんな感じ

## 指示
- Please calculate the vacation dates from the following message.
- 有給休暇か、半休(午前、午後)、または病気看護休暇のいずれかであることをメッセージから判定しなさい。それをカテゴリとして返しなさい。
    - いずれにも当てはまらない場合はNullを返しなさい
- "出社勤務""拠点出社"といったワードは、勤務場所を意味しており、休暇とは関係しないことに注意してください。
- "午後休"は半休(午後)をあらわします。
- "午前休"は半休(午前)をあらわします。
- Output format should be Json
- Please use array data.
- If no year is specified in vacation_date, apply the current year.

## メッセージ
{{Teams Message}}

## 出力形式

\```
[
    {
      "email": "value",
      "category": "有給休暇",
      "vacation_date": "yyyy-mm-dd"
    }
]
\```

朝会メッセージへの投稿


数年前からチームの朝会スレッド用に、挨拶文を自動投稿している。

マネージャーとして毎日、確実に同じ時刻にみんなにメッセージを届けるための当然の自動化、可用性の担保だと思っている。

投稿には時節や曜日、天候情報を交えて鼓舞メッセージをランダムに生成する自作APIを使っている。

挨拶文を自動生成するAPIを書いて公開してみた|t.morikawa

この自動投稿に反応して、上述のExcelファイルから当日に関わるメンバー休暇情報を取得して、投稿している。

ここでもPowerAutomateを採用している。(ワークフローは省略)

以下は私が夏季休暇で瀬戸内の小さな島でバカンスしていたときのもの。

休暇中の私(のbot)がメッセージを投稿してスレッドを立て、私の休みをリプライしている。自作自演も甚だしい、レトロフューチャー感。

運用してみて


メンバーからは「単純に便利」、「半休にも対応してほしい」という声をいただいているが、何よりも問い合わせが殆どないことが特筆点だと思う。
通常この手の仕組みで変更を加えて「今後こうしますので、従ってください」のあとには必ずQ&Aが発生するもの。
従来どおりの運用で、LLMが裏でデータを正規化してくれているので、メンバーの移行負荷が少なかったのでは?と予想している。

また報告スレッドにはコミュニケーションの意味あいも多分にある。体調不良の方とのやり取りや、休みを受けた業務調整、この会話はデータ化とは別軸でセンシティブなものである。その会話の邪魔になってないのも良い点だろう。
このあたりのメリットに、AI時代のユーザビリティとはなんたるかを感じた。

大げさかもしれないが

「いかに自然言語を正規データに変換して、人間には今まで通り自然な会話をしてもらうか。」

そういうことを主眼においたインターフェイス設計が、これからの身近なAI活用のグッド・プラクティスなのかもしれない。

欲は高まる


この仕組みについて社内SNSでつぶやいたところ、少しだけバズって驚いた。みんな同じことに悩んでいるんだ。 その後、幾名からご相談をいただく機会があり、他の部署の困リごとを聞いて試したいことが出てきた。

  • 複数部署への水平展開

    • PowerAutomateではなく、MicroSoft Graph APIで上手にカプセル化したい

  • 言霊はテキストへ

    • デイリースクラムを録音して朝会スレッドに自動投稿したい

  • 問い合わせはAIが整理

    • Microsoft Formsからの送信データにカテゴライズ、重要度等をLLMでメタ情報を追加してから問い合わせDBへ

  • エンジニアの怠惰をイノベーションへSHIFT!

    • Teamsスレッドから建設的な意見をフィルターしてVotingツールへ自動投稿

近いうちいずれかには着手してみたいと思う。
気が向いたらレポート書きます。

そんじゃーね☆彡

弊社ではAI関連サービスのメニューを揃えています


AIシステムの品質に不安を感じていませんか?
弊社のAI特化型品質保証サービスは、独自のフレームワークでAIの機能性や性能、安全性を徹底的に検証します。
学習結果の妥当性評価やリスク分析、テスト支援を通じて、信頼性の高いAIシステムを実現します。
AIの導入や運用における課題を解決し、ビジネスの成功をサポートします。詳細はこちらをご覧ください。


執筆者プロフィール:森川 知雄
中堅SIerでテスト管理と業務ツール、テスト自動化ツール開発を10数年経験。
SHIFTでは、GUIテストの自動化ツールRacine(ラシーヌ)の開発を担当。
GUIテストに限らず、なんでも自動化することを好む。趣味は音楽とオルタナティブと、同社社員の「ろくろをまわす」写真を収集すること。 さまざま案件で自動化、効率化によるお客様への価値創出を日々模索している。2021年からは技術イベントSHIFT EVOLVEを始動。

お問合せはお気軽に
https://service.shiftinc.jp/contact/

SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/

SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/

SHIFTの導入事例
https://service.shiftinc.jp/case/

お役立ち資料はこちら
https://service.shiftinc.jp/resources/

SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/

PHOTO:UnsplashSteve Johnson