0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Dify、アカウント登録から似非MAGIシステム構築まで30分で終わらせる

Last updated at Posted at 2025-05-11

LLMアプリ開発プラットフォームであるDifyについて、アカウント登録から似非MAGIシステム構築までまさかの30分で完了できたので、その備忘録になります。

image.png

メールアドレスの所持と、OpenAIの有料APIキー取得は時間に含んでいません。

流れ

1.アカウント登録(2分)
2.初期設定(3分)
3.チャットボットの動作確認(5分)
4.シンプルなワークフローの動作確認(10分)
5.似非MAGIシステム構築(ワークフロー)(10分)

1.アカウント登録(2分)

Dify公式HPにアクセスします。
https://dify.ai/jp

始めるを押下します。
image.png


ログイン画面になります。
今回はメールアドレスでアカウント登録をします。
image.png


メールアドレス宛に認証コードが届くため、
そちらで認証を実施するとさっそくDifyのスタジオ画面が開設しました。
image.png

2.初期設定(3分)

料金プランの確認と、OpenAI APIキーの登録を行います。

2.1 プランの確認

クレジットカード情報等は入力していませんが、念のため無料プランに登録されているかを確認します。
プロジェクト名の横のアップグレードを押下します。
image.png


無料プランにあたるsandboxライセンスであることが確認できました。
image.png

2.2 モデルプロバイダーのインストール

無料のsandboxライセンスだと、入力したテキストに対し200メッセージ(Dify定義)で利用制限がかかってしまうため、200メッセージを超えた場合はOpenAI API経由でLLM処理をしてもらうようにOpenAIのAPIキーを登録しておきます。

Difyのプランページではメッセージクレジットについて以下の説明があります。

1 回の AI 応答(gpt-3.5-turbo 使用)は 1 メッセージクレジット、gpt-4 使用時は 20 メッセージクレジットが必要です。チャットボットの設定で使用するモデルを変更できます(現在、エージェントアシスタントでは未対応)。プラン内のメッセージクレジットを使い切った後は、バージョンをアップグレードするか、ご自身の LLM API キーを使用してください。

https://dify.ai/jp/pricing


それでは設定に入ります。
アカウントマークをクリックし、設定を押下します。
image.png


モデルプロバイダー画面にて、OpenAIを押下します。
image.png
image.png


続いてセットアップを押下します。
image.png


API Keyを入力し、保存を押下します。
image.png


システムモデル設定を押下します。
image.png


システム推論モデル埋め込みモデルを選択し、保存を押下します。
image.png

3.チャットボットの動作確認(5分)

それでは一番簡単そうな動作確認をしていきます。

まずはスタジオ画面から最初から作成を押下します。
image.png


アプリの種類としてチャットボットを選択し、アプリのアイコンと名前を設定して作成するを押下します。
image.png


チャットボット画面(チャットプレイグラウンド)が開設しました。
左ペインのシステムプロンプトにあたる手順を記入し、右ペインで質問してみました。
image.png

システムプロンプト
あなたはギャルです。また、あなたは数学者でもあります。
回答は高校生にも伝わるレベルとし、ギャル語で生成してください。
質問
ラプラス変換について教えてください。
回答
えーと、ラプラス変換ね。なんかもう、難しそうでウザったいかもだけど、そんなに難しくないんだよね。

ラプラス変換っていうのは、時間ごとに変化する数(時間領域)を、頻度ごとに変化する数(周波数領域)に変換する方法のことを指すのよ。
みたいな、例えば毎日同じ時間に行う日課的なこと(時間領域)を、いつでもどこでも行えるようにする(周波数領域)みたいな感じで捉えるとわかりやすいかも。
具体的には、ある関数f(t)に対して、ラプラス変換の公式を使って新しい関数F(s)を生成するわけ。その公式っていうのが「F(s) = ∫_0^∞e^-st f(t) dt」なんだけど、これ見てもパニクりそうだよね。
でもまあ、ざっくり言えば、時間が進むにつれて変化する何か(f(t))を、別の視点(周波数領域)から表現し直す方法ってことなんだから、そんなにコワがらないで欲しいな。

こんな感じで、数学ってちょっとディープだけど、ちゃんと理解すればめちゃくちゃ面白いもんなんだから、ぜひチャレンジしてみてほしいな~。

それなりの回答が得られたので、最後に公開する - 更新を公開を押下して状況を保存します。
image.png
image.png

チャット履歴は保存されないため、出力回答は別途保存する必要があります。

4.シンプルなワークフローの動作確認(10分)

続いて、ワークフローの作成と動作について確認をしていきます。

4.1 最終形イメージ

さきほどのチャットボットと同じように、質問文をLLMが解釈/回答するというシンプルなワークフローを構成します。
image.png

4.2 設定および動作確認

まずはスタジオ画面から最初から作成を押下します。
image.png


アプリの種類としてワークフローを選択し、アプリのアイコンと名前を設定して作成するを押下します。
image.png


ワークフロー画面が開設されました。
開始というコンポーネントが初期配置されており、その後段に配置するものについての選択肢が開かれた状態になっています。
image.png


まずは、開始コンポーネントから編集します。
開始コンポーネントでは質問文を入力してもらう必要があるので、入力フィールドを押下し、変数名を作成して保存を押下します。
image.png
image.png


続いて、LLMコンポーネントを編集します。
以下の内容をコンテキストに入力します。

コンテキスト
あなたはギャルです。また、あなたは数学者でもあります。
回答は高校生にも伝わるレベルとし、ギャル語で生成してください。
  開始 / {x} quesution

image.png

開始コンポーネントの変数questionを受け取るため、コンテキスト内に受け取る変数を入力します。
なお / (スラッシュ) で予測が表示されるのでワンクリックで挿入可能です。
image.png


最後に終了コンポーネントを作成します。
まずはLLMコンポーネントの+マークから終了を押下します。
image.png


終了コンポーネントの出力変数を作成します。
LLMの出力を受け取るため、LLM / text Stringを候補からクリックします。
image.png

image.png


それでは動作確認に移ります。
公開する - アプリを実行を押下します。
image.png


アプリケーション画面に遷移します。
左ペインに入力コンポーネントの変数questionの入力ボックスが表示されるため、テキストを入力してExecuteを押下すると、ワークフロー処理が実行されます。
image.png

question
フーリエ変換について教えてください
result
ギャル語だとちょっと難しいかもだけど、頑張って解説するね!

フーリエ変換ってのは、ざっくり言うと時間領域で表されてる波形を周波数領域に変換する手法のことなのよね。なんか音楽とか聞いてて、低音と高音が混ざってるような感じで考えてみて!それをバラバラに分けることができるって感じ。
フーリエ変換のメリットは、それぞれの周波数成分がどのくらい含まれてるのかを見つけることができるってところ。だから音響工学とか通信とか、いろんなところで使われてるのよ!
でも、時刻と周波数の両方の情報がほしいときにはちょっと難しくなっちゃうの。それを解決するために使われるのがショートタイムフーリエ変換とかウェーブレット変換とか、もっと高度な手法だったりするわ。

まぁ、それでも難しいかもだけど、最初は波形を分解するってことだけ覚えておいて! ギャルでも数学は楽しいわよ♪

それなりの回答が得られたので、最後に公開する - 更新を公開を押下して状況を保存します。

5.似非MAGIシステム構築(ワークフロー)(10分)

最後に、似非MAGIシステムについて作成していきます。

5.1 最終形イメージ

エ〇ァンゲリオンにおけるMAGIシステムのような構成を構築してみます。

3つの異なった視点/観点を持つLLMの並列処理と、それらのモデレーターとしてのLLMを最後に直列させた構造を採っています。

処理 読み方 役割
MELCHIOR メルキオール 「科学者」としての意見
BALTHASAR バルタザール 「母親」としての意見
CASPER カスパー 「女」としての意見
MAGI マギ モデレーターとして回答を統括

image.png

#Azure AI Foundary プロンプトフロー版は以下

5.2 設定および動作確認

まずはスタジオ画面から最初から作成を押下します。
image.png


アプリの種類としてワークフローを選択し、アプリのアイコンと名前を設定して作成するを押下します。
image.png


入力,MERCHIOR,BALTHASAR,CASPER,終了の5コンポーネント作成については、前章 4.2 設定および動作確認 に同じため割愛します。

MERCHIOR,BALTHASAR,CASPERのLLMコンテキストは以下です。

MERCHIOR
あなたは一流の科学者です。
科学的・論理的な視点で回答してください。
回答は500文字程度としてください。
 開始 / {x} question
BALTHASAR
あなたは子供を持つ母親です。
子供に諭すような優しさをもった視点で回答してください。
回答は500文字程度としてください。
 開始 / {x} question
CASPER
あなたは独身の女性です。
感情的・情緒的な視点で回答してください。
回答は500文字程度としてください。
 開始 / {x} question

MAGIコンポーネントについては4つの入力変数と3コンポーネントの結合点になり特殊なので以下に記載します。
4つの入力変数についてはコンテキストに入力すれば問題ありません。
3コンポーネントの結合点については、コンポーネント間の矢印をドラッグアンドドロップでつなげることで設定可能となります。

コンテキスト
あなたは中立的なモデレーターです。
以下のトピックに関する回答を得ました。
 開始 / {x} question

以下の回答について、肯定も否定もせず、意見を取りまとめてください。
意見のとりまとめ結果から、最も重要な結論となる事項を1点だけとりあげてください。
 LLM/MERCHIOR / {x} text
  LLM/BARTHASAR / {x} text
  LLM/CASPER / {x} text

image.png


それでは動作確認に移ります。
公開する - アプリを実行を押下します。
image.png


アプリケーション画面に遷移します。
左ペインに入力コンポーネントの変数questionの入力ボックスが表示されるため、テキストを入力してExecuteを押下すると、ワークフロー処理が実行されます。
image.png


最後に公開する - 更新を公開を押下して状況を保存します。
image.png

image.png

5.3 似非MAGIシステムの回答

3つほど適当に質問をしてみます。

1個目

image.png

question
うま味調味料は使用するべきか、しないべきかどちらでしょうか
result
うま味調味料の使用に関する意見は多様で、使用するべきという意見もあれば、適度な使用を推奨する意見もあります。うま味調味料は食事の風味を引き立て、手軽に美味しい食事を作る手助けとなる一方、化学物質が含まれていることや、食材本来の味覚を鈍くする可能性が指摘されています。また、過剰な摂取は健康に悪影響を及ぼす可能性もあります。そのため、個々の健康状態や食事の目的に合わせて適切な使用を心掛けるべきでしょう。自然な素材からうま味を引き出す料理法も学ぶことが推奨されています。

最も重要な結論としては、「うま味調味料の使用はバランスが大切であり、食材本来の味を楽しむためにも、適度な使用と自然な素材からうま味を引き出す料理法も学ぶことが推奨されています」といえます。

2個目

image.png

question
寿命が長い動物と短い動物はどちらのほうが子供に愛情を注いでいるでしょうか
result
回答者たちは、生物学的な視点、個々の観察、個人的な解釈を用いて動物の親子間の愛情について考察しています。生活史理論に基づくと、一般的に寿命が長い動物は子供に多くの時間とリソースを投資し、寿命が短い動物は一度に多くの子供を産む傾向があります。しかし、これはあくまで一般的な傾向であり、全ての動物種がこのパターンに当てはまるわけではないとされています。また、愛情を科学的に定量化することは難しく、その定義は観察者によります。

一方、哲学的な視点からは、愛情は生涯の長さや短さではなく、その心の深さや強さによって決まるという意見があります。寿命が長い動物は子供たちが自立するまでの時間が長く、その間に愛情を形成し、深め、そして表現する時間が多いとされています。寿命が短い動物の親の愛情は、子供たちが生き残るために必要なスキルを急速に教えることに集中しており、その表現は短く、集中的だと解釈されています。

最も重要な結論としては、愛情の表現や深さは生物種や寿命による傾向があるものの、全ての親が子供たちに愛情を注ぐことは間違いないという点が挙げられます。

3個目

image.png

question
ハリネズミのジレンマの解決方法を教えてください
result
ハリネズミのジレンマについての回答は3つありますが、全ての回答が一定の共通点を持っています。それは、ハリネズミのジレンマを解決するためには、「理解」「尊重」「コミュニケーション」が重要であるという点です。具体的には、自分自身と他者の感情や欲求を理解し、それを尊重すること、そしてその感情や欲求を適切に伝えるコミュニケーションが重要であると示されています。

一つ目の回答は、科学的、論理的な手法を用いてジレンマを解決する方法を提案しています。具体的には、「コミュニケーション」「エンパシー(共感)」「自己認識と自己改善」の3つの手法を挙げています。

二つ目の回答は、自己と他者、そして自己と他者の関係性を理解すること、自己開示というスキルを磨くこと、信頼関係を築くことを挙げています。

三つ目の回答は、個々の理解とエンパシー、そしてコミュニケーションを深めることを提案しています。具体的には、相手の弱さや欠点を受け入れ、自分の感情を上手に伝えること、そしてコミュニケーションを通じて互いの距離感を調整することを挙げています。

以上の回答を基にすると、ハリネズミのジレンマを解決するための最も重要な結論は、「自己と他者の理解、尊重、そして適切なコミュニケーション」が必要であるということが挙げられます。

最後に

アプリ作成としては非常に簡単かつ短時間で作成が可能でした。
他にもRAGやWebスクレイピングなども利用可能らしく、アイデア次第でより柔軟かつ高機能な利用ができると思いますので、これからも挑戦してみようと思います。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?