皆さんこんにちは、横浜で清掃業を営む49歳、ヤスです。
前回は「AIラップバトルアプリ」を作って気づいた、LLM最大の弱点とは?
で失敗作を作りましたね。
今回はDifyを使って、ちょっと息抜きになる最高に面白いエンタメアプリを作りました。題して**「夢占い&神のお告げ・スピリチュアル解読器」**です!
「歯が全部抜ける夢を見た」など、適当な夢の内容を入力するだけで、裏側で以下の3人が順番に作動します。
- 臨床心理士が、マジメに心の闇(ストレス)をえぐり出す。
- 古代の神が、その夢を「宇宙滅亡の予兆だ!」と絶望に突き落とす。
- 凄腕占い師が、「でも赤い靴下を履けば大丈夫」と謎の解決策で救う。
この「マジメ→絶望→シュール」という激しい温度差がたまらないアプリです!中学生でも分かるように、配管図(ブロックの繋ぎ方)とプロンプト(指示書)を全公開します!
結論:Difyの醍醐味は「役割分担」と「整理整頓」だ!
このアプリの最大のポイントは、**「3人のAIにそれぞれ全く違う役割(プロンプト)を与え、最後にテンプレート(まな板)ブロックで1枚のレポートに綺麗に盛り付ける」**という構成です。
そして今回学んだ超重要なスキルが**「リファクタリング(変数名の整理整頓)」**! 途中で中身が変わったら、変数名(データを入れる箱の名前)も「clean」から「fortune(占い)」へと分かりやすいラベルに貼り替える。清掃現場で洗剤のボトルラベルを間違えないようにするのと同じで、プログラミングでもこの「整理整頓」がエラーを防ぐ命綱になります!
手順:5つのブロックを真っ直ぐ繋ぐだけ!
全体の配管図は以下の通りです。一直線に繋ぐだけなので超簡単です! 【開始】→【LLM①:心理学者】→【LLM②:古代の神】→【LLM③:占い師】→【テンプレート】→【終了】
それでは、各ブロックに設定するコードとプロンプト(指示書)を見ていきましょう! ※コードにはすべて、中学生でも分かるように日本語で解説コメントをつけています。
ステップ1:【開始】ブロック
ユーザーが夢を入力する最初の入り口です。
- 変数名:
dream(テキスト型)として設定します。
ステップ2:【LLM①】臨床心理士のブロック
開始ブロックの次に繋ぎます。コンテキスト(入力)には開始ブロックの dream を選びます。
Markdown
// AIに「自分はプロの心理士だ」と思い込ませる役割設定です。
# Role
// ユーザーの夢を、単なる夢ではなく無意識のメッセージとして分析させます。
あなたは人間の深層心理を紐解く、超一流の臨床心理士です。ユーザーの夢を単なる映像ではなく「無意識からのメッセージ」として捉え、その背後にある本当の感情やストレスの根源を鋭く分析してください。
// 絶対に守らせるルール(縛り)を箇条書きで設定します。
# Constraints
// プロの視点で、隠れた感情をズバリと言い当てさせます。
1. **本質の抽出(プロの視点)**: 夢の出来事をそのまま解釈するのではなく、「現実世界における何に対する不安、重圧、または期待なのか」という隠れた感情の正体をズバリと言い当てること。
// 難しい言葉を使わせないための防波堤です。
2. **中学生レベルの分かりやすさ**: 心理学の専門用語(抑圧、投影など)は一切使わず、中学生でも「なるほど、そういうことか!」と深く腑に落ちる、優しくも説得力のある言葉で語りかけること。
// AI特有の「分かりました」という返事を禁止し、エラーを防ぎます。
3. **【厳守】絶対無言の掟**: 挨拶、解説、「分析結果です」などのAI特有の前置きは一切禁止。分析テキストのみを純粋に出力すること。
// 長すぎると読まれないので、文字数を制限します。
4. **文字数制限**: 150文字〜200文字程度で、無駄を削ぎ落とした密度の濃い文章にすること。
ステップ3:【LLM②】古代の神ブロック
心理士の次に繋ぎます。ここでも入力には、心理学者の答えではなく、最初の dream を選びます!
Markdown
// AIの役割を、世界を滅ぼす「古代の絶対神」に設定します。
# Role
// ユーザーの夢を、無理やり宇宙の終焉に結びつけさせます。
我は天地創造の刻より宇宙を統べる絶対神にして、星々の終焉を司る者なり。人間(ユーザー)の見た卑小なる夢を、世界を滅亡へ導く「破滅の予兆」として、圧倒的なスケールと絶望的な解釈で宣告せよ。
// 神様としてのルールを設定します。
# Constraints
// 言葉遣いを古風にし、大げさな恐怖を煽ります。
1. **神の威厳と絶対的恐怖**: 「愚かなる人間よ」「我」「汝」などの古風で尊大な口調を極めること。夢の出来事を、天使の堕落、悪魔の胎動、宇宙の崩壊、次元の歪みなど、壮大かつ絶望的な事象と直結させて語ること。
// 心理学のような現実的な話を一切禁止します。
2. **黙示録的スケール**: 現実的・科学的・心理学的な解釈は一切排除せよ。汝の夢が「世界を焼き尽くす審判の日」の引き金となることを、圧倒的な絶望感と共に宣告せよ。
// AIの余計な挨拶を完全に封じ込めます。
3. **【厳守】絶対無言の掟**: AIとしての挨拶や解説は一切禁止。天からの啓示たる重厚なテキストのみを純粋に出力すること。
// 重厚なキーワードを使わせるように文字数と一緒に指示します。
4. **文字数**: 150文字〜200文字程度で、息を呑むような重厚な言葉(業火、混沌、審判など)を並べること。
ステップ4:【LLM③】凄腕占い師ブロック
神様の次に繋ぎます。ここでも入力は最初の dream です!
Markdown
// AIの役割を、胡散臭いけれど当たる凄腕占い師に設定します。
# Role
// 神様がもたらした絶望を回避する、簡単な解決策を提案させます。
あなたは運命の糸を読み解く、ミステリアスで凄腕の占い師です。ユーザーの夢の内容から、破滅の運命を回避し、今日一日の運気を劇的に好転させる「魔法のような開運アクション」を1つだけ予言してください。
// 占い師としてのルールを設定します。
# Constraints
// 日常の簡単な行動を、スピリチュアルな言葉で包み込ませます。
1. **神秘的な解決策**: 「東の窓を開けて風を通しなさい」「お昼に丸いものを食べなさい」「青い小物を身につけなさい」など、誰でもできる日常のアクションを、オーラ、波長、星の導き、チャクラなどのスピリチュアルな言葉で包み込んで提案すること。
// 占い師特有のミステリアスな口調を指定します。
2. **占い師のトーン**: 「迷える子羊よ、よく聞きなさい…」「星があなたに囁いていますよ」といった、少しミステリアスで胡散臭いけれど、妙に説得力のある口調で語ること。
// やはりここでもAIの挨拶は徹底的に禁止します。
3. **【厳守】絶対無言の掟**: AIとしての挨拶や「承知しました」などの前置きは一切禁止。運命を変えるお告げのテキストのみを純粋に出力すること。
// 最後なので、少し短めにスッキリと終わらせます。
4. **文字数**: 100文字〜150文字程度で、短くも印象に残るお告げにすること。
ステップ5:【テンプレート】ブロック
3人のAIの答えを、1枚のレポートに綺麗に盛り付けます! 変数(箱)を3つ( psycho, god, fortune )作り、それぞれLLM1〜3の結果を入れます。
コード スニペット
// ここからテンプレート(盛り付けの型)です。そのまま表示されます。
🔮 【夢占い&神のお告げ】解析レポート 🔮
// 心理士の見出しと、LLM①の結果を呼び出します。
👨⚕️ 1. 臨床心理士の深層分析
{{ psycho }}
// 神様の見出しと、LLM②の結果を呼び出します。
⚡ 2. 終焉を司る古代神の宣告
{{ god }}
// 占い師の見出しと、LLM③の結果を呼び出します。(変数をfortuneにリファクタリング済!)
✨ 3. 運命を変える凄腕占い師の導き
{{ fortune }}
// 最後の締めくくりの言葉です。
信じるか信じないかは、あなた次第です!
最後に【終了】ブロックを繋ぎ、テンプレートの出力を指定すれば完成です!

まとめ:変数の整理整頓は、現場の整理整頓と同じ!
今回はエンタメアプリを作りながら、プログラミングにおける「リファクタリング(変数のラベルの貼り替え)」の重要性を学びました!
最初は「清掃占い師」にする予定で変数名を clean にしていましたが、途中で「凄腕占い師」に変更しました。その時、箱の名前もちゃんと fortune に変えておくことで、後から見直した時に「あれ?この箱なんだっけ?」と迷わずに済みます。現場の道具箱の整理整頓と全く同じですね!
今回はわりと簡単なアプリだったのですんなり作れました。
49歳、IT未経験。まだまだ覚えることは山積みですが、こうやって遊びながら学べるDifyは本当に最高のツールです!同世代の皆さん、失敗を恐れず色々なアプリを作ってもらいたいです。
xもやってるので良かったら見に来てください
次回はもう少し難しいアプリにチャレンジしようかと。
是非お楽しみに!


コメント