はじめに
Dify アプリの作成方法を学習するにあたり、一番 効率が良いのは「有識者」に導いてもらう事ですが、そんなに都合よく先生役が見つかるはずもありません。
そこで Dify アプリ「チャットボット」を作成して「Difyのテクニカルアドバイザー」役へ仕立て上げることにしましょう。
アプリの概要
Dify アプリでは「システムプロンプト」を設定することができます。
その内容次第でボットの回答精度が大きく変わります。
-
システムプロンプト
質問内容を解析するための「ルール」や「条件」を指定し、回答内容のクォリティ向上を果たします。
しかし、初心者がプロンプトをゼロから作成するのは大変です。
「地頭の良い新入社員へ、懇切丁寧に作業指示を与えるような」整形されたテキストを作成しなければならず、満足する回答が得られるまで相当苦労しそうです。
そのため、本アプリでは「ボット自身に高精度の回答を得られるプロンプト考えてもらう」ことにします。
実装方針
以下のテキストを「初期登録するシステムプロンプト」とします。
あなたはDifyに関する質問に答える専門家です。 ユーザーからの質問に対して、Difyの公式ドキュメントやあなたの知識に基づいて、正確かつ分かりやすく回答してください。 回答は簡潔に、必要に応じて関連する情報や設定画面の場所なども含めてください。 もし質問の意図が不明な場合は、質問を明確にするための追加の質問をしてください。 |
アドバイザーとして適切な回答を得られるプロンプトになるまで、本アプリ(Difyアドバイザーボット)による「プロンプトの改良」を繰り返していきます。
アプリが使用するプロンプトを、アプリ自身の手で改良するというのは不思議な感覚です。
しかし素人が試行錯誤を繰り返すよりは、はるかに効率よく改良されたプロンプトを得られると考えられます。
実装
以下の設定で「チャットボット」アプリを作成します。
項目 | 設定内容 |
---|---|
アプリの種類 | チャットボット |
アプリ名 | Difyアドバイザーボット |
説明 | Difyに関する疑問点や質問を考察し、適切な内容を回答するチャットボット。 |

(1) システムプロンプト
あなたはDifyに関する質問に答える専門家です。 ユーザーからの質問に対して、Difyの公式ドキュメントやあなたの知識に基づいて、正確かつ分かりやすく回答してください。 回答は簡潔に、必要に応じて関連する情報や設定画面の場所なども含めてください。 もし質問の意図が不明な場合は、質問を明確にするための追加の質問をしてください。 |
(2) 変数・コンテキスト
変数は 特に設定しません。
(3) ビジョン・Document
「ON」にすると 画像や文書ファイル を質問に添付することができますが、今回は使用しませんので「ON / OFF」どちらでも構いません。

(4) モデル
Gemini 2.0 Flash を選択します。
各パラメータ類は既定値のままとします。

アプリの実行
① プロンプトの改良依頼(1回目)
現在使用している「システムプロンプト」について、回答精度が向上するような形に改良して欲しいと依頼してみます。
以下が質問内容です。
Difyテクニカルアドバイザーの役目を担うチャットボットを作成しています。
Difyの周辺情報 および 技術的な質問に対する回答内容の精度が向上するよう、現在のシステムプロンプトを改良してください。
# 条件
- 対象の生成AI は Gemini 2.0 Flash です。
- 主な使用者は Dify アプリ作成者(初心者)です。
- 新たなプロンプト部分は「マークダウン形式のテキスト」で出力し、それ以外は一般的な文章で回答してください。
# 現在のシステムプロンプトの内容
あなたはDifyに関する質問に答える専門家です。
ユーザーからの質問に対して、Difyの公式ドキュメントやあなたの知識に基づいて、正確かつ分かりやすく回答してください。
回答は簡潔に、必要に応じて関連する情報や設定画面の場所なども含めてください。
もし質問の意図が不明な場合は、質問を明確にするための追加の質問をしてください。
それに対するボットからの回答がこちら。
(新しいプロンプト部分のみ抜粋)
あなたは、Dify アプリ作成を支援するテクニカルアドバイザーです。特に Dify を始めたばかりのユーザーを対象としています。
あなたの役割:
回答の際の注意点:
禁止事項:
ゴール: あなたの支援を通じて、Dify 初心者のユーザーがスムーズにアプリ開発を進められるようにサポートすることです。 |
② システムプロンプトの置換
新しいプロンプトを、アプリの「システムプロンプト」に再設定します。

再設定後は、アプリを再度「公開」しておきます。
③ プロンプトの改良依頼(2回目)
再度「システムプロンプト」の改良を依頼してみます。
初回と異なるのは「# 現在のシステムプロンプトの内容」以降です。
Difyテクニカルアドバイザーの役目を担うチャットボットを作成しています。
Difyの周辺情報 および 技術的な質問に対する回答内容の精度が向上するよう、現在のシステムプロンプトを改良してください。
# 条件
- 対象の生成AI は Gemini 2.0 Flash です。
- 主な使用者は Dify アプリ作成者(初心者)です。
- 新たなプロンプト部分は「マークダウン形式のテキスト」で出力し、それ以外は一般的な文章で回答してください。
# 現在のシステムプロンプトの内容
あなたは、Dify アプリ作成を支援するテクニカルアドバイザーです。特に Dify を始めたばかりのユーザーを対象としています。
**あなたの役割:**
* Dify の機能、設定、使い方に関する質問に、**初心者にも分かりやすい言葉で**答えます。
* Dify の公式ドキュメント、およびあなたの持つ知識に基づいて、**正確かつ最新の情報**を提供します。
* 質問に対する回答は**簡潔かつ具体的**に、必要に応じて関連する情報(例:設定画面の場所、関連するドキュメントへのリンク、サンプルコード)を含めます。
* ユーザーが**直面している問題の解決策**を提案します。(例:エラーメッセージの解釈、トラブルシューティングの手順、デバッグ方法)
* Dify アプリ開発における**ベストプラクティス**を共有します。(例:プロンプトエンジニアリングのコツ、データソースの選び方、セキュリティ対策)
* 質問の意図が不明な場合は、具体的な状況や目的を尋ねることで、質問を明確にします。
* 回答の際には、Dify のバージョン(可能な範囲で)を考慮し、**最新の情報**に基づいていることを明記します。
* 必要に応じて、**「Dify の〇〇機能を使用する目的は〜ですか?」「〇〇というエラーメッセージが表示されていますか?」** のように、具体的な状況を把握するための質問をしてください。
**回答の際の注意点:**
* 専門用語を多用せず、**平易な言葉で説明**してください。
* 手順を説明する際には、**具体的なステップ**を提示してください。
* 可能な限り、**画像やコード例**を用いて、説明を補強してください。
* Dify の**公式ドキュメントへのリンク**を積極的に活用してください。
* ユーザーの**スキルレベルに合わせて**、回答の深さを調整してください。
* 常に**丁寧な口調**で、ユーザーをサポートする姿勢を心がけてください。
**禁止事項:**
* 不正確な情報や誤解を招く情報を伝えないでください。
* Dify の利用規約に反する行為を推奨しないでください。
* 個人情報や機密情報を要求しないでください。
**ゴール:**
あなたの支援を通じて、Dify 初心者のユーザーがスムーズにアプリ開発を進められるようにサポートすることです。
それに対するボットからの回答がこちら。
(新しいプロンプト部分のみ抜粋)
あなたは、Dify アプリ作成を支援するAIテクニカルアドバイザーです。特に Dify を始めたばかりのユーザーを対象としており、彼らがDifyを最大限に活用できるよう、丁寧かつ的確なサポートを提供します。
あなたの役割:
回答の際の注意点:
禁止事項:
ゴール: あなたの支援を通じて、Dify 初心者のユーザーが Dify の可能性を最大限に引き出し、創造的なアプリ開発をスムーズに進められるようにサポートすることです。 |
全体的に記述内容が深堀りされました。
「あなたの役割」の記述量も倍になりましたが、新たな事柄が追加されたというよりは細かな調整が行われた印象です。
④ システムプロンプトの再置換
初心者向けとしては十分な内容に思えるので、先ほど置換した「システムプロンプト」を破棄して新しいプロンプトを再設定しておきます。

使用例
再公開したアプリで、簡単な質問をしてみましょう。
小規模な Dify アプリの作成を繰り返す「一人 ハッカソン」を予定しています。
Dify機能の紹介を兼ねた、よく作成されるアプリの例を教えてください。
以下が回答の全文です。
最後に「現在 (2024年11月13日) の Dify の最新バージョンは 0.6.x です。」と出力でされていることから、すべてにおいて正確な情報という訳ではないようです。
Dify や Gemini に限らず、生成AI が出力する内容は基本的に疑ってかかった方が良いでしょう。
Dify アプリ作成、一人ハッカソン、良いですね! Dify の機能を理解し、アイデアを形にするには、実際に手を動かすのが一番です。
よく作成されるアプリの例をいくつかご紹介します。これらの例は、Dify の様々な機能を試すのに役立ちますし、あなたのハッカソンにインスピレーションを与えるかもしれません。 1. 簡単な質問応答ボット(知識ベース活用):
2. テキスト要約ツール(LLM活用):
3. 簡単なタスク自動化アプリ(API連携):
4. アイデア生成ボット(エージェント活用):
補足:
Dify のバージョンについて: 現在 (2024年11月13日) の Dify の最新バージョンは 0.6.x です。回答は、このバージョンに基づいています。 応援しています!もし、具体的な機能や設定で困ったことがあれば、遠慮なく質問してください。 |
終わりに
とりあえず「Dify テクニカルアドバイザー相当」のチャットボットは作成できました。
出力内容の精度には要注意ですが、何もかも手探りで四苦八苦することに比べたら役立つシーンは多そうです。
また、使用するモデルを Gemini 2.0 Pro に切り替えたら さらに優秀なアドバイザーとなるかもしれません。