28
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

会社の資料を今すぐDifyで要約しよう!

Posted at

S__6570011.jpg

はじめに

最近、Qiitaに投稿される記事を見ていると、「Dify」という単語をよく目にするようになりました。記事の内容から、自分のPC上でChatGPTのような「チャットボット」を簡単に作成できるツールのようだと感じたため、今回はDifyの構築方法や操作感について確認してみることにしました。

Difyのインストール

Difyのインストールと環境設定は、公式サイトの以下のページを参考に進めました。

今回はWindows OSgitコマンドを実行できるように事前にインストールしておく必要があります。また、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で確認すると、複数のサーバが一斉に起動しているのがわかります。

image.png

ここまででDifyがPC上で起動し、Webブラウザから操作できるようになります。

Difyの起動と設定

ここでは、Difyの起動方法と設定手順について解説します。

Difyの起動

まず、Difyの起動を確認します。Webブラウザで以下のURLにアクセスしてください。

http://localhost

image.png

画面の下部に「管理者アカウントの設定」が表示されているので、そこをクリックしてください。

login.jpg

初回は「メールアドレス」と「パスワード」を設定してサインインします。2回目以降は、登録済みの「メールアドレス」と「パスワード」でログインできます。

APIキーの設定

今回は数あるLLMの中からChatGPTを使ってチャットボットを構築するため、APIキーの設定が必要です。まず、画面右上の自分の名前をクリックし、「設定」を選択します。

image.png

すると、以下のような「設定画面」が表示されるので、左側の「モデルプロバイダー」をクリックしてください。OpenAIというタイルが表示されるので、そのタイルにカーソルを合わせると「セットアップ」ボタンが表示されます。それをクリックします。
image.png

次に、入力画面が表示されるので、指示に従って必要な情報を入力してください。
image.png

主な入力項目

項目 説明
API Key OpenAI APIのキーを入力します。
Organization 個人利用の場合は、特に入力は不要です。

入力が完了したら、「保存」ボタンをクリックします。これでOpenAIのAPIが利用可能になります。

image.png

また、「35のモデル」と表示されている部分をクリックすると、利用可能なLLMモデルの一覧が表示されます。

image.png

ナレッジの登録

次に、「ナレッジ」を登録します。これはRAGと似たような機能です。「ナレッジ」として登録したファイルの情報をベクトル化し、そのファイルに特有の情報を検索できるようになります。まず、上部の「ナレッジ」をクリックしてください。すると、以下の画面が表示されると思いますので、「ナレッジを作成」をクリックします。

image.png

すると、以下のような画面が表示されますので、今回は「テキストファイルからインポート」をクリックして、PDFファイルをアップロードしてみます。「ファイルをドラッグ&ドロップするか」というエリアに、ファイルをドロップしてください。今回は、私が4月から受講を希望している「SBI大学院大学の春学期募集要項」をアップロードし、さまざまな質問をしてみたいと思います。

image.png

ファイルをドロップすると、以下の図のように「次へ」ボタンが表示されるので、クリックしてください。

image.png

次に、以下の図のようにプレビューが表示されるので、画面の一番下にある「保存して処理」ボタンをクリックしてください。
image.png

「ドキュメントに移動」ボタンをクリックしてください。
image.png

今回は1つのドキュメントだけですが、一覧が表示され、「ステータス」が「利用可能」となっていれば、ベクトル化が完了したことを示しています。

image.png

スタジオの作成

次に「スタジオ」を作成します。今回は、先ほどベクトル化した資料を使用して「チャットボット」を作成してみます。まず、上部の「スタジオ」をクリックし、左側にある「最初から作成」を選択してください。

image.png

「アプリのアイコンと名前」で名前を入力して「作成する」ボタンをクリックします。
image.png

画面が表示されたら、試しに右下の「ボットと話す」にプロンプトを入力してみましょう。
image.png

左下には「コンテキスト」という文字が見え、個別にベクトル化されたデータを設定できます。コンテキストの枠内にある「+ 追加」をクリックすると、すでにベクトル化されたドキュメントの一覧が表示されるので、選択して「追加」ボタンをクリックします。

既にベクトル化されているドキュメントが列挙されますので、選択して「追加」ボタンをクリックします。
扱いたいドキュメントの名前を必ず選び、ダイアログの左下に「1選択された知識」という表示が出ていることを確認して「追加」ボタンをクリックしてください。
image.png

設定が完了すると、以下の図のように選択したドキュメントが設定されます。
image.png

プロンプト実行

それでは、プロンプトを実行してみましょう。「願書出願の期限は?」と入力します。
image.png
なかなか良い結果ですね。

次に、「SBI大学院大学の学長は?」
image.png
これも良い結果です。参照した資料も掲載しています。

次は少し難しい質問をしてみますので、資料を参照しているかどうかが分かるでしょう。
「レポート課題等への対応のために必要なものは?」
image.png
パーフェクト!

これでRAGは実現できました。

アプリを公開する

これまでの画面は開発者向けでしたが、今度は開発者以外の一般の方にも公開する必要があります。右上の「公開する」ボタンをクリックしてください。

image.png

上図のようになるので「アプリを実行」をクリックしてください。

image.png

「Start Chat」をクリックします。

image.png

では、同じ質問をしてみたいと思います。「願書出願の期限は?」

image.png

これで、利用者もチャットボットが利用できるようになりました。

ローカルLLMの利用

ローカルLLMであるOllamaも利用することができます。

image.png

Ollamaのタイルにカーソルを合わせ、「+モデル追加」をクリックします。すると、以下のようなダイアログが表示されるので、「Model Name」と「Base URL」にそれぞれ入力します。今回はllama3.2を適用したいので、その名前を入力し、「Base URL」には「http://host.docker.internal:11434」と入力しました。

image.png

これにより、以下のようにOllamaも登録されましたので、OpenAIと同様にLLMembeddingを利用できるようになります。

image.png

おわりに

今回はDifyを導入し、生成AIを手軽に使ってみることに挑戦しました。操作方法は簡単で、ある程度の知識があれば誰でも利用できそうです。また、この利用シチュエーションについて考えてみると、例えば会社で分厚いPPTやWordなどの資料を手渡されることはありませんか。もし上司から資料を受け取ったら、すぐにDifyでドキュメントをベクトル化し、さまざまな質問をすることができます。特にOllamaLLMembeddingを適用することで、外部に重要な情報が漏れることもなく、安心して生成AIを利用できるでしょう。

長文を最後までお読みいただき、ありがとうございました。

28
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?