1. はじめに
前に OpenAI Agents SDK を試してみましたが、チャットボットを作成するのであれば Dify も良さそうだったので試してみました。
ローコード、ノーコードのツールと生成AIの組み合わせが注目されています。Difyはその一つで、AIアシスタントやチャットボットを簡単に作成できるプラットフォームです。
Difyにはクラウド版とセルフホスト版がありますが、セルフホスト版でチャットボットを作成してみます。
ちなみに、ディフィ が正式な読み方になったようです。
公式サイトはこちらです: https://dify.ai/jp
2. Dify のインストール
セルフホスト版は、Dockerを使ってインストールします。
Docker と Docker Compose がインストールされていることを前提とします。
2.1. Dify のソースコードを取得
以下のコマンドで Dify をダウンロードします。
git clone https://github.com/langgenius/dify.git
cd dify/docker
2.2. 環境変数の設定
中身を書き換える必要はありませんが、.env.example
を .env
にコピーします。
cp .env.example .env
2.3. Docker コンテナの起動
docker-compose up -d
以上で、Dify のインストールは完了です。
2.4. ブラウザで確認
ブラウザを開いて、http://localhost
にアクセスします。Dify の管理者アカウントの設定画面が表示されれば、インストールは成功です。
管理者として登録するメールアドレスとユーザー名とパスワードを入力して、アカウントを作成します。
サインイン画面に切り替わるので、登録した情報でサインインしダッシュボードが表示されれば成功です。
2.5. ソースコード更新
Dify のソースコードを更新するには、以下のコマンドを実行します。
# ソースコード更新
cd dify
git pull origin main
# docker再起動
cd docker
docker compose down && docker compose up -d
3. LM Studio でモデルの準備
LM Studio はインストールされていることを前提とします。
インストール方法は省略します。
モデル選択は簡単な解説を記載します。
LM Studio の左メニューにある虫眼鏡(探索)のアイコンをクリックし、モデルのモーダルを表示します。
モデルの検索で「gtp-oss-20b」と入力し、OpenAI のモデルを見つけダウンロードします。
左メニューにあるコンソール(開発者)のアイコンをクリックし画面を切り替え。
Ctrl+L でモデルの選択画面を表示します。
モデルの読み込みが完了するとステータスが「READY」になります。
読み込んだモデルの上に、Status: Stopped
の部分をクリックし、Status: Running
に変更します。
外部から接続できるIPとポートが Reachable at: http://xxx.xxx.xxx.xxx:1234 と表示されれば、モデルの準備は完了です。
4. プラグインの追加
ここからまた Dify に戻ります。
Dify から LM Studio のモデルを使うためのプラグインを追加します。
画面右上のプラグインアイコンより、「プラグイン」→「マーケットプレイスを探索する」→「検索プラグイン」にて OpenAI-API-compatible
を検索し、インストールします。
※LM Studio
というプラグインがあるのですが、こちらバージョンの問題か pydantic
のエラーが出てうまく動作しないです。
続いて、画面右上のアカウントアイコンからメニューを開き、「設定」→「モデルプロバイダー」を選択します。
プラグインで追加した OpenAI-API-compatible
があるので、「モデルを追加」→「新しいモデルを追加する」を選択。
必須項目のみ入力します。必須でないところは空欄で大丈夫です。
項目 | 入力内容 |
---|---|
認証名 | gpt-oss-20b |
Model Type | LLM |
Model Name | openai/gpt-oss-20b |
API endpoint URL | http://xxx.xxx.xxx.xxx:1234/v1 |
Model context size | 4096 |
上記設定で保存します。
5. チャットボットの作成
http://localhost/apps
にアクセスし、テンプレートから作成
をクリックします。
テンプレートの一覧が表示されるので、検索からチャットボットを選択します。
チャットボットのテンプレートが表示されるので、Code Interpreter
を選択し、このテンプレートを使用する
をクリックします。
テンプレートを開くと、使用できないモデルが選択されているので、先ほど追加した gpt-oss-20b
に変更します。
変更すると、パラメータの設定が表示されるので、必要に応じて変更します。
今回はデフォルトのまま保存しました。Max Tokens は 4096 に変更しても良いかもしれません。
デバッグとプレビューから動作の確認が行えます。ローカル LLM なので、レスポンスが少し遅いですが、問題なく動作しました。
初期の会話を変更するため、管理 →
から、会話の開始
の オープナーを書く
を選択します。
会話の開始のダイアログが表示されるので、内容を変更します。
日本語に訳して保存して閉じます。
リフレッシュで履歴をクリアし、再度デバッグとプレビューで動作確認します。
日本語にしたからか、回答も日本語になりました。
デバッグとプレビュー
の左に、プロンプト
などがありますが、今回は特に変更しません。
モデル選択の右隣に、公開
ボタンがあるので、クリックします。
アプリの実行
をクリックすると、別タブでチャットボットの画面が表示されます。サイトに埋め込む
をクリックすると、HTMLコードが表示されるので、コピーして自分のサイトに貼り付けることもできます。
すごく簡単にチャットボットが作成できました。
6. まとめ
Dify と LM Studio を使って、簡単にチャットボットを作成することができました。
プログラミングの知識がなくても、AIを活用したチャットボットを作成できる時代になりました。
オーケストレーションツールとしても優れており、様々なAIモデルやサービスと連携できるため、用途に応じた柔軟なチャットボットの構築が可能です。
というより、SDK 使って自分でコードを書くよりも、Dify で作成した方が早い上に、メンテナンスも楽そうです。
フロントエンド側を React や Vue.js で作成し、バックエンド側を Dify で作成するのが良さそうです。
今回の記事も、Github Copilot が半分くらい書いてくれました。
A. 参考サイト
【インストールとセットアップ】Difyを使いこなすためのガイドブック-③
コメント