TECH BLOG

エルカミーの技術ブログです

【Difyで作るシリーズ 1】PDFファイルの要約

はじめに

Difyというサービスを聞いたことがあるけれど、「何ができるかわからない」、「どう使うのかわからない」などの理由で使ったことがない方々は多いのではないでしょうか。

そのような方のために、「Dify で何ができるのか?や Dify を使った活用事例」を紹介する記事をシリーズ化していきます。

第1回目は、PDFファイルを日本語で要約するワークフローの作成する方法について紹介します。

この記事の対象者
  • Dify という言葉を聞いたことがあるが、何ができるのかがわからない人
  • Dify を業務に取り入れたいと検討している人
環境
  • Chrome
  • Dify v0.10.1(2024年10月25日時点)フリープラン
事前準備
  • APIキーの取得
    • Gemini APIの場合
      1. ここにアクセスし、「APIキーを作成」を選択します
      2. 「新しいプロジェクトでAPIキーを作成」を押します
      3. APIキーをコピーします
    • Open AI APIの場合

      サインアップした後、こちらからAPIキーを作成し、保存してください。

  • Difyへのサインアップ

Difyとは

Difyとは、プログラミング言語を使わなくても直感的な操作でAIチャットボットやAIアプリを構築できるツールです。

image block

Dify 特徴

Dify の3つの特徴を説明します。

  1. OSS(オープンソース)のLLMアプリ開発プラットフォーム
  2. ノーコードでAIアプリを作成できる
  3. 作成したAIアプリの公開が簡単にできる

  1. OSS(オープンソース)のLLMアプリ開発プラットフォーム

    DifyはOSSであるため誰でも自分の環境で使うことができます。またOSSであるため利用者の声が開発者に届きやすくアップデートの頻度が高いのも特徴です。

  2. ノーコードでAIアプリを作成できる

    Difyでの操作はノーコードで行われます。非エンジニアにでもローコストでAIアプリを作ることが可能です。

  3. 作成したAIアプリの公開が簡単にできる

    Difyで作ったAIアプリは簡単にユーザーに共有できます。WEBブラウザでアクセスで来るURLを発行してつかってもらったり、ホームページにチャットボットとして埋め込むことも可能です。

作成するAIアプリの概要

完成イメージ

まずは、今回作成するアプリの完成イメージについてです。

このアプリは、ブラウザからAIアプリにアクセスして使用します。

イメージ

使い方は以下の通りです。

  1. 画面の左側からファイルを選択してアップロード
  2. エクスキュートボタンを押す
  3. 右画面に要約文が表示される
image block
作成するワークフロー

上記のアプリを構築するためにワークフローを作る説明をします。

💡
ワークフローとは

一つ一つの処理を小さなブロック(ノード)としてつなぎ合わせて、一連のプロレスを自動化する機能です。

今回作成するワークフローのDifyの画面です。

image block

このワークフローは、4つのブロックで構成されます。

graph LR
	開始[1.開始<br>PDFのアップロード]
	-->ドキュメント[2.ドキュメントエクストラクター<br>PDFの読み込み]
	-->_LLM[3.LLM<br>読み込んだ内容を要約]
	-->_終了[4.終了<br>要約した結果を出力]
  1. 「開始」ブロックでPDFをアップロードします。
  2. 「ドキュメントエクストラクター」ブロックでPDFの内容を読み込み、LLMが理解できるようにします。
  3. 「LLM」ブロックでPDFの内容を要約します。
  4. 「終了」ブロックで要約した結果を出力します。

作業手順

ここからは、ワークフロー構築の手順について説明します。

手順

  1. APIキーのセットアップ
  2. ワークフローの新規作成
  3. ワークフロー作成画面上での作業
  4. ワークフローの動作確認
1. APIキーのセットアップ
  1. まず、右上の「Dify」を選択してから「設定」を選択します。
    image block
  2. 設定画面の「モデルプロバイダー」を選択し、Geminiの「セットアップ」を選択します。
    image block
  3. 「API key」を入力してから「保存」を選択します。
    image block
2. ワークフローの新規作成
  1. 最初の画面の「最初から作成」を選択します。
    image block
  2. 「ワークフロー」を選択し、「アプリのアイコンと名前」を記述してから「作成する」をクリックします。
    image block
3. ワークフロー作成画面上での作業
  1. ワークフロー作成画面が表示されます。「開始」ノードが表示されているので「開始」ノードを選択します。

    「開始」ノードにPDFをアップロードするための機能を設定します。

    「+」ボタンを押します。

    image block
  2. 下記の表のように項目に値を設定してください。
    項目 備考
    フィールドタイプ Single File 1つのファイルをアップロードできます
    変数名 file 任意の名前
    ラベル名 file 任意の名前
    Support File Types Document アップロード可能にするファイルの種類を選択できます。
    Upload File Types Both Local Upload(ローカルに保存されているファイルをアップロード)」か、「URL(URLを取得してアップロード)」か、「Both(両方)」を選択できます

    入力後、「保存」を選択します。

    image block
  3. 「開始」ノードの「+」ボタンを押し、ブロック一覧の「ドキュメントエクストラクター」を選択します。
    image block
  4. 「ドキュメントエクストラクター」の入力フィールドを編集します。
    項目 備考
    入力変数 「開始 / file File」 「開始」ノードで設定した「file」を選択します。
    image block
  5. 「ドキュメントエクストラクター」ノードの「+」ボタンを押し、「LLM」を選択します。
    image block
  6. 「LLM」ノードを選択し、モデル一覧で「Gemini 1.5 Flash」を選択します。
    image block
  7. 「SYSTEM」欄にプロンプトを入力します。

    今回は「以下の内容を日本語で要約してください。」としました。

    💡
    プロンプトとは

    生成AIに与える指示文のことです。生成AIに何をしてほしいかを記述します。

    改行し、「{x} 」ボタンを押して「ドキュメントエクストラクター」の「{x} text」を選択します。

    image block
  8. 「+」ボタンを押し、「終了」を選択します。
    image block
  9. 出力変数の変数名に「output」を入力し、変数に「LLM」の{x} textを選択します。
    image block

    以上で完成です。

4. ワークフローの動作確認
  1. ワークフローを作った後に正しく動くかの動作確認をします。

    今回は、Apple社の業績がまとめられているファイルで実験してみました。

    「公開する」を選択し、「アプリを実行」を選択します。

    image block

    💡
    「公開する」と?

    アプリをすぐに利用できるWebページのURLが作成されます。ユーザーはこのURLにアクセスすることでアプリを利用できるようになります。

    ただし、URLを知っている人ならば誰でも利用できるようになるため、ワークフロー内で社外秘の情報を設定している場合、外部の人間がその情報にアクセスできる危険性があります。URLの公開については社内のポリシーなどを確認してから公開しましょう。

    以下のようなページに移りますので、PDFファイルをローカルからアップロードするか、PDFファイルのURLを入力します。

  2. 「Excute」を押します。
    image block
  3. 結果は、以下のようになりました。

    無事にPDFを要約してくれました。

    image block

応用

今回の記事では、DifyのUI(画面)を使用したアプリを作成しましたが、Difyで作成したワークフローをSlackから呼び出して通知するアプリにすることも可能です。たとえば、SlackからPDFを投稿すると自動的にその要約が返ってくるチャンネルが作れます。

おわりに

今回の記事では、Difyを使ってPDFファイルを要約するワークフローの作成手順を紹介しました。Difyを使うことで、PDF要約に限らずデータ処理やチャットボットなど、さまざまな自動化アプリを簡単に作成できます。

今後もDifyを活用したさまざまなユースケースを紹介していく予定ですので、ぜひ引き続きご覧ください。