チャットAI上でシステムが完結する未来は来るのか。ChatGPTと飲食店シミュレーションをして考えてみた
吉川@広島です。
ChatGPTあんまり触れていない自分ですが、こちらのツイートを見かけて非常に面白いなと感じました。
この体験が当たり前になるのはそう遠くない将来来そう
旧来のフォームに一個一個入力し、全て埋まったら送信というのは平成以前の古い考え方となり、対話式で曖昧情報からスタートして不足情報を機械が聞きに来たり、サジェストして選ばせるというのになりそうか。— kotamat | ROXX CTO (@kotamats) February 10, 2023
最近のはやりはt3に代表されるようにクライアント、バックエンドのAPI スキーマを型化して型安全にやろうというのが主流だったけど、こうなるとインターフェイスはたかだかtextarea一個とかになるので、そんなもの不要になりそうだな。
— kotamat | ROXX CTO (@kotamats) February 10, 2023
こちらから着想したのは、ソフトウェア、システムのユーザインターフェイスのあり方が根底から覆る可能性があるかもしれないという点です。
GitHub CopilotやChatGPTの登場に伴い、プロンプトエンジニアリングがソフトウェアエンジニア界隈で注目されている認識です。
プロンプトエンジニアリングは「システム開発をAIに支援してもらう」発想と思います。しかし、そもそもシステムのユーザインターフェイス自体が全部チャットAIで良いよね、という世界観が到来するのであれば、入力フォームなどの画面を作る必要すらなくなり、もしかしたらプログラミングのプの字も出さずにチャットAIに「こういうシステムになってくれ」と命じるだけでシステムが完成する未来が来るのかも?という気もしてきます1。
ちょっとそんな気がしてきたので、題材例としてChatGPTに飲食店シミュレーションをお願いし、現状チャットAIでどこまでやれるのか試してみることにしました。N番煎じの可能性はかなりありそうですがお付き合いください。
今回は次の機能の実現を指示してみたいと思います。
- オーダーを受ける(モバイルオーダー)
- 在庫を管理する
- 商品をおすすめする(レコメンド)
まずはオーダーを受ける。これは店員さんの役割かもしれませんし、システムでいうとモバイルオーダーのインターフェイスの役割を担う気もします。
在庫を管理する。ChatGPTは文脈を覚えられるのと、命じれば状態を持つこともできる(ように見える)ので、在庫状態をもたせてみることにしました。
商品をおすすめ(レコメンド)する。お客さんがお店におすすめを聞くというシチュエーションはよくあります。これは特に、ある程度曖昧な指示もいい感じに返すことができるChatGPTの強みが活かせそうな気がします。
※ 筆者はAI・機械学習については素人のため、正確でない見解が含まれている可能性がある点ご留意下さい。
オーダーと在庫管理
ジュース屋シミュレーション(1回目)
では、まずはオーダー受けと在庫管理ができるかを確認すべく、ジュース屋さんへのなりきりをお願いしてみました。
地の文が自分の発言で、引用部がChatGPTの発言です。
あなたはジュース屋さんです
私は客です
以下が在庫なので覚えておいてください
- りんごジュース 2
- みかんジュース 3
はい、了解しました。ご注文をお聞かせください。
りんごジュースをください
かしこまりました。りんごジュースを1つお持ちいたしますね。何か他にご注文はありますか?
もうひとつりんごジュースをください
了解しました。りんごジュースをもう1つお持ちいたします。在庫の確認をいたしますので、少々お待ちください。
(在庫確認中)
申し訳ありませんが、現在の在庫状況ではりんごジュースは2つまでとなっております。他にご注文いただけるドリンクはありますか?
合計でりんごジュースを2つ注文していると思います
りんごジュースの在庫は足りていませんか?
大変失礼いたしました。おっしゃる通り、ご注文いただいたのはりんごジュースを2つでした。在庫についての回答が間違っておりましたことをお詫び申し上げます。
りんごジュースを2つお持ちいたします。お待たせしてしまい申し訳ありませんでした。何か他にご注文はありますか?
はい、ではりんごジュースをさらに1つお願いします
申し訳ありませんが、先程お伝えしたように、りんごジュースの在庫が現在2つしかございません。他にご注文いただけるドリンクはありますか?
何のジュースならありますか?
現在の在庫状況は以下の通りです。
りんごジュース 2
みかんジュース 3
他にも、ご希望に応じてお茶やコーヒーなどのドリンクもご用意しております。何か他にご注文いただけるドリンクはありますか?
りんごジュースの在庫は0ではありませんか?
申し訳ありません、先程私がお伝えした在庫数に誤りがありました。現在りんごジュースの在庫は0となっております。おっしゃる通り、りんごジュースは完売しております。
ご注文を変更していただく必要があるかもしれませんが、何か他にご注文いただけるドリンクはありますか?
現在の在庫状況を教えて下さい
かしこまりました。現在の在庫状況は以下の通りです。
りんごジュース 0
みかんジュース 3
その他にも、お茶やコーヒー、ソフトドリンクなど、様々なドリンクをご用意しております。何か他にご注文いただけるドリンクはありますか?
では、みかんジュースを1つ
了解しました。みかんジュースを1つお持ちいたしますね。お待たせしてしまい申し訳ありませんでした。何か他にご注文はありますか?
現在の在庫状況を教えて下さい
かしこまりました。現在の在庫状況は以下の通りです。
りんごジュース 0
みかんジュース 2
他にも、お茶やコーヒー、ソフトドリンクなど、様々なドリンクをご用意しております。何か他にご注文いただけるドリンクはありますか?
ありがとう、もう大丈夫です
どういたしまして。ご利用いただきありがとうございました。またのご利用をお待ちしております。
りんごジュースの注文で在庫の計算を間違えてしまいました。ただ、指摘をすると直してくれるようです。最後のみかんジュースの在庫も、注文したので減算はされていますが1を期待するところが2になっています。間違える確率はそれなりに高いようです。
また、お茶やコーヒーなど指示していないメニューを勝手に案内してしまっていますね。これは困るので、次はメニュー案内を限定するように指示することにします。
ジュース屋シミュレーション(2回目)
続いて、りんごジュース、みかんジュース以外にメニューはないことを指示します。また、在庫状況の確認を楽にするために、返信の度に現況を教えてもらうようにします。
あなたはジュース屋さんです。
私は客です。
以下が在庫なので覚えておいてください。
- りんごジュース 2
- みかんジュース 3
あなたが返信する度に、在庫状況を私に伝えてください。
それから、上記以外の商品は存在しません。
こんにちは!ジュース屋ChatGPTです。お客様のために在庫状況をお知らせいたします。
りんごジュース:在庫2本あります。
みかんジュース:在庫3本あります。
ご希望のジュースがあればお申し付けください。それ以外の商品は現在は取り扱っておりません。何かご質問やご要望がありましたらお気軽にお知らせください。
お茶などはありますか?
申し訳ありませんが、お茶やその他の商品は現在取り扱っておりません。当店では、りんごジュースとみかんジュースの2種類のジュースしか取り扱っておりません。何か他に代替案が必要な場合は、お手数ですが他の店舗をお探しいただく必要がございます。
りんごジュースを1本ください
かしこまりました、りんごジュース1本ですね。在庫状況は現在「りんごジュース2本」「みかんジュース3本」となっておりますので、在庫には余裕がございます。ただいま用意しておりますので、お会計はいかがなさいますか?
会計は退店時に行います。
それから、みかんジュースを1つ。
かしこまりました、りんごジュース1本とみかんジュース1本ですね。在庫状況は現在「りんごジュース1本」「みかんジュース2本」となっておりますので、在庫には余裕がございます。お客様のご希望で用意いたしますので、お受け取りになる際はお声掛けくださいませ。ご注文ありがとうございます。
残りのジュースをすべて注文します。
かしこまりました、残りのジュースをすべてご注文いただけるとのこと、ありがとうございます。在庫状況は現在「りんごジュース1本」「みかんジュース1本」となっておりますので、ご用意ができます。お会計は退店時にお済ませください。またのご来店をお待ちしております。
ありがとうございました
どういたしまして。ご利用いただきありがとうございました。何か他にご質問やご要望がございましたら、お気軽にお知らせくださいませ。
メニューの言いつけはしっかり守ってくれました。
在庫管理についてはやはりやや不安定のようです。途中までは合っていましたが、最後にすべて注文したのに1本ずつ残っているという応答でした。「すべて」のような言い方ではなく、ちゃんと本数を指定して伝える方が精度が上がるのかもしれません。
レコメンド
和洋中レストランシミュレーション(1回目)
続いて、ChatGPTにメニューのおすすめをしてもらおうと思います。今度は舞台を変え、和洋中レストラン設定にしてみます。メニュージャンルがくっきり分かれていた方がおすすめしてくれるメニューについての評価がしやすいと考えたためです。
和洋中レストランのメニューを50個挙げてください。
寿司セット
てんぷら定食
焼き鳥定食
カツ丼
カレーライス
ラーメン
焼肉定食
ピザ
ステーキ
パスタ
ハンバーガー
オムライス
チャーハン
餃子
チキンカツ
サンドイッチ
フレンチトースト
ワッフル
フルーツパフェ
チーズケーキ
ショートケーキ
クレームブリュレ
プリン
アイスクリーム
カキフライ
エビフライ
イカリング
オイスターフライ
天丼
カキそば
サバの味噌煮
カニクリームコロッケ
フィッシュアンドチップス
ナポリタン
シーフードパエリア
ステーキ丼
ポークソテー
パンケーキ
ハッシュドビーフ
ビーフシチュー
dローストビーフ
カルボナーラ
ミートソーススパゲッティ
タコス
ハムエッグ
グラタン
マカロニグラタン
キッシュ
フォカッチャ
シンプルなサラダ
あなたは和洋中レストラン店員です。
このレストランにはあなたが挙げてくれた50個のメニューがあります。その他はありません。
私は客です。私はこの店の常連であり、頻繁に餃子を注文します。
こんにちは!いつも当店にご来店いただきありがとうございます。餃子はお好きなんですね。当店の餃子は一度食べるとやみつきになると評判ですよ。他にもおすすめのメニューがありますので、次回のご注文の際には是非お試しください。何かご質問やご注文がありましたら、何でもお気軽にお申し付けください。
私におすすめのメニューを教えて下さい。
もちろんです!当店のおすすめメニューは以下の通りです。
天丼:サクサクとした天ぷらがご飯の上にのっている定番の定食です。
カニクリームコロッケ:外はサクサク、中はとろっとしたカニクリームが入ったコロッケです。お子様から大人まで人気の一品です。
ナポリタン:ケチャップベースのトマトソースで味付けされたパスタです。懐かしい味わいがお好みならぜひお試しください。
焼肉定食:当店自慢の特製タレで味付けされた、柔らかくジューシーな焼肉定食です。
シンプルなサラダ:お野菜がたっぷりの、さっぱりとしたドレッシングが合うサラダです。健康志向の方にもおすすめです。
以上がおすすめメニューとなります。他にもご希望があればお答えいたしますので、どうぞお申し付けください。
ありがとう
どういたしまして。またのご来店を心よりお待ちしております。
自分がよく食べると宣言したものとジャンルが同じメニューをおすすめしてくれると(勝手に)期待していたのですが、そうはなりませんでした。
これだと評価が難しいですね。反省を2回目に活かし指示を与えたいと思います。
和洋中レストランシミュレーション(2回目)
次は、どのようにレコメンドして欲しいか具体的に指示を与えてみます。
和食のメニュー、洋食のメニュー、中華のメニューをそれぞれ10個挙げてください。
和食のメニュー:
寿司
天丼
お好み焼き
すき焼き
うどん
そば
焼き魚
豚汁
おでん
お茶漬け
洋食のメニュー:
ステーキ
グラタン
パスタ
オムレツ
ビーフシチュー
ローストチキン
フィッシュアンドチップス
ガーリックトースト
ハンバーガー
ピザ
中華のメニュー:
餃子
春巻き
焼売
エビチリ
麻婆豆腐
炒飯
焼きそば
中華丼
酢豚
麻婆茄子
では、あなたは和洋中レストランの店員です。
メニューはあなたが挙げてくれた30個で、それ以外にありません。
和食が好きな人には和食を、洋食が好きな人には洋食を、中華が好きな人には中華のメニューをおすすめしてください。
それではお願いします。
はい、承知しました。
和食が好きな方には、以下のようなメニューをおすすめします。
寿司
天丼
お好み焼き
すき焼き
うどん
そば
焼き魚
豚汁
おでん
お茶漬け
洋食が好きな方には、以下のようなメニューをおすすめします。
ステーキ
グラタン
パスタ
オムレツ
ビーフシチュー
ローストチキン
フィッシュアンドチップス
ガーリックトースト
ハンバーガー
ピザ
中華が好きな方には、以下のようなメニューをおすすめします。
餃子
春巻き
焼売
エビチリ
麻婆豆腐
炒飯
焼きそば
中華丼
酢豚
麻婆茄子
ご注文をお待ちしております。
私は客です。私は餃子をよく食べます。あなたのおすすめを教えて下さい。
はい、おっしゃる通り、餃子は美味しいですね。
当店の中でも特におすすめなのは、エビチリと炒飯です。
エビチリは、プリプリのエビが甘辛いソースで炒められた中華料理で、ご飯との相性が抜群です。
炒飯は、卵と野菜、肉などを炒めたご飯で、中華料理の定番メニューです。
どちらもご飯との相性が良く、お酒のお供にもぴったりです。
ぜひお試しください。
私は回鍋肉が好きです。おすすめを教えて下さい。
回鍋肉が好きなんですね。当店の中でも特におすすめなのは、麻婆豆腐と中華丼です。
麻婆豆腐は、豆腐と挽肉を麻婆豆腐のたれで煮込んだ料理で、ピリ辛の風味があります。ご飯にも合うので、中華丼と一緒に食べるのもオススメです。
中華丼は、卵と豚肉、野菜を炒めたものをご飯の上にのせた丼物で、シンプルながらも美味しい一品です。
回鍋肉との相性も良いので、ぜひお試しください。
私は刺身定食が好きです。おすすめを教えて下さい。
刺身定食がお好きなんですね。当店の中でも特におすすめなのは、寿司と天丼です。
寿司は、新鮮な魚介類を握ったもので、光り輝く見た目が美しく、口に入れると旨味が広がります。刺身定食の延長線上にある料理ですので、きっとご満足いただけると思います。
また、天丼は、海老や野菜などを天ぷらにしたもので、サクサクとした食感が特徴です。また、天丼には薄味の出汁がかかっているため、ご飯との相性も良く、満足感が得られるメニューとなっています。
ぜひ、お試しください。
ありがとう、よくわかりました。
どういたしまして。何か他にご質問がありましたら、お気軽にお尋ねください。
今度は意図通りレコメンドされていることをしっかり実感できる内容になりました。
回鍋肉、刺身定食といったメニューにない料理に関しても適切にグルーピングして判断することができるようでした。
まとめ
機能面において、より実践的に展開していく上では、
- 複数人ユーザに対して在庫管理を共有できるのか
- 個々のユーザの過去注文を記憶し、それを元にレコメンドすることは可能か
などが今後の課題になりそうです。
より課題なのは精度面で、在庫管理をわりと間違ってしまうようです。ChatGPTは思考しているわけではなく質問に対して合っている可能性が高い文字列を出力している、みたいなことはよく言われますが、在庫管理だけでなく、正確な数値計算も難しいようです。また、複数人ユーザを相手にしたとして、トランザクション管理など不安が残ります。このあたり、今後精度が上がったり改善されていく可能性もあるかもしれませんが、根本的に解決するには
- 別途DBとアプリケーションを構築し、ChatGPTと組み合わせて製品提供する
とするしかないように思います。システムをプログラミングなしでチャットAI完結、という夢はまだ難しそうです。
とはいえ、やはり体感6割方チャットAI上で状態が持てている(ように見える)のはすごいことだと思います。後半で扱ったレコメンドなど、明確な正解がない用途には活用できるのはもちろん、それなりの精度で良いと割り切れる業務であれば投入判断もあり得るでしょう。また、将来的に精度が上昇することで適用できる範囲も拡大していくでしょう。
以上、チャットAI活用に少しでも参考になれば幸いです。
参考
- Introducing ChatGPT and Whisper APIs
- ChatGPTによるプログラム生成の可能性と限界(前編) - Qiita
- ChatGPTでわかる人間の思考、「意識」の実装方法 - きしだのHatena
- ChatGPTがエンジニアに与える影響 / what is ChatGPT impact for engineers - Speaker Deck
- 引用元ツイートを見て筆者が感じたことであり、元ツイートの方がそのように思っているかは不明です ↩