LM Studio は、簡単にローカルで複数のLLMを試す事ができる便利なアプリです
以前、このサイトでも記事にしました。
Difyは、チャットボットなど、AIアプリを比較的簡単に作成する事ができるアプリですが、LM Studioと連携する事で、ローカルでのチャットボットが作れそうです。
今回は、まずDifyを起動させてみました。
Difyの詳しい使用方法は、ネット上に沢山情報があるので、検索してみてください。
筆者もこれから触ってみて、記事にできそうであれば、レポートしたいと思います
Difyの立ち上げはそれほど難しくはないですが、ちょっと余計な事して、思うように動作せず、かなり悩んでしまったので、覚書かねて、レポートします。
Difyをローカルで立ち上げる
Difyは、クラウド上にも、Webアプリサービスが提供されており、サブスクで利用することもできますhttps://cloud.dify.ai/signin
ただ、オープンソースも公開されており、個人PCでクローン化すれば、無料で制限なく使用できますが、通常のwindowsインストールとは、ちょっと違う作業が必要です。
- 「WSL2」環境の構築
- 「Git」のインストール
- 「Docker Desktop」のインストール
- 「Docker」で「Dify」をクローン化して利用可能にする
もともとは、Linux環境で開発されたソフトウェアなので、通常のWindowsアプリをインストールするよりも、コマンド作業も出てくるので、戸惑う事もありますが、一ステップずつやっていけば、意外と簡単です。
WSL2インストール
Linux 用 Windows サブシステム 機能の有効化
「Docker」は「Windows Subsystem for Linux」上で動作するので、WSLの環境が必要です。
最近のPCであれな、デフォルトで有効になっているのかもしれませんが、古い場合事前の設定が必要です。
WSLの環境ができていなくても、機能が有効になっていれば「Docker Desktop」のインストーラがやってくれますが、警告メッセージや更新作業などの要求がでる場合があるので、事前にWSL環境を作っておいたほうがいいと思います。
WSLの環境ですが、古いマシンの場合、場合よっては、BIOSでの仮想マシン有効設定が必要な場合もあるようです。
古いマシンを利用する場合には、事前に調査しておいたほうがいいと思います。
BIOS的に、仮想マシンが有効であれば、
コントロールパネル ⇒ プログラム ⇒
⇒ 「プログラム機能:windowsの機能の有効化または無効化」
で、「Linux用Windiwsサブシステム」と「仮想マシンプラットフォーム」にチェックをいれます、

「OK」ボタンを押すと、自動的に必要なファイルを検索し、構築してくれます。
作業が終了したら、WIndowsを再起動します。
WSL更新
再起動後は、「コマンドプロンプト」でアップデートしておきます。
C:\Users\hogehoge>wsl --update
更新プログラムを確認しています。
Linux 用 Windows サブシステムをバージョンに更新しています: 2.4.12。
Git のインストール
「Git」は、Windowsのインストーラが用意されているので、比較的簡単にインストールできます。
こちらにアクセスし、「Click here to download 」でダウンロードして実行します。
いろいろ選択するダイアログが出てきますが、私はダウンロード先を「Dドライブ」に変更しただけで、すべてデフォルトでインストールしました。
Docker Desktopインストール
「Docker」は、複数の開発環境を、パッケージにしてアプリを実行できるアプリです。
環境ごとに、ハードウェアを用意する必要がないので、特に開発側ではよく使われているようです。
Difyを動かすには、「Dify」環境を「Docker」内でパッケージ化して、動作させます。
「Docker Desktop」は、Windowsインストーラも用意されているので、比較的簡単にインストールできます。
ただし、完全無料ではありません。
下記を超える規模の企業で利用する場合、利用回数制限やサブスク型有料になります。
個人・従業員250人未満かつ年間収益1,000万ドル以下の企業
実際の動作環境は、裏で「Docker Engine」が働いているようで、こちらだけであれば、オープンソースで公開されています。
ただし、こちらは、Linuxでのコマンド操作が必要になりそうです。
ちょっと興味もありますが、まずは「Docker Desktop」で進めます
インストール
こちらに、アクセスし、「Download Docker Desktop」から「Download for Windows-AMD64」をダウンロードし実行ます。
Windowsの警告などのメッセージがでる事もありすが、許可すると確認の画面が出てきます
「OK」でインストールが始まります。



終了すると、再起動要求がない場合には不要かもしれませんが、念のため再起動しておきましょう。
Windowsが再起動すると、上記の「Configuration」⇒「Add shortcut desktop」にチェックを入れておいた場合、デスクトップに「Docker」のショートカットが作られていると思います。
もし作られていない場合、PCの環境が管理者権限を必要としているかもしれません。
通常は、ショートカットのアイコンで起動できますが、作られていない場合、タスクメニューからでも起動できます。
ただし、ショートカットが作られなかった場合、管理者権限で実行しないと、正常に起動しない場合もあります。
管理者権限での起動の場合、下記の説明と違ってくるかもしれませんので、ご了承ください。
セットアップ
最初の起動では、タコやクジラのイラストの画面が立ち上げります。

これは、上記でも少し説明した、ライセンスに関しての注意事項です。
個人使用や指定規模未満の企業であれば「Accept」で次へ進みます。



「Welcom_to_Docker」と「Welcom Survey」は「Skip」でも大丈夫です。
無事に次に進むと、「Containers」の説明などへのリンクが表示されます。
これで、「Docker Desktop」のインストールは完了しています。
次にいよいよ、「Dify」をクローン化して使えるようにしていきます。
クローン化は、ターミナルでコマンドを入力して実行しますが、「コマンドプロンプト」や「PowerShell」を開いてもいいし、最後の画面右下の「>_Terminal」も利用できます。
Difyのインストール
「Docker」を使って「Dify」を起動させるには、次の操作を行います
- GitHub に公開されている dify プロジェクトのソースコードをダウンロードし、複製する。
- Docker Composeというツールを使って複製されたアプリの構築と起動する。
GitアプリでGithubで公開されている、difyのコードをクローン化する
「PowerShell」などのターミナルを開き、次のコマンドを実行します。
git clone https://github.com/langgenius/dify.git
このコマンドを実行すると、カレントディレクトリに、「dify」、さらにその下に「docker」ディレクトリが作成され、「docker」内に、difyがクローン化されます。
★ここで、失敗談
カレントディレクトリと言う考えが良くなかったようで、カレントに入るのであれば、カレントを変更すれば、Dドライブなどにもインストールできるな!
と、勝手に思ってしまいました。
通常のアプリのインストールでも、なるべくCドライブへは入れないようにしています。
試しに、クローン化前に、ターミナルから「ch」コマンドでカレントディレクトリを変更し、やってみたところ正常にクローン化され、その後の「Docker Compose」も「Dify」も正常に動作しているように見えました。
しかし、Difyを触っていて、LLMの「APIキー」の認証がうまくいきませんでした。
「Dify」の動作自体は正常だったので、「APIキー」の認証方法が悪いのか?と結構悩みましたが、デフォルトの設定がWindowsでログインしているユーザーのホームディレクトリを想定しるとすれば、「APIキー」がうまく書き込めない可能性も考えられます。
設定用のYAMLファイルや、環境変数を編集する事で、正常にできそうではありますが、慣れないうちは、ログインユーザーフォルダでの作業がよさそうです。
それでは、ターミナルを開いた状態で、クローン化していきます。
PS C:\Users\hoge> git clone https://github.com/langgenius/dify.git
Cloning into 'dify'...
remote: Enumerating objects: 146709, done.
remote: Counting objects: 100% (800/800), done.
remote: Compressing objects: 100% (440/440), done.
Receiving objects: 5% (7336/146709), 3.07 MiB | 6.10 MiB/s, done.
Receiving objects: 6% (8803/146709), 3.07 MiB | 6.10 MiB/s, done.
・
・
これで、「C:\Users\hoge」直下に「dify」、さらにその下に「docker」ディレクトリが作成され、その中に必要なファイル群が作成されてます。
作成されたファイル群には、環境ファイルのサンプルも入っているので、そのファイルをコピーし、必要あれば、編集して、アプリのパッケージ(コンテナ)を生成します。
まずディレクトリを「dify\docker」に移動し、その中に作成されている、サンプル環境変数を正式な環境変数としてコピーし、「docker compose」コマンドで、コンテナを起動させます。
環境ファイルサンプル「.env.example」を、「.env」の名前でコピーし
「docker compose」コマンドで、コンテナを操作します
PS C:\Users\hoge>cd dify\docker
PS C:\Users\hoge\dify\docker> copy .env.example .env
PS C:\Users\hoge\dify\docker> docker compose up -d

ちなみに、AIに「docker compose up」は何者なのか?聞いてみました。
docker compose up -d
コマンドは、Docker Compose ファイルに従って、コンテナをデバッグモードで起動・実行するコマンドです。
解説:docker-compose
: Docker Compose を使うためのツール。複数のコンテナとそれらの依存関係を管理するためのファイル(docker-compose.yml)を読み込み、その定義に基づいてコンテナを操作します。up
: Docker Compose ファイルに従ってコンテナを起動するコマンドです。-d
: デバッグモードで実行することを意味します。このオプションを使えば、コンテナがバックグラウンドで動作し、ターミナルからは出力されなくなります。docker compose up -d
を実行すると:docker-compose.yml
ファイルを読み込みます。
定義されている各サービス (アプリケーション) のためのコンテナを起動します。
サービス間の依存関係を自動的に解決し、必要な順序でコンテナを立ち上げます。
バックグラウンドでコンテナが動作を開始します。
使用例:docker-compose.yml
ファイル内に複数のアプリケーションが定義されており、それらが互いに連携して動作する場合に便利です。例えば、ウェブサーバーとデータベースの連携などを設定する際に役立ちます。
らしいです。
さて、正常に完了すると、Webブラウザで下記アドレスにアクセスすると、Difyが起動します。
http://localhost/install

Difyが動き出した
やっと動き出しました。
いらん事しなけりゃ、簡単でしたが、結構悩んでしまいました。
Difyは、まだ触り始めですが、チャットだけでなく、AIを利用したいろいろなアプリを自分で作成きそうです。
次は、DifyとLM Studioを連携させて、ローカルLLMでのチャットボットを作ろうと思います。
ローカルであれば、セキュリティ的なリスクもかなり少なりますし、オンラインLLMを使用する場合の制限や課金も抑える事ができると思います。
コメント