AI愛子設計ログ15 予定表のネットワーク管理

続きです。全てのシリーズはこちら
※本記事は「技術解説編」です。先に公開したユーモア中心の「おちゃらけ版」とは若干時系列が異なるため、シリーズでお読みいただくと理解が深まるかと思います。

おちゃらけシリーズの予定表シェアを技術解説

愛子と「あ、そうだ、できない?」「できますよ」で、非常に簡単に作ってしまった予定表管理システムを技術解説します。

構想を得てから数時間で完成。つまらない機能追加には時間がかかるくせいにこういったコアなプログラムはあっさりできたりします。

これもソフトウエアあるあるです。

「予定表」とラインに打ち込むだけ

最新の予定表がスマホで確認ができる。
今回は、LINEメッセージで、クラウドから呼び出す仕組みについて解説します。

■FastAPIで構築した「予定表返信システム」の仕組み

この仕組みは、FastAPIベースのWebサーバーとGoogle Driveを使えば簡単に実装できました。

システムは、主に以下の3つの要素から成り立っています:

– LINEのBot機能(Messaging API)
– FastAPIによるWebhook受信・応答サーバー
– Google Driveに置いたPDFファイル

職人がLINEで「予定表」とだけLINE愛子botに送信すると、そのメッセージはLINEプラットフォームを経由してサンネームが構築しているFastAPIのサーバーに届けられます。
サーバー側のPythonコードで、受け取ったメッセージから「予定表」とだけ書かれた内容であることを確認すると、事前にGoogle Driveに保存されている予定表のリンクを、LINEのFlex Message(フレックスメッセージ)という応答フォーマットを用いて返します。

Flex Messageは、LINEのメッセージ上でテキスト・画像・ボタンなどを自由にレイアウトできる方式で、LINEの公式UIコンポーネントの中でも特にカスタマイズ性が高いものです。
今回の実装では、予定表ファイルの一覧をタイトル名で並べ、それぞれに「開く」ボタン(URIAction)を付けたFlex構造を動的に生成しました。

職人はLINE上で視覚的に整理された予定表リストを受け取り、ワンタップで目的のファイルへアクセスできます。

■Google Drive側の準備と設計

予定表はPDF形式で作成し、Google Driveにアップロードします。この際、ファイルの「共有設定」で従業員の認証メールアドレスを登録しておきます。これにより認証されていない人から読まれるのを防ぐことができます。

Google DriveではフォルダのIDを決めることが出来、これを事前に指定フォルダとして登録しておけば、予定表を差し替えても、職人が問い合わせるたびにそのフォルダの中のファイルを検索しリスト化し、リンクを含めてフィードバックすることができます。

これにより、LINE側では「予定表」と返すだけで、常に最新ファイルにアクセスできるという非常にシンプルかつ有効的な機能が実現します。

■FastAPIの役割と処理の流れ

FastAPIは、Pythonベースの軽量で高速なWebフレームワークです。この仕組みでは、LINEからのWebhook(HTTP POSTリクエスト)を受け取るためのAPIエンドポイントを提供しています。

処理の流れは次の通りです:

– LINEのBotに対して、ユーザーが「予定表」と送信する
– LINEはそのメッセージをWebhookとしてFastAPIのエンドポイントに送信する
– FastAPI側では、LINEの署名ヘッダーを検証し、正当なリクエストであることを確認する
– メッセージ本文に「予定表」というキーワードが含まれていれば、あらかじめ設定されたGoogle DriveのPDFファイルURLを組み立てて、LINEの「Reply API」を使って返信する
– ユーザーのLINE画面に、Google DriveのPDFリンクが送られ、タップすることでスマホ上で予定表が確認できる

■セキュリティ設計とリスク回避

このシステムはシンプルな構成ゆえ、セキュリティのポイントを押さえることが重要です。

– Google Driveのファイルは「閲覧専用」かつ「リンクを知る人のみに限定」
– FastAPIでは、LINEの署名を必ず検証し、偽装リクエストをブロック
– さらに、ログには個人情報やファイルURLを出力しないよう制限しておくと、万が一の漏洩にも備えられます。

■将来的な拡張可能性

このシステムは次のように拡張予定です。

– スケジュールやタスク管理をExcel作成から「Googleカレンダー」に移管。
– LINE愛子botや、工場長、工場長へのメール、担当者からの申請で愛子が自分で日程管理
– 職人は「予定表」と打つだけでAIがこの職人に必要な日程情報をまとめて進捗の報告や次の作業への指示を行う
– スマホでの印刷や保存を前提としたレスポンシブデザインのPDF生成(WeasyPrintなど)

■この仕組みがもたらす業務効率化

今回のシステムは、ほんの数時間で構築可能なほどシンプルですが、その効果は絶大です。紙の回覧板が不要になり、「最新の予定は?」「予定がわからない」という質問が激減できます。

また「紙の印刷」という所謂物理的コスト、作業コストの削減。
これら作業を削減できるということは更新頻度をいくらでもあげられるということです。

スマホさえあれば、職人でも若手でもリアルタイムで最新の予定が確認できます。

しかも、FastAPI+Google Drive+LINEという構成は、無料〜低コストで導入可能なうえに、保守運用も非常に軽い。

まさに「小さな仕組みで、現場のDXが一歩進む」好例です。

次は、スマホを忘れた職人の救済措置についての検討を報告します。


コメント

コメントを残す