はじめに
Difyというサービスを聞いたことがあるけれど、「何ができるかわからない」、「どう使うのかわからない」などの理由で使ったことがない方々は多いのではないでしょうか。
そのような方のために、「Dify で何ができるのか?や Dify を使った活用事例」を紹介する記事をシリーズ化していきます。
第1回目は、PDFファイルを日本語で要約するワークフローの作成する方法について紹介します。
この記事の対象者
- Dify という言葉を聞いたことがあるが、何ができるのかがわからない人
- Dify を業務に取り入れたいと検討している人
環境
- Chrome
- Dify v0.10.1(2024年10月25日時点)フリープラン
事前準備
- APIキーの取得
- Difyへのサインアップ
Difyとは
Difyとは、プログラミング言語を使わなくても直感的な操作でAIチャットボットやAIアプリを構築できるツールです。
Dify 特徴
Dify の3つの特徴を説明します。
- OSS(オープンソース)のLLMアプリ開発プラットフォーム
- ノーコードでAIアプリを作成できる
- 作成したAIアプリの公開が簡単にできる
-
OSS(オープンソース)のLLMアプリ開発プラットフォーム
DifyはOSSであるため誰でも自分の環境で使うことができます。またOSSであるため利用者の声が開発者に届きやすくアップデートの頻度が高いのも特徴です。
-
ノーコードでAIアプリを作成できる
Difyでの操作はノーコードで行われます。非エンジニアにでもローコストでAIアプリを作ることが可能です。
-
作成したAIアプリの公開が簡単にできる
Difyで作ったAIアプリは簡単にユーザーに共有できます。WEBブラウザでアクセスで来るURLを発行してつかってもらったり、ホームページにチャットボットとして埋め込むことも可能です。
作成するAIアプリの概要
完成イメージ
まずは、今回作成するアプリの完成イメージについてです。
このアプリは、ブラウザからAIアプリにアクセスして使用します。
使い方は以下の通りです。
- 画面の左側からファイルを選択してアップロード
- エクスキュートボタンを押す
- 右画面に要約文が表示される
作成するワークフロー
上記のアプリを構築するためにワークフローを作る説明をします。
一つ一つの処理を小さなブロック(ノード)としてつなぎ合わせて、一連のプロレスを自動化する機能です。
今回作成するワークフローのDifyの画面です。
このワークフローは、4つのブロックで構成されます。
graph LR 開始[1.開始<br>PDFのアップロード] -->ドキュメント[2.ドキュメントエクストラクター<br>PDFの読み込み] -->_LLM[3.LLM<br>読み込んだ内容を要約] -->_終了[4.終了<br>要約した結果を出力]
- 「開始」ブロックでPDFをアップロードします。
- 「ドキュメントエクストラクター」ブロックでPDFの内容を読み込み、LLMが理解できるようにします。
- 「LLM」ブロックでPDFの内容を要約します。
- 「終了」ブロックで要約した結果を出力します。
作業手順
ここからは、ワークフロー構築の手順について説明します。
手順
- APIキーのセットアップ
- ワークフローの新規作成
- ワークフロー作成画面上での作業
- ワークフローの動作確認
1. APIキーのセットアップ
- まず、右上の「Dify」を選択してから「設定」を選択します。
- 設定画面の「モデルプロバイダー」を選択し、Geminiの「セットアップ」を選択します。
- 「API key」を入力してから「保存」を選択します。
2. ワークフローの新規作成
- 最初の画面の「最初から作成」を選択します。
- 「ワークフロー」を選択し、「アプリのアイコンと名前」を記述してから「作成する」をクリックします。
3. ワークフロー作成画面上での作業
-
ワークフロー作成画面が表示されます。「開始」ノードが表示されているので「開始」ノードを選択します。
「開始」ノードにPDFをアップロードするための機能を設定します。
「+」ボタンを押します。
-
下記の表のように項目に値を設定してください。
項目 値 備考 フィールドタイプ Single File 1つのファイルをアップロードできます 変数名 file 任意の名前 ラベル名 file 任意の名前 Support File Types Document アップロード可能にするファイルの種類を選択できます。 Upload File Types Both Local Upload(ローカルに保存されているファイルをアップロード)」か、「URL(URLを取得してアップロード)」か、「Both(両方)」を選択できます 入力後、「保存」を選択します。
- 「開始」ノードの「+」ボタンを押し、ブロック一覧の「ドキュメントエクストラクター」を選択します。
-
「ドキュメントエクストラクター」の入力フィールドを編集します。
項目 値 備考 入力変数 「開始 / file File」 「開始」ノードで設定した「file」を選択します。 - 「ドキュメントエクストラクター」ノードの「+」ボタンを押し、「LLM」を選択します。
- 「LLM」ノードを選択し、モデル一覧で「Gemini 1.5 Flash」を選択します。
-
「SYSTEM」欄にプロンプトを入力します。
今回は
「以下の内容を日本語で要約してください。」
としました。💡プロンプトとは生成AIに与える指示文のことです。生成AIに何をしてほしいかを記述します。
改行し、「{x} 」ボタンを押して「ドキュメントエクストラクター」の「{x} text」を選択します。
- 「+」ボタンを押し、「終了」を選択します。
-
出力変数の変数名に「output」を入力し、変数に「LLM」の{x} textを選択します。
以上で完成です。
4. ワークフローの動作確認
-
ワークフローを作った後に正しく動くかの動作確認をします。
今回は、Apple社の業績がまとめられているファイルで実験してみました。
「公開する」を選択し、「アプリを実行」を選択します。
💡「公開する」と?アプリをすぐに利用できるWebページのURLが作成されます。ユーザーはこのURLにアクセスすることでアプリを利用できるようになります。
ただし、URLを知っている人ならば誰でも利用できるようになるため、ワークフロー内で社外秘の情報を設定している場合、外部の人間がその情報にアクセスできる危険性があります。URLの公開については社内のポリシーなどを確認してから公開しましょう。
以下のようなページに移りますので、PDFファイルをローカルからアップロードするか、PDFファイルのURLを入力します。
- 「Excute」を押します。
-
結果は、以下のようになりました。
無事にPDFを要約してくれました。
応用
今回の記事では、DifyのUI(画面)を使用したアプリを作成しましたが、Difyで作成したワークフローをSlackから呼び出して通知するアプリにすることも可能です。たとえば、SlackからPDFを投稿すると自動的にその要約が返ってくるチャンネルが作れます。
おわりに
今回の記事では、Difyを使ってPDFファイルを要約するワークフローの作成手順を紹介しました。Difyを使うことで、PDF要約に限らずデータ処理やチャットボットなど、さまざまな自動化アプリを簡単に作成できます。
今後もDifyを活用したさまざまなユースケースを紹介していく予定ですので、ぜひ引き続きご覧ください。