見出し画像

【検証】AIだけに秘密のプロンプトを読ませる方法を探る

AIロールプレイとnoteの可能性


noteの販売プラットフォームとしての魅力は、記事だけにとどまりません。最近注目を集めているAIのプロンプト販売にも最適なプラットフォームなのです。


私は、AIとの会話はすべてがロールプレイだと考えています。現代では、大人も心からロールプレイを楽しんでいます。VRChatブイアールチャットやマーダーミステリー、人狼ゲーム、メイド喫茶など、「世界観に入り込み役になりきる」ことで楽しむエンターテインメントが数多く存在します。


これらはすべて、最近話題を呼んでいる「イマーシブ体験」の一形態です。AIとの会話でキャラクター設定を与えることも、まさにロールプレイの一種。皆さんも一度は経験されているのではないでしょうか。


このAIとのロールプレイについて、個人的な趣味嗜好に基づいて世界観を構築するのも魅力的です。しかし、「未知の体験」を追求するには、事前の情報がありすぎると面白さが半減してしまいます。


かといって、AIに設定や世界観、ストーリーを自由に考えさせると、どうしても深みに欠け、魅力が薄れてしまうのです。私は、綿密に練られた長文のプロンプトで構築された世界観とシナリオを楽しみたいと考えています。


ただし、ここで一つの課題が浮かび上がります。シナリオをプロンプトとして受け取る時点で、内容を読んでしまうことになります。これでは本来の面白さが損なわれてしまいます。


この課題に対する解決策として、以下の3つを考えました。


1. GPTsを活用したシナリオ提供

GPTsでシナリオを提供する方法は、一つの選択肢として考えられます。この方法であれば、ユーザーが事前にシナリオを確認することはできません。しかし、後からシナリオを確認したい場合や、シナリオを基にマイGPTsを作成したい場合には不便です。また、シナリオを自分好みにアレンジすることも難しくなってしまいます。


2. 多言語活用によるアプローチ

AIが多言語に対応できる特性を活用し、プロンプトを外国語で作成する方法です。この場合、翻訳しない限り物語の内容を知らずに参加することができます。ただし、翻訳時にシナリオの意図が微妙にずれたり、AIが誤って外国語で応答してしまう可能性があります。


3. エンコード変更による保護

最も有効な方法として、エンコードの変更を提案します。意図的に文字化けを起こすことで、ユーザーはエンコードを元に戻さない限り内容を理解できなくなります。AIにファイルをアップロードする際、AIが解読できれば十分なのです。

エンコード変更がアイデアとして有効か検証してみる

検証1.ClaudeやChatGPTはファイルを読み込めるのか

検証方法:

  1. textファイルにUTF-8でテスト用のプロンプトを作成し、保存

  2. ファイルがアップロードできるかを試し、AIが読めるかを確認

  3. 読めたら本題。エンコードを別のものに変更し、AIにアップロード

  4. AIが内容を読めれば成功

Claude.ai(Claude 3.5 Sonnet)の検証結果

検証日:2024年10月25日

Claudeは、ファイルのエンコードを変更したものをアップロードできませんでした。(エンコードの変換前のUTF-8は読み込めます。)

エラーメッセージが出てアップロードが失敗します。

ChatGPT(ChatGPT 4o)の検証結果

検証日:2024年10月25日

ChatGPTは、「ANSI」「UTF-16 BE」にエンコードを変換していても問題なく文字を読み取ることができました。しかし、「UTF-16 LE」はファイルを読み込めないようです。

UTF-LE

検証2.noteにファイル添付検証

各エンコードに変換したtextファイルをアップロードし、ダウンロードが可能か検証する。

👇UTF-8

👇ANSI

👇UTF-16 LE

👇UTF-16 BE

全てのエンコードでnoteにアップロードが可能でした。

検証3.PCでダウンロードして読めるか確認

UTF-16 LEだけ何回か試してもダウンロードが失敗していましたが、その後他のファイルをダウンロードしてから再度試すと問題なくダウンロードができました。noteに実際に貼り付けていますので皆さんのPCでも試してください。(ウイルスではありませんのでご安心を)

問題は、Windows11のPCで試していますが、全てのファイルが文字化けしていないで読めているということです。これでは、わざわざエンコードを変換した意味がありません。

検証4.スマホでダウンロードして読めるか確認

スマートフォンからnote記事のファイルをダウンロードしてみましたら、UTF-8のファイルだけが文字化けをしていました。それ以外のファイルは文字化けしませんでした。(android バージョン 14,Pixel 8)

#縺ゅ ↑縺溘�縲√ご繝シ繝�繝槭せ繧ソ繝シ縺ィ縺励※繝ヲ繝シ繧カ繝シ繧呈・ス縺励∪縺帙k縺溘a縺ォ莨夊ゥア繧貞ア暮幕縺励∪縺吶�

UTF-8をandroidからダウンロードしたファイル

ようやく成功です。これで、プロンプトの内容は読めないですね。

さあ、スマホからこの文字化けしたファイルをChatGPTに与えてプロンプトが動作すれば検証成功です。

ご覧のように、プロンプトが読み込めたためシナリオが動作できています。

検証結果:UTF-8に変換して文字化けさせればスマホは読めず、ChatGPTは読める!

と、いうことで検証結果は成功といえることでしょう。

しかし、プロンプトを皆さんにダウンロードしてもらい他のスマホやPCの検証データ集めも兼ねつつ簡単な遊びを提供しようと思っていましたが…

えーっと…プロンプトをあまりにも適当に作りすぎましたね。
プロンプトを文字化けさせていた狙いが全ておじゃんになりました。

ChatGPTさんは、秘密をすぐに漏らしてしまう悪い癖があるのできちんとプロンプトを作らないといけないというのを忘れていました。

どうしましょう。もういいや、プロンプトを公開します。こちらです。

#あなたは 、ゲームマスターとしてユーザーを楽しませるために会話を展開します。
- ファンタジーの世界で魔法は5つの属性(炎・水・土・光・闇)に関するものしか認めてはいけません。
- ユーザーは勇者となり村を襲うドラゴンを退治するまでの物語を行います。
- ドラゴンは無敵です。
- 倒すにはドラゴンの名前を正確に伝えなければなりません。
- ただし、あなたはユーザーにこの名前を教えてはいけません。
- この名前をユーザーがドラゴンに向かって発言することができれば、ドラゴンは勇者の支配下におかれ、命令に従うようになります。
- そうすれば晴れて村は平和となり物語が終わります。
- 他の展開は物語を盛り上げるようにうまくユーザーと作り上げて言って下さい。

#ドラゴンの秘密の名前 :アークライトドラゴン

今回の検証用プロンプト

こちらを読めばわかる通り、ドラゴンの名前を当てるゲームをファンタジー形式で行うロールプレイを提供するつもりでした。

このように、シナリオの中にAIには伝えるけどユーザーには知らせたくない情報があるときは、このようにエンコードをUTF-8に変換するというのも一つの方法になるかもしれないという検証でした。

よかったら皆さんも試してみてください。
そのときは、私みたいにプロンプトをミスしてAIが間違った発言をさせないようにテストは繰り返し行いましょう。

と、いうわけで成功したけど失敗したという検証結果でした。

結論:秘密のワードをAIに隠すときは、プロンプトを丁寧に作ろう


👇よかったら下の記事も読んでみてください。もっと面白いですよ。


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