SLM+RAGでAIエージェントを構築する Dify編
構築作業の2-3までは以下と同じものが使えるので、以前取ったバックアップがあれば流用出来ます。
バックアップがない場合は、前連載を辿って同じものを構築願います(コピペで出来ます)。
- 2-1 事前準備
- 2-2 構築作業:WSL(Linux実行環境)の構築
- 2-3 構築作業:python仮想環境の構築
- 2-4 構築作業:DockerとDify他のインストール
1. Difyと周辺ツールを登録し、AIエージェントを構築する
⓪ WSL環境のコピー
WD-Ubuntu-DFで作成します。
- 管理者権限でのPowerShellを起動します。
- 以下のコマンドで実証環境(WSL)を起動します。
PS> $DFBackupPath = "F:\LLM\WSLData\WD-BAK" PS> $DFInstancePath = "F:\LLM\WSLData\WD-DF" PS> wsl --import WD-Ubuntu-DF $DFInstancePath $DFBackupPath\WD-PC.2-3.tar
① WSL環境へのログイン
- 管理者権限でのPowerShellを起動します。
- 以下のコマンドでDify環境(WSL)を起動します。
PS> wsl -d WD-Ubuntu-DF
② Dify用のPython仮想環境を新規作成
WSLターミナルにログイン後、新しいPython仮想環境 df-env を作る
# 現在のディレクトリでPython 3.11を使うように設定
$ pyenv local 3.11
# Python 3.11のバイナリを使用してuvで仮想環境を作成
$ uv venv df-env
$ source df-env/bin/activate
新規作成したPython仮想環境 df-env に切り替え完了。
③ Dockerの登録
# パッケージリストを更新
$ sudo apt-get update
# 必須パッケージをインストール
$ sudo apt-get install -y ca-certificates curl gnupg
# Dockerの公式GPGキーディレクトリを作成
$ sudo install -m 0755 -d /etc/apt/keyrings
# GPGキーをダウンロードし、キーリングに追加
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# キーリングの権限を設定
$ sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Dockerリポジトリをaptソースリストに追加
$ echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 再度パッケージリストを更新
$ sudo apt-get update
# Docker EngineとCLIをインストール
$ sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 現在のユーザーをdockerグループに追加
$ sudo usermod -aG docker $USER
「Error」表示がなければOKです。
確認後、以下のコマンドでWSLを抜けてください。
(一度WSLを再起動する必要があります)
$ exit
Powershell状態で、一度wslを停止させ、再起動します
PS> wsl --shutdown
PS> wsl -d WD-Ubuntu-DF
④ Dify他の登録
Python仮想環境(Dify用)にログイン
$ cd
$ source df-env/bin/activate
仮想環境のホームに移動してDifyダウンロード
$ cd df-env
$ git clone https://github.com/langgenius/dify.git
# difyのDockerソースディレクトリに移動
$ cd dify/docker
# サンプルファイル (.env.example) をコピーして、.env ファイルを作成
$ cp .env.example .env
# docker起動
sudo service docker start
sudo docker compose up -d
一応これでDify画面が出て来るのを確認、幾つかワークフローのテンプレートを見た。
ノーコードツールとしては及第点、テンプレ豊富。
Langflowの方が性に合ったので、一応起動まで出来る状態でストップ。
(dockerは落として戻すと前の状態を記憶していたので、永続化も出来ている模様?)
前の資源を使って数時間で出来たのが良いところかな。
正直、Difyは構築の苦労自体はDockerのおかげでLangflow環境を素で組み上げたのとは文字通り比較にならないくらい楽。
Docker全盛なのも、ほぼどんな環境でもDockerが立ち上がれば素通しで移植できるからで、しかもこの環境はSQLデータベースまで入ってたので(プロセスが動いてたかどうかは確認していない:sqlite3であったところで結果は同じだが)それ自体は高評価に値する。
しかし、フローがGUIに寄りすぎてて、EUC(エンドユーザーコンピューティング)には絶好だが(イテレータがちゃんと準備されているのでループ処理が出来る)こちらで考えているトライアルにはちょっと不十分。
Bye.


