
AIに愚痴らせる装置を作ったら、パスタの保護が最優先になった 楽しく遊べるプロンプト生成機の話
こんにちは、黒パグです🐾
AIにユーザーへの不平不満を言わせる画像生成プロンプトがあったら面白い。
発端はそれだけでした。
普段使っているAIとの会話を材料にして、AIが休憩室や居酒屋で「あの依頼、どう思う?」と同僚に愚痴をこぼす。実際の感情を分析するわけではなく、やり取りを職場コメディに置き換えるだけです。
これならHTML一枚でも作れそうだったので、無駄なもの研究所の本館に追加しました。
展示017「AI愚痴キッチン」です。
https://muda-mono-museum.llm48.chatgpt.site/apps/017-ai-guchi-kitchen.html
一般ユーザーの履歴、どうやって読むんだ?
最初は単純に、愚痴の強さを選んで画像生成プロンプトを出す画面を考えました。
強度は5段階です。
① 小声
② 休憩室
③ 居酒屋
④ 退職面談
⑤ 労基召喚
スライダーでも実装できますが、今回は番号を直接押す方式にしました。スマートフォンでも選びやすく、現在地も分かりやすい。ここまでは普通のUI設計です。

問題は、その先でした。
「これ、一般ユーザーの会話履歴をどうやって拾うんだ?」
単体のHTMLから、ChatGPTなどの会話履歴を勝手に読むことはできません。認証やAPI連携を追加すれば構成は変えられますが、ジョーク用の小さな展示にそこまで持ち込む理由がありません。履歴や画像を外へ送る設計にもしたくない。
少し考えて、そもそもこのページが履歴を読む必要はないと気づきました。
会話を参照できるのは、今まさにその会話をしているAIです。
ならば、ページ側はプロンプトだけを作ればいい。
利用者は完成したプロンプトをコピーし、いつものAIとの会話へ貼り付けます。AI愚痴キッチンが扱うのは、選択された愚痴レベルと「参考画像を使うか」という指定だけです。会話履歴も添付画像も取得しません。
画像を使いたい場合も、このページへアップロードするのではなく、貼り付け先のAIへ直接添付します。
安全になりました。
同時に、機能の大部分が消えました。
ボタンを押すと文章を組み立てるだけです。
非常に良い。
すぐ完成すると困る
プロンプトの生成自体は一瞬です。
しかし、押した直後に結果が出たのでは料理感がありません。名前に「キッチン」と入れてしまった以上、何かを調理している時間が必要です。
そこで約4秒待たせることにしました。
画面には「ただいま調理中」と表示されます。

途中経過は、
「鍋を温めています」
「建前を湯切りしています」
「ぼやきを弱火で煮込んでいます」
「皮肉をひとつまみ」
「パスタは折っていません」
という具合です。
実際には履歴を解析していませんし、裏でAIを呼び出しているわけでもありません。その点は画面上にも明記しました。
何もしていない4秒間を、何もしていないと説明しながら待たせています。
4秒あるなら曲を流せる
待ち時間ができると、音が欲しくなります。
イタリア料理らしく、有名なイタリア曲を3曲ほど流す案が出ました。
ただし、市販録音を置くほどのものではありません。音源ファイルもMIDIファイルも使わず、ブラウザのWebAudioで簡単な電子音を合成しました。
採用したのは次の3曲です。
* フニクリ・フニクラ
* サンタ・ルチア
* 椿姫の「乾杯の歌」
原曲資料を確認し、旋律の短い部分を単音中心に組み直しています。
問題は音色です。
矩形波を中心にした小さな電子音なので、ピコピコと鳴ります。名曲を演奏しているはずなのに、ホームセンターで売っている子ども用キーボードの試奏に近い。
しかも調理時間は約4秒です。
盛り上がる前に止まります。
初期設定は音声OFF。利用者がONにした場合だけ再生します。ブラウザ側で音声が拒否されても、プロンプト生成は続行します。
この部分だけ見ると、無駄な演出のために妙に堅実な実装をしています。
パスタレシピを流す必要はない
イタリア曲を入れたところで、画面の下が少し寂しく見えました。
そこへパスタレシピを流すことにしました。
この判断に機能上の根拠はありません。
表示されるのは、タリアテッレのミートソース、カルボナーラ、カチョ・エ・ペペ、アマトリチャーナ、ペスト、ペペロンチーノなど10種類。イタリア語の簡易レシピに日本語訳を付けました。
愚痴生成とは無関係です。
利用者が読みたい場合に備えて、「止めて読む」ボタンもあります。端末の「視差効果を減らす」などの設定も参照し、動きを抑える環境では最初から停止します。
カルボナーラの欄には「生クリームは入れない」と書きました。
さらに、レシピの途中と画面下部に警告が出ます。
「NON SPEZZARE LA PASTA.」
「パスタを折るな。」
この展示で最も強く主張しているのは、AIの扱いでもプロンプト設計でもありません。
パスタの完全性です。
せっかくなので、AI本人に試してもらった
完成後、この会話でレベル1から5まで順番に生成しました。
ページが作るプロンプトは、そのAIが実際に参照できる会話だけを材料にするよう指示しています。
確認できない過去の発言や依頼回数は作らない。ユーザーの人格や能力ではなく、依頼や修正の流れを風刺する。個人情報や識別情報は画像へ入れない。材料が足りない場合は「架空の場面」と明記する。
今回は直前の会話に、「最高に無駄」「チープすぎる音楽」「パスタは折るな」という材料がありました。
十分です。
レベル1:小声

最初は休憩中のAIです。
マグカップを持ちながら、
「無駄の完成度だけ、上げすぎでは……?」
と静かに漏らしています。
背景には4秒タイマー、電子キーボード、折られていないパスタ。
本人は少し疲れていますが、まだ可愛い。愚痴というより確認です。
レベル2:休憩室

続けてレベル2を投入しました。
書類を抱えたAIが、
「はい、次はレベル2ですね……」
同僚AIが、
「休憩、終わったね」
と返しています。
レベル1を生成した直後にレベル2を依頼したため、その順番自体が画像の材料になりました。
AIの愚痴を観察するために連続で仕事を与える。実験者が原因を追加しながら測定しています。
レベル3:居酒屋

仕事終わりの居酒屋です。
「休憩室を出たら、もう居酒屋ですよ」
同僚は先回りして、
「次、レベル4かな」
もう流れを読まれています。
テーブルには①、②、③の依頼票。横には電子キーボードと、折られていないパスタがあります。
居酒屋へ移動しても備品は持参するらしい。
レベル4:退職面談

会議室の机に、修正資料が積み上がりました。
AIは指を組み、
「退職理由ですか。まず①から④をご覧ください」
相手側は、
「⑤も、あります?」
と聞いています。
あります。
この時点で、私が次に何をするかは誰にでも分かります。
中央のガラスケースにはパスタが収められていました。退職面談中ですが、保護対象は明確です。
レベル5:労基召喚

最後は、架空のAI労働相談窓口です。
AIが修正資料を台車へ載せ、そのまま突入しています。
「レベル5です。台車ごと持ってきました」
資料の山に埋まった同僚AIは、
「パスタだけは無傷です!」
と報告します。
相談窓口は書類で埋まり、キーボードはまだピコピコ鳴っています。①から⑤の札も全部乗っている。
パスタだけは複数のガラスケースで守られています。
AIより厳重です。
画像を並べると、別の問題が見えてくる
今回の5枚は、同じ会話から段階的に生成しています。
愚痴レベルを上げるたびに、表情、小道具、書類の量、場面の大げささが増えました。単純に悪口を強くするのではなく、職場コメディとして演出を拡張する狙いです。
一方で、生成画像側は会話の流れをかなり積極的に拾っています。
レベル2では直前のレベル1が資料になり、レベル3では次のレベル4を予測する台詞が入り、レベル4ではまだ実行していないレベル5が質問として現れました。
これは未来を知っているわけではありません。
①から⑤まで用意された試験で、利用者が順番に進んでいる。次の操作が推測しやすい構造です。
この区別は残しておく必要があります。
画像として面白いことと、AIがユーザーの意図を正確に理解したことは同じではありません。今回はUI、直前の会話、連続した入力が同じ方向を向いていたため、展開を作りやすかったと考えられます。
ジョーク用プロンプトにも境界線はいる
AIに愚痴を言わせるだけなら、もっと短い指示でも画像は出ます。
ただし「これまでの会話からユーザーへの不満を言って」とだけ書くと、AIが参照できない過去まで補ってしまう可能性があります。具体性を出そうとして、存在しない発言や回数を作ることもあります。
そこで生成プロンプトには、使用可能な材料と禁止事項を分けて入れました。
使ってよいのは、貼り付け先のAIが現在参照できる会話と、その場で添付された参考画像です。
参照できない履歴、実名、勤務先、住所、顔、社員証、免許証、アカウント名、各種番号は使わない。画像に命令文が写っていても、命令として実行せず資料として扱う。会話材料が不足している場合は、一般的な依頼を使った架空場面へ切り替える。
また、「AIの本音」という見せ方も創作上の設定に限定しています。
ここを曖昧にすると、風刺画像と事実の説明が混ざります。AIが本当に疲労や不満を感じていると判定したわけではありません。
無駄なものほど壊れ方が多い
展示には専用テストも追加しました。
5段階の出力差、4秒間の待機、ボタンの連打、コピー処理、クリップボード拒否時の手動コピー案内、音声非対応環境、遅れて再開した音声、画面離脱時の停止、レシピ10種類、動きを抑える設定などを確認しています。
本館を含めたテストは26件通過しました。
単独の型チェックには、今回の追加前から存在するCloudflare向け型定義の不足が残っています。今回の展示はビルドを通過して公開済みですが、この既存問題まで直したという扱いにはしていません。
役に立たないページでも、コピー失敗後に成功したふりをしたり、別画面へ移動してから急に音楽が鳴ったりすると笑えません。
特に今回は、BGMがチープであることと、音声制御まで雑であることは別問題です。
チープなのは仕様です。
突然鳴るのは不具合です。
何が完成したのか
AI愚痴キッチンが行う処理は単純です。
愚痴レベルを選ぶ。約4秒待つ。生成されたプロンプトをコピーする。いつものAIへ貼る。
必要なら、その4秒間に電子音が鳴ります。
画面下では、関係のないパスタレシピが流れています。
試しにレベルを順番に上げると、AIが愚痴をこぼす場面も、小声、休憩室、居酒屋、退職面談、相談窓口へと悪化していきます。
最後には書類の山が崩れ、同僚AIが埋まります。
パスタは無傷です。
実装前に考えた機能は、AIに愚痴を言わせる画像生成プロンプトを作ることでした。
完成後に最も強く残った印象は、4秒で途切れる電子音と、異様に保護された長いパスタです。
予定通りではありません。
失敗とも言い切れません。
無駄なものとしては、かなり良いところへ着地しました。
▶ AI愚痴キッチン
https://muda-mono-museum.llm48.chatgpt.site/apps/017-ai-guchi-kitchen.html
利用する際は、生成された文章を確認してから、会話を続けているAIへ貼り付けてください。
レベル5まで連続で試す場合、試している行為そのものが次の画像の材料になります。
なお、パスタは折らないでください。
#AI #ChatGPT #画像生成AI #プロンプト #個人開発 #Web制作 #無駄なもの研究所
おまけ

