皆さんこんにちは、横浜で清掃業を営む49歳、ヤスです。
前回は【Dify実践】反復(イテレーション)で海外レビュー自動翻訳アプリ
を作りましたね。
これまで実業務に直結するアプリを作ってきましたが、今回は少し角度を変えて「極上のエンタメAIアプリ」の作り方を公開します。その名も**「偉人10人が現代のニュースを議論する仮想国会」**!
例えば「空前のサウナブームでおじさんたちが熱狂している」というニュースに対して、織田信長やアインシュタインがそれぞれのキャラになりきってマジメに意見をぶつけ合う、めちゃくちゃ面白いシステムです。
Difyは単なる「質問に答えるBot」を作るだけのツールではありません。「イテレーション(反復)」と「コード実行」を組み合わせれば、複数のAIキャラクターを全自動で操る高度なシステムが作れます。今回も私が思いっきりつまずいた「初心者が陥る罠」を含めて、中学生でもわかるレベルで解説していきます!40代、まだまだ新しい技術で遊んでいきましょう!
【結論】 このエンタメアプリを完成させるカギは、**「コード実行ブロックで名簿を作り、イテレーションブロックでマイクを回す」**という連携プレイです。
ただし、Dify特有の罠である「設定画面とコードの変数名(箱の名前)の不一致」や、「出力変数の設定忘れ」には要注意。現場で「洗剤のラベルと中身が合っているか」を指差し確認するのと同じように、データの受け渡し口をしっかり設定することが成功への最短ルートです。
【手順(ワークフローの作り方)】
全体の流れは「受付(お題入力)→名簿作成(コード)→議論(イテレーション)→まとめ(議長)→出力」という順番です。
ステップ1:開始(Start)ブロック ユーザーから今日のお題を受け取る窓口を作ります。
- 変数:
news_topic(テキスト型)… 例:「AIが人間の仕事を奪うというニュースについて」
ステップ2:コード実行(偉人の名簿作成) 議論に参加する10人の「名簿リスト」をプログラムで作成します。JavaScriptを選択し、以下のコードをコピペしてください。
JavaScript
// Difyのコードブロックで最初に呼び出されるメインの関数です
// 【重要】ここの「news_topic」と、左パネルの入力変数名を完全に同じにします!
function main({news_topic}) {
// 議論に参加する10人の偉人の名前をリスト(配列)の箱に詰めて用意します
const greatPeople = [
"織田信長",
"アルバート・アインシュタイン",
"坂本龍馬",
"マリー・アントワネット",
"孔子",
"レオナルド・ダ・ヴィンチ",
"ナポレオン・ボナパルト",
"クレオパトラ",
"福沢諭吉",
"トーマス・エジソン"
];
// 作成した10人の名簿を、次のイテレーションブロックに渡す結果として返します
// 【重要】ここの「rosterArray」と、左パネルの出力変数名を完全に同じにします!
return {
rosterArray: greatPeople
};
}

⚠️ 初心者の罠①:入力変数名と出力変数の設定忘れ コード実行ブロックの左側の設定パネルで、デフォルトの「arg1」を必ず「news_topic」に変更してください!また、一番下の出力変数(Output Variables)の追加ボタンを押し、「rosterArray」(Array[String]型)という箱を自分で作るのを絶対に忘れないでください。ここを忘れると次の工程にデータが渡りません!
ステップ3:イテレーション(国会のマイクで順番に発言) コードブロックの右に「イテレーション」ブロックを繋ぎ、入力配列に先ほどの rosterArray を設定します。 そして、イテレーションの**「枠の中」**に「LLM」ブロックを追加し、以下のプロンプトを入力します。
あなたは歴史上の偉人である「{{#iteration.item#}}」です。 自身の性格、口調、歴史的背景、当時の価値観を完全に模倣して振る舞ってください。 以下の「現代のニュース」について、あなた独自の視点から100文字程度で意見を熱く語ってください。
【現代のニュース(本日の議題)】 {{#start.news_topic#}}
※文字が変数として認識されない場合は、一度消して半角の { を打つとメニューから正確に選べます!

ステップ4:LLM(議長のまとめ) イテレーションブロックの**「外(右側)」**に新しい「LLM」ブロックを繋ぎ、議長としてのまとめを指示します。
あなたは仮想国会の「議長」です。 以下の10人の偉人たちの白熱した議論録を踏まえ、現代を生きる私たちに向けた総括とアドバイスを、少しユーモアを交えて300文字程度で分かりやすくまとめてください。
【偉人たちの発言録】 {{#iteration.output#}}

ステップ5:終了(End)ブロック 最後に「終了」ブロックを繋ぎます。議長のまとめ(chairman_summary)と、イテレーションの出力結果(all_opinions)の2つを出力変数に設定すれば、偉人たちの生々しい発言リストと総括がセットで画面に表示されるようになります!

【まとめ】 お疲れ様でした!このアプリが動いた瞬間、偉人たちが自分のキャラ全開で現代のニュースに意見する様子に、思わず笑ってしまうはずです。
今回はちょっと遊び心を入れて仕事には役には立たないけどたまには
こういうアプリもいいのかと思いました。練習にもなるし。
Difyは少し設定を間違えるとすぐエラーを吐きます。私も「arg1のままだった!」「出力変数を設定し忘れた!」と何度も頭を抱えましたが、そのエラーと格闘した数だけ、確実にシステム全体を見渡す力がついています。
本業の清掃ビジネスの合間にパソコンに向かうのは体力的にもラクではありませんが、自分で作ったAIが想像以上の面白い答えを返してくれた時の達成感は最高です。この熱量と感動を、X(@yyyyss)でもガンガン発信していきますので、AI学習に興味がある同世代の方はぜひ一緒に語り合いましょう!
次回も新しいアプリを作ろうと思うので是非お楽しみに!


コメント