見出し画像

③Prolog風に書くと業務課題を解く生成AI(日本語7行のアプリ)

この内容は生成AIで自動的にプログラムを書いて貰う話ではない。日本語をそのまま動かすプログラムの試みである。Python使うとインストールしないといけないでしょ? 油断するとPythonコードを勧めてくるので「Pythonを使わないでください」という無駄なプロンプトで貴重な貴重な1行を費やす。

なぜ、日本語でプログラミング? 面倒くさいからだ。
私は楽して暮らしたいのだ。

実際に生成AIの日本語プロンプトだけで動く業務課題アプリ(スケジューリング系ですね)を作ってみた。構造上は出来ると思っていたが、やはり何の問題も無い。ただ、目の前に起きてる事を上手く表現できない。。。
Excelで言うとSumIf関数とIf文の嵐と… セル関数だけではとても書けない。

あれだな。

魔法はイメージの世界。イメージできない魔法は使えない。

まずはアプリの難易度。普通ならExcelマクロで組むが、私のレベルで仕様で1日、コードで2日、デバッグで2日、リリースしたら

作業者に嫌がられて使われないという感じ

だ。間違いない。だからマクロは辞めた。良かった。

今回は
生成AIでやりますけど、どうですか?」
「触った事ないわ〜(???)」
「そうですよね〜」という方を相手に、
・あさイチで生成AIを触ってもらうとノリノリ。
・面白そうだから速く作って!と催促。(こんな事はまず無い)
プロトタイプに20分。
実際の仕様を2時間。
機能拡張要望が初日に出て2時間。(普通は初日に触ってくれない)
一応、立ち上げは終わった。。。なんだこれ。
何しろ時間が無かった。本当に助かった。

プログラム?は、最初はダラダラ日本語で書いてたけど一向に思ったとおりに動いてくれないので、削っていくと7行になった。
Mathematica並に短い。。。


そのままは載せられないけど、イメージプロンプト(プログラム)はこんな感じでサラサラ書けばいい。

今日は8/30日です。
品目Aは量が100で9/1日、品目Bは量が250で9/2日、品目Cは量が350で9/3日の発送です。
処理可能な工場は工場1、工場2、工場3で1日あたりのキャパは150,80,120です。
なるべく各工場に均一に配分して、
1日あたりの作業量が均一になるように配分したいです。
品目A、B、Cをどの比率で工場1、工場2、工場3に振れば良いでしょうか?
ただし、同じ品目はなるべく同じ工場に集中させたいと思います。

これは私が現場教育用に作ったサンプル

動きも120行のデータを読ませたけど、全部で3工程くらいがトータル20秒位で動いてくれて作業者に好評。何よりもインタラクティブな動きをするのが良かったらしい。

書き方? 普通にやりたい事を書いてるだけで、特に何も。。。

って言ってもそうじゃないんだろうなあ。私は書けちゃうからわからないんだよ。敢えて言うとこれは圏論では?
Excelからデータを張り込んでオブジェクト、
射を書いて圏、
関手が日本語のプロンプトで7行。
CHR-Prologを触った時に一番感覚としては近い。

というのも、生成AI上でデータを新規作成させた時の動作が、PrologAssert関数に極めて近いから。これもなんて説明したら良いのかよく分からない。

さあ、私も何が起きてるのか知りたいんだから、頭がいい人は早く解説書出してよ、頼む。

「現場改善を生成AIで」


〈思い出したこと〉

生成AIで元のデータ①を加工してデータ②を作る。すると生成AIは
「データ表示して」 と何気なく頼むと、
本当はデータ②が欲しいのに、データ①を使ったり。
こっちが厳密に指定すればいいんだけれど。

全般的なコツとしては、いきなりやりたいことを全部頼むと頭がバンクしてPythonを使ってくれと言い出すので、こまめに簡単な質問で繋げていくこと。例えばピボットテーブル作ってこの条件下で最大値出してくれとか言うとPythonに逃げるので、1ステップずつやってもらう。

例えば100行のデータをピボットテーブルにも出来るのだが、たいていは計算を間違える。そこで「データ参照用の元データ」「ピボット計算済みデータ」を与えて、2つのデータにはきちんとキーコードを埋め込んでおけば勝手にルックアップはしてくれる。リレーションを頼むと、今度は「それはSQLにやらせて」とゴネてくる。それを、なだめすかす。

面白いのは計算した結果と元のデータが区別がつかずに混同してくることがあるので、「データ①を使って、これをやって」とか、ソースをきちんと指定する必要がある。当たり前だ、プログラムだもの。ついつい、これを忘れちゃう位に自然に処理してくれちゃうので。

いいなと思ったら応援しよう!