メインコンテンツへスキップ
見出し画像

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制作 #無駄なもの研究所

    おまけ

    画像
    リセット万歳🙌
    画像
    こんなサイトもあるんです。便利ぃ





     
     
    昭和生まれのAI技術者。生成AIの公式発表・論文・新機能を、実際に触って検証しています。難しいことを面白く、一次ソースは原文まで。画像、創作、黒パグも。PR・レビューのご相談はXかDMへ。AI使用率:記事平均30%、画像100%。パグ好きに悪い人はいないと思うよ🤧🐶

    あなたへのおすすめ