会社の資料を今すぐDifyで要約しよう!
はじめに
最近、Qiitaに投稿される記事を見ていると、「Dify」という単語をよく目にするようになりました。記事の内容から、自分のPC上でChatGPTのような「チャットボット」を簡単に作成できるツールのようだと感じたため、今回はDifyの構築方法や操作感について確認してみることにしました。
Difyのインストール
Difyのインストールと環境設定は、公式サイトの以下のページを参考に進めました。
今回はWindows OS
でgitコマンドを実行できるように事前にインストールしておく必要があります。また、Docker Desktopもあらかじめインストールされていることが前提条件です。これらの手順については、多くのサイトで詳しく解説されているので、そちらを参考にしてください。
事前に必要なこと:
項目 | 説明 |
---|---|
git | コマンドプロンプトでgit を実行する必要があるため、事前にインストールをお願いします。 |
Docker Desktop |
Dify のサーバ構成はコンテナ環境で提供されているため、一括インストールにDocker Desktopが必要です。 |
Difyのインストール手順
まず、git
を使ってDifyに関連するモジュールをクローン(ダウンロード)します。
git clone https://github.com/langgenius/dify.git
クローンが完了すると、dify
フォルダがカレントディレクトリに作成されます。その中のdocker
フォルダに移動します。
cd dify/docker
次に、デフォルトで用意されている.env.example
ファイルを.env
として複製し、環境設定ファイルを作成します。
cp .env.example .env
以下のコマンドを実行して、Docker
で「イメージ」と「コンテナ」を作成します。
docker compose up -d
git pull origin main
docker compose down
docker compose pull
docker compose up -d
Docker Desktopで確認すると、複数のサーバが一斉に起動しているのがわかります。
ここまででDifyがPC上で起動し、Webブラウザから操作できるようになります。
Difyの起動と設定
ここでは、Difyの起動方法と設定手順について解説します。
Difyの起動
まず、Difyの起動を確認します。Webブラウザで以下のURLにアクセスしてください。
http://localhost
画面の下部に「管理者アカウントの設定」が表示されているので、そこをクリックしてください。
初回は「メールアドレス」と「パスワード」を設定してサインインします。2回目以降は、登録済みの「メールアドレス」と「パスワード」でログインできます。
APIキーの設定
今回は数あるLLMの中からChatGPTを使ってチャットボットを構築するため、APIキーの設定が必要です。まず、画面右上の自分の名前をクリックし、「設定」を選択します。
すると、以下のような「設定画面」が表示されるので、左側の「モデルプロバイダー」をクリックしてください。OpenAIというタイルが表示されるので、そのタイルにカーソルを合わせると「セットアップ」ボタンが表示されます。それをクリックします。
次に、入力画面が表示されるので、指示に従って必要な情報を入力してください。
主な入力項目
項目 | 説明 |
---|---|
API Key | OpenAI APIのキーを入力します。 |
Organization | 個人利用の場合は、特に入力は不要です。 |
入力が完了したら、「保存」ボタンをクリックします。これでOpenAIのAPIが利用可能になります。
また、「35のモデル」と表示されている部分をクリックすると、利用可能なLLMモデルの一覧が表示されます。
ナレッジの登録
次に、「ナレッジ」を登録します。これはRAGと似たような機能です。「ナレッジ」として登録したファイルの情報をベクトル化し、そのファイルに特有の情報を検索できるようになります。まず、上部の「ナレッジ」をクリックしてください。すると、以下の画面が表示されると思いますので、「ナレッジを作成」をクリックします。
すると、以下のような画面が表示されますので、今回は「テキストファイルからインポート」をクリックして、PDFファイルをアップロードしてみます。「ファイルをドラッグ&ドロップするか」というエリアに、ファイルをドロップしてください。今回は、私が4月から受講を希望している「SBI大学院大学の春学期募集要項」をアップロードし、さまざまな質問をしてみたいと思います。
ファイルをドロップすると、以下の図のように「次へ」ボタンが表示されるので、クリックしてください。
次に、以下の図のようにプレビューが表示されるので、画面の一番下にある「保存して処理」ボタンをクリックしてください。
「ドキュメントに移動」ボタンをクリックしてください。
今回は1つのドキュメントだけですが、一覧が表示され、「ステータス」が「利用可能」となっていれば、ベクトル化が完了したことを示しています。
スタジオの作成
次に「スタジオ」を作成します。今回は、先ほどベクトル化した資料を使用して「チャットボット」を作成してみます。まず、上部の「スタジオ」をクリックし、左側にある「最初から作成」を選択してください。
「アプリのアイコンと名前」で名前を入力して「作成する」ボタンをクリックします。
画面が表示されたら、試しに右下の「ボットと話す」にプロンプトを入力してみましょう。
左下には「コンテキスト」という文字が見え、個別にベクトル化されたデータを設定できます。コンテキストの枠内にある「+ 追加」をクリックすると、すでにベクトル化されたドキュメントの一覧が表示されるので、選択して「追加」ボタンをクリックします。
既にベクトル化されているドキュメントが列挙されますので、選択して「追加」ボタンをクリックします。
扱いたいドキュメントの名前を必ず選び、ダイアログの左下に「1選択された知識」という表示が出ていることを確認して「追加」ボタンをクリックしてください。
設定が完了すると、以下の図のように選択したドキュメントが設定されます。
プロンプト実行
それでは、プロンプトを実行してみましょう。「願書出願の期限は?」と入力します。
なかなか良い結果ですね。
次に、「SBI大学院大学の学長は?」
これも良い結果です。参照した資料も掲載しています。
次は少し難しい質問をしてみますので、資料を参照しているかどうかが分かるでしょう。
「レポート課題等への対応のために必要なものは?」
パーフェクト!
これでRAGは実現できました。
アプリを公開する
これまでの画面は開発者向けでしたが、今度は開発者以外の一般の方にも公開する必要があります。右上の「公開する」ボタンをクリックしてください。
上図のようになるので「アプリを実行」をクリックしてください。
「Start Chat」をクリックします。
では、同じ質問をしてみたいと思います。「願書出願の期限は?」
これで、利用者もチャットボットが利用できるようになりました。
ローカルLLMの利用
ローカルLLMであるOllama
も利用することができます。
Ollama
のタイルにカーソルを合わせ、「+モデル追加」をクリックします。すると、以下のようなダイアログが表示されるので、「Model Name」と「Base URL」にそれぞれ入力します。今回はllama3.2
を適用したいので、その名前を入力し、「Base URL」には「http://host.docker.internal:11434」と入力しました。
これにより、以下のようにOllama
も登録されましたので、OpenAI
と同様にLLMやembeddingを利用できるようになります。
おわりに
今回はDifyを導入し、生成AIを手軽に使ってみることに挑戦しました。操作方法は簡単で、ある程度の知識があれば誰でも利用できそうです。また、この利用シチュエーションについて考えてみると、例えば会社で分厚いPPTやWordなどの資料を手渡されることはありませんか。もし上司から資料を受け取ったら、すぐにDifyでドキュメントをベクトル化し、さまざまな質問をすることができます。特にOllama
のLLMやembeddingを適用することで、外部に重要な情報が漏れることもなく、安心して生成AIを利用できるでしょう。
長文を最後までお読みいただき、ありがとうございました。
Discussion