初心者でもできた Dify環境構築メモ(Windows+Anaconda+Docker Desktop)
こんにちは、サカタ(@sea_webm)です。マーケターとして今後必須になっていくだろうAI活用の中で、特に今熱いDifyの構築を行いましたのでメモです。
Difyとは?
ノード形式でLLM APIやプログラミング、外部APIを組み合わせて様々な処理を行うことが出来るシステムです。
見やすく、直感的なGUIと、AIシステム開発に必要な様々な機能を取り揃えています。
機能以外の魅力として、OSS(オープンソース)であり、日々アップデートが世界中の人によって行われていることが挙げられます。
この記事はなに?
Difyの環境構築をやったメモです。Windows環境で、ほぼDocker未経験の一般人が簡単に動かすところまでいけたので共有します。
環境
Windows10 21H2
Docker Desktop 4.29.0
Anaconda Navigator 2.6.0
Anacondaのインストール
一通りのPythonライブラリが必要なため、仮想環境を作ることができるAnacondaを準備します。
このページ右部にメールアドレスを入れ、Anacondaインストーラーを入手します。
入力したメールアドレスにDLリンクが書かれているのでDLします。
Anacondaについては特にインストール時に変更する項目はなく、次へ次へと進んでいきます。
Docker Desktopのインストール
続いて、Dify公式がおすすめする、Docker Composeを使用したオフライン環境構築をやっていきます。
まず、Docker Desktopを上記サイトからDLします。インストーラーを起動したら次へ次へと進んでいきます。Docker Subscription Service AgreementはAcceptをクリック。
内容は、儲かっている会社はお金払ってね!という内容です。
インストールが完了すると、サインアップウィンドウが出ますが、Continue without signing inをクリックすればサインイン不要で起動できるようです。
無事ウィンドウが表示されたら、一度PCを再起動します。
Difyのインストール
PCを再起動したら、Docker Desktopのソフトウェアを再び立ち上げます。
その後、Anacondaを起動して、Environmentsに移動します。
Createから新しい環境を作成します。名前は何でもOKです。今回は「Dify」としました。
すべてインストールが終わったら、緑の再生ボタンを押し、Open Terminalをクリックします。
次に出てきたウィンドウで、DifyをGitHubからCloneします。最新版のソースコードをコピーしてくる手順となっています。
git clone https://github.com/langgenius/dify.git
このままだと、コマンドプロンプトに記載されている場所(ディレクトリ)にインストールされます。
もしインストール先を変えたい場合は、上記コマンドの前に、別のディレクトリに移動しておきます。Dドライブに移動するなら:
D:
で、git cloneをEnterすると、ずらずらとインストールが進んでいきます。
コマンドプロンプト上での操作は下記記事がわかりやすかったです。
Difyの起動
コマンドプロンプト上で、docker-compose.yamlファイルが入っているディレクトリまで移動します。docker-composeコマンドを使用してコンテナを起動していきます。
cd dify/docker
docker-compose up -d
ここで、私の引っ掛かりポイントとして、エラーを吐きました。内容はポート80番へアクセス権限で禁止されている方法でアクセスしようとした、というもの。
調べると、すでに使われているポートと、Dockerで使用したいポートが競合しているときに起こることがあるとのことだったので、コマンドプロンプトから下記コマンドを入力し、ポートが何に使われているかを確認します。
netstat -aon | findstr :80
結果はこのとおりでした。
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
TCP [::]:80 [::]:0 LISTENING 4
一番右の4がPID(プロセスの通し番号)となっており、タスクマネージャーの詳細タブからみることができます。今回の場合PID4はSystemに使われていたので、Docker側の設定を変更します。
コマンドプロンプトに戻り、dify/dockerディレクトリにいることを確認したうえで、
start .
と入力することで、エクスプローラを開きます。VSCodeが入っている場合はcode . Cursorが入っている場合はcursor .で直接エディタを起動することもできます。今回は何も入っていない想定でメモ帳を使います。
docker-compose.yamlファイルを右クリックして、開くからメモ帳で開きます。コード最下部のportsから80:80の行を修正しました。
ports:
- "8080:80"
再度docker-compose upコマンドを入力します。
docker-compose up -d
その後docker desktopを開き、すべて緑になっていることを確認したら、nginx-1の8080:80をクリックして、初期設定画面に移動します。
起動したら管理者アカウントの設定から、任意のアドレス、ID、パスワードを設定します。
最終的にこちらの画面にいけばセットアップは完了です。
セットアップができてしまえば簡単
セットアップが完了すれば、非常にクオリティの高いシステムを動作させることができます!GPTsの簡易版であればすぐにつくることができました。
一発で起動するコマンドを作る
ChatGPTにお願いして、起動が一発でできるbatファイルを作成しました。任意の場所にdify.batを作成し、メモ帳で開きます。その後、下記をコピペ、保存するだけです。
@echo off
cd /d D:\dify\docker
docker-compose up -d
start http://localhost:8080
2行目のディレクトリと4行目のポートは各自の設定に読み替えてください。
学び
Dockerを使って起動が一通りできるようになった
Macで環境構築されている方が結構多いっぽいので、Windows特有の引っ掛かりポイントがある可能性を考慮する
README.md以外に公式セットアップ方法が載っている場合があるので、ちゃんと調べる
Pythonのライブラリが不足していて起動しないことがあったのでAnacondaを利用した
コマンドからstart .でエクスプローラを開くのは初めてやった。地味に便利。
これら含めて、知らないことを試して知っていく過程はめっちゃ面白い!
参考にした資料
Dify公式リポジトリ https://github.com/langgenius/dify
Dify公式ドキュメントhttps://docs.dify.ai/getting-started/install-self-hosted
Dify(独自AIサービスをローカル環境で簡単につくれる)を非エンジニアが試してみた - YouTube https://www.youtube.com/watch?v=XrFx6cKqqY4
ほぼこの動画のとおりやったと言っても過言ではない・・・!
ポート番号の競合でハマった話 #ポート番号 - Qiita https://qiita.com/FuuMuuToi/items/8fea28a0a771375383c9
Docker&仮想サーバー完全入門 Webクリエイター&エンジニアの作業がはかどる開発環境構築ガイド リブロワークス (著)(インプレス)
あまりにも理解が浅かったのでさらっと読んだ。
最後までご覧いただきありがとうございました。 サポートしていただけると、今後の活動の動力源になり、タイピングが10%早くなります。