前回は、WordPressのプラグインエラーに苦しみながらも、GASを使ってブログ87記事をDifyに全記憶させることに成功しました。
前回の記事:【Dify実践】WordPressのプラグイン全滅エラーを突破!87記事をGASで全記憶させる最強ルート |
現場仕事の皆さん、帰宅後の「在庫チェックと発注」に追われていませんか? 今回は、スマホに話しかけるだけで在庫表が更新され、足りなくなればAmazonのURLまで出してくれる**「自分専用の在庫管理AI」**を自作しました。
現場仕事や個人事業主の皆さん、毎日の作業が終わった後の「在庫チェックと発注作業」、面倒くさくないですか? 「あ、ワックスがもう無い。Amazonで頼まなきゃ…」と現場で思ったのに、家に帰る頃にはすっかり忘れていて、次の現場で絶収する。私は何度この失敗を繰り返したか分かりません。
「現場の帰り道、『ワックス1本使ったよ』とスマホに話しかけるだけで、勝手に在庫表が更新されて、足りなくなったら発注URLを出してくれる秘書が欲しい…!」
そんなズボラな夢を叶えるべく、今話題のAIツール「Dify」と、Googleの無料ツール「GAS(Google Apps Script)」を連携させて、完全自動の在庫管理AIボットを自作してみました!
今回は、私がハマったAI特有の「落とし穴」と、それを突破してシステムを完成させた全手順(コピペOKのコード付き!)を公開します。
第1章:AIは「引き算」が苦手!?最初の落とし穴
最初は、Dify(AI)に「ワックスを1個使ったよ」と伝えて、AIに今の在庫数を計算させようとしました。
しかし、ここで重大な壁にぶち当たります。 AIは言葉を理解するのは天才的ですが、「今、倉庫にワックスが何個あるか」という現在の数字を知らないため、正確な引き算ができないのです。
「カビ取り剤を1本使い切ったわ」と伝えると、AIは「なるほど、在庫は1だね!」と勘違いし、まだ3本あるはずの在庫を勝手に「1」に上書きしてしまうというポンコツぶりを発揮しました。
さらに、プログラミング未経験の私に容赦なく襲い掛かる Cannot read properties of undefined という謎の赤いエラーメッセージ……。心が折れそうになりました。
第2章:大逆転の発想!「言葉はAI、計算はGAS」の最強タッグ
「AIに全部やらせようとするからダメなんだ!」
そこで私は役割分担をすることにしました。
- Dify(AI)の役割: 人間の曖昧な言葉(「お風呂のやつ1本なくなった」など)を聞き取り、「強力カビ取り剤」と「1」という綺麗なデータ(JSON)に変換する。
- GASの役割: Difyから数字を受け取り、スプレッドシートの「今の在庫」から引き算をして、足りなければアラートを出す。
この作戦が見事にハマりました!
第3章:コピペで完成!全自動在庫管理システムの作り方
STEP 1:Googleスプレッドシートで「在庫マスター表」を作る
まずは、すべての基準となる表を作ります。1行目に見出しを作り、2行目以降に普段使っている資材を登録します。
- A列:資材名(例:床用ワックス)
- B列:現在の在庫数
- C列:アラート基準(※この数字以下で警告)
- D列:発注URL(Amazonのリンクなど)

STEP 2:GAS(Google Apps Script)に裏方の計算を任せる
スプレッドシートのメニュー「拡張機能」から「Apps Script」を開き、以下のコードをコピペします。
▼ コピペ用:引き算&発注アラートGASコード
JavaScript
function doPost(e) {
var data = JSON.parse(e.postData.contents);
var targetItem = data.item;
var usedAmount = data.used_amount;
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var lastRow = sheet.getLastRow();
var items = sheet.getRange(2, 1, lastRow - 1, 4).getValues();
var message = "資材が見つかりませんでした。";
for (var i = 0; i < items.length; i++) {
var itemName = items[i][0];
if (itemName === targetItem) {
var currentStock = items[i][1];
var newStock = currentStock - usedAmount; // ここで引き算!
if(newStock < 0) newStock = 0;
sheet.getRange(i + 2, 2).setValue(newStock);
var alertLine = items[i][2];
var orderUrl = items[i][3];
if (newStock <= alertLine) {
message = targetItem + "を" + usedAmount + "個使いました。\n現在の在庫は「" + newStock + "」です。\n⚠️発注ラインを下回りました!👉 " + orderUrl;
} else {
message = targetItem + "を" + usedAmount + "個使いました。\n現在の在庫は「" + newStock + "」です。まだ余裕があります!";
}
break;
}
}
return ContentService.createTextOutput(message).setMimeType(ContentService.MimeType.TEXT);
}

STEP 3:Difyで「聞き取り専用AI」を作る
Difyで「開始 → LLM → HTTPリクエスト → 回答」というフローを作ります。 LLMのプロンプトには、スプレッドシートのA列と一言一句同じ「資材マスターリスト」を書き込むのが、AIの聞き間違いを防ぐ最大のコツです!

第4章:現場で「片手操作」を極めるための秘策
システムができたら、次は「現場でいかに楽に使うか」が勝負です。 現場仕事の合間に、いちいちキーボードで文字を打つのは大変ですよね。そこで私は、**「マイクボタン1つで入力を完結させる」**設定を取り入れました。
「マイクボタン」をオンにして、3タップで完結!
Difyの設定画面(スタジオ)の右上にある「機能」メニューから、「音声入力(Speech-to-Text)」をオンにしておきましょう。すると、スマホでアプリを開いた際、入力欄にマイクアイコンが出現します。
現場作業が終わったら、スマホでこの画面を開き……
- マイクアイコンをタップ
- 「ワックス1本使った」と話す
- 送信ボタンをタップ
このわずか数秒の動作だけで、重たい洗剤の在庫チェックが完了。フリック入力で指を疲れさせる必要はもうありません!

まとめ:自分の仕事の悩みをAIで解決する快感
プロのエンジニアに外注すれば何万円もかかるような業務システムが、Difyと無料のGoogleツールを組み合わせるだけで、プログラミング未経験の49歳にも作れてしまいました。
AI学習の最大のモチベーションは、「自分の毎日の面倒くさい作業が、劇的に楽になること」だと実感しています。
もっと多くの人が業務がかなり時短になった!とういうアプリを作れるようになるまで
頑張って精進していきたいと思います。次回も是非、お楽しみに!


コメント