見出し画像

Dify ~AIアプリ作りで遊ぼう


はじめに

DifyはオープンソースのLLMアプリ開発プラットフォームです

ノーコード・ローコードでAIアプリが作れる!
と話題になっている(?)Difyで遊んでみたいと思います

なお、すでに環境構築されているクラウド版と、
ローカルに環境を作る版があるのですが
そっちのほうがNoteネタになりそうですし
このNoteではローカル版を扱おうかと思います

Dify for enterprise / organizations は、まあ関係するかた少ないでしょー
ってことで省略

環境設定方法とかデータ取得とかはDifyのGitHubを参考にします

環境作り

Dockerのインストール

Dify GitHubのガイドに従って、
まずは環境作りに必要な要件とか確認します

セーフ!!✨

えるさんPCはわりとぽんこつなので
案外危なかったです。。

環境設定としては手始めに上記の「Docker」のリンクより
Dockerをインストールしていきます

Dockerというのは、、

なんだっけ…??

…よくわかりませんが、ヨシ!!
確かあれです、環境設定するためのハコみたいな、、
こう、、なんというか…?

まあとりあえずDockerのリンク先へ飛ぶと以下の感じになります

こんな感じ

えるさんPCはWindowsなので Docker Desktop for Windowsをぽち

そして再度ぽちー

するとインストール用のファイルがダウンロードできるので
インストールしていきます

インストールは省略しつつ、、

できました✨

インストールしたDockerを起動すると以下のようなものが立ち上がります

こんなサイドバーをもつ何か

上記のContainersにいくと、たとえば以下の感じになります

こんてな?

えるさん環境はDify立ち上げ済みでNoteを作ってるのですでに何かありますが、
インストール直後だと特に何も無いはずで
Dockerを起動しDifyも入れると上記の具合になるはずです、たぶん。。

続いてDifyダウンロードに移ります

Difyのダウンロード

Difyのダウンロードは公式のGitHubより実施します

コマンドラインに慣れ親しんでいるかたはgit cloneが早いんでしょうか
あるいは、以下の感じでzipのダウンロードを実施します

こんな感じ

ダウンロードしたzipを展開すると、以下のファイルやフォルダ構成になっているはずです

Docker compose

続いてDifyの環境設定? に入ります
基本的には公式のGitHub記載の通りです

このあたり

ただ、えるさんは最初「cd docker??どこに移動??」ってなっておりました。。
私だけなんだろうか、、私だけかも?
結果としては、ダウンロードして展開したフォルダ内にdockerがあるので、
そこに移動して環境構築していきます

このあたり

WindowsだとPowershellになるんでしょうか、
えるさんPC環境だと右クリックでターミナル開けるんですが、
これは環境によるのかな?

ターミナル開いたらdocker composeでいろいろ出てきて、、
環境設定ができます(多分きっと)

完了すると、Difyが起動できるようになります

Dify起動!

初期化

初回起動時のみ初期化が入ります
これも環境設定なのかなあ
公式のGitHubで以下記載の箇所です

上記の通り、Webブラウザで localhost/install にアクセスすると
初期化のプロセスが走ります
初期化後は、localhost にアクセスでDifyのログイン画面になり、

こんな感じ

ログイン後は以下のような画面になるかと思います

Dify!


使用するAPIの設定

Dify上でLLMなどを動かすには、各種(例えばOpenAIの)APIが必要です
まずはAPIを設定していきます

右上のアカウント名クリック→設定 へ

設定

モデルプロバイダー より各種APIを設定します

この画面は設定後です

上記は設定後ですが、各種モデルの セットアップ をぽちーすると
以下のようなAPIキー入力できるので、入力していきます

モデルプロバイダー の右上のほうにある
システムモデル設定 も確か必要なので設定しましょう

テンプレートから作成 で遊ぶ

設定がだいたい出来たはずなので、いよいよDifyで遊んでいきます✨
といっても最初は何もわからないので、テンプレートを動かしてみます

ということで、テンプレートから作成をぽちー

テンプレートはいろいろありますが、ワークフローを触ってみたいので
ここではワークフローから選びます

ワークフローテンプレート

といっても最初だし簡単そうな、、
テキスト要約にしてみました

こちら

全体像は以下の感じです

入力として「要約したい内容」と「要約方法(2種類から)」を選択し、
要約方法によって、追加の知識を与える/与えないを決めて、要約、
結果を返すといったテンプレート?なのかな??👀?

お試し入力を与えてそのまま実行すると実行できました✨

入力


結果

ノードをクリックすると詳細を参照することができ、
そのまま編集したりすることもできます。

ただし、上記は例えばgpt-3.5用(というかOpenAI用?)の設定になっているようで、
例えば他のモデルに差し替えても動きませんでした💦

Command R+に差し替えても動かない図

最初上記にハマっていたのですが、
OpenAIのパラメータ設定が残っている?っぽいんですかね??
command R+ 向けに新しくノードを作って接続しなおすと動作するようです

具体的には、
マウス右クリックで Add Block 

LLM のブロックを選択

そして配置

新しく作ったLLMブロックを選択してモデル選択

元のLLMブロックからSystemプロンプトをコピー

この時点ではまだ入力をつなげてないので赤いです

元のブロック接続と同じように繋ぎ変え

青くなりました✨

繋ぎ変えたブロックの出力を受ける部分を差し替え

差し替え前、未定義になっています


差し替え後

すると動作しました✨


不要ノードはノード選択からのDelで削除できます

ノードはほかにもいろいろと種類がありますが、
ノード追加→設定→繋ぎ変え といった流れは同じなのかなあと思っています

余談

それにしても、、モデル変更したパラメータ設定(動かないやつ)と
新しく作り直したパラメータ設定(動くやつ)って
どうみても同じ設定なんですよね、、
これは何気に同じ罠にハマっている人も多いのでは…?
私だけ…??

動かないやつ。 下3つを切っても動かない。。


動くやつ

この記事が気に入ったらサポートをしてみませんか?