ElcamyTECH
Articles
Dify

【Difyで作るシリーズ 3】 ニュース要約チャットボット

Tech生成AIDifyDify2024/11/08

更新日: 2025-07-24

はじめに

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

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

今回は第3回目で、Yahoo!ニュースからキーワードをもとにニュースを要約するチャットボットを作ります。

メモ

この記事の対象者

  • Dify という言葉を聞いたことがあるが、何ができるのかがわからない方
  • Dify を業務に取り入れたいと検討している方
メモ

事前準備

  • Dify へのサインアップ
  • OpenAI APIまたはGemini APIのAPIキーの取得
    • Gemini APIの場合
      1. ここにアクセスし、「APIキーを作成」を選択します。
      2. 「新しいプロジェクトでAPIキーを作成」を押します。
      3. APIキーをコピーします。
        • OpenAI APIの場合
        • サインアップした後、こちらからAPIキーを作成し、保存します。
        • APIキーのセットアップ

環境

  • Dify v1.15.1(2025年07月24日時点)フリープラン

作成するAIアプリの概要

完成イメージ

まずは、今回作成するアプリの完成イメージについてです。 このアプリは、ブラウザからAIアプリにアクセスして使用します。 今回はYahoo!ニュースのトピックのうち、「スポーツ」「経済」「IT」の3つのキーワードから1つをユーザーに選んでもらい、選んだトピックに関するニュースを3つ要約するアプリを作成します。

メモ

イメージ 「Talk to Bot」欄にキーワードの中から一つを選び、入力します。 キーワードに関するニュースの要約が返ってきます。

image

作成するワークフロー

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

メモ

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

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

image このワークフローは、下記のブロックで構成されます。

flowchart LR
    A[開始] --> B[質問分類器]
    B --> C[WEB SCRAPER]
    B --> D[WEB SCRAPER]
    B --> E[WEB SCRAPER]
    C --> F[LLM]
    D --> G[LLM]
    E --> H[LLM]
    F --> I[回答]
    G --> J[回答]
    H --> K[回答]
  1. 開始:ユーザーの質問を受け付けるノードです。
  2. 質問分類器:ユーザーの入力がスポーツ、経済、ITのうち、どのキーワードに関連するのかをLLMが判定します。
  3. WEB SCRAPER:それぞれのキーワードに関するページをあらかじめ指定しておき、ユーザーの入力に応じてスクレイピングします。
  4. LLM:スクレイピングした内容からニュースを選び(今回は3つ)、要約します。
  5. 回答:LLMが要約した内容を出力します。

作業手順

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

手順

  1. ワークフローの新規作成
  2. ワークフロー作成画面上での作業
  3. ワークフローの動作確認

1. ワークフローの新規作成

  1. 最初の画面の「最初から作成」を選択します。

    image

  2. 「チャットフロー」を選択します。 「アプリのアイコンと名前」を入力してから「作成する」を選択します。

    image

2. ワークフロー作成画面上での作業

  1. 「スポーツ」「経済」「IT」の3つのキーワードのうち、どれが入力されたかを判定するために、**「質問分類器」**ノードを追加します。 「開始」ノードの「+」ボタンを押し、「質問分類器」を選択します。

    :::message

    質問分類器とは ユーザーの質問の分類条件を定義し、LLMは分類記述に基づいて会話がどのように進行するかを定義できます。

    :::

    image 「質問分類器」ノードを選択し、下記の表のようにクラス番号と文章を設定します。

クラス番号文章
1スポーツに関するニュース
2経済に関するニュース
3ITに関するニュース

image

  1. 「クラス1」の「+」ボタンを選択し、「ツール」中の**「Web Scraper」**を選択します。

    :::message

    Web Scraperとは ウェブサイトからデータを抽出することができます。

    :::

    image クラス1「スポーツに関するニュース」をスクレイピングし、要約する部分を作ります。 「クラス1」では、スポーツに関するニュースをスクレイピングしたいので、Yahoo!ニュースのスポーツトピックのURLを入力します。

    image

  2. 「Web Scraper」ノードと最初に作成されていた**「LLM」**ノードをつなぎます(他のノードの裏にあることもあります)。 「SYSTEM」欄にプロンプトを入力した後、「{x}」ボタンをクリックし、「Web Scraper」の「{x}text」を選択します。

    image

  3. **「回答」**ノードを作成します。

    image 「回答」欄の「{x}」ボタンをクリックし、「LLM」の「{x}text」を選択します。

  4. 以上の要領で、「経済」「IT」のものに関しても、ニュース要約を作成します。「Webscraper」時の各トピックのURLは以下のものを参考にしてみてください。 経済:https://news.yahoo.co.jp/categories/business IT:https://news.yahoo.co.jp/categories/it 以下のようなノード構成になっていたら完了です。

    image

  5. 経済、ITに関してそれぞれ作成したのち「プレビュー」を選択し、「管理→」を選択します。

    image

  6. 「会話の開始」を有効にし、「オープナーを書く」を選択します。

    image

  7. 下記のように文章を入力し、「保存」を選択します。 この文章はチャットボットとの会話の初めに表示されるもので、選択できるトピックをあらかじめ提示することができます。

    image 以上で完成です。

3. ワークフローの 動作確認

  1. 「公開する」を選択し、「更新を公開(最初は「公開する」)」を選択したうえで「アプリを実行」選択します。

    image

  2. 無事にニュースの要約が返ってきました。

    image

応用

今回は、DifyのUI(画面)上でニュースの要約が返ってくるものを作成しましたが、Slackと連携することで、Slackでトピックを入力して要約した結果の通知をSlackで得ることもできます。また、決まった時間にWebページをスクレイピングし、ニュースの要約をSlackで配信することも可能です。

おわりに

今回はYahoo!ニュースからキーワードをもとにニュースを要約するチャットボットのワークフローの作成手順を紹介しました。今後もDifyを利用したアプリの作成手順を紹介していきますので、引き続きご覧下さい。

関連記事

Elcamyについて

AI・データエンジニアリング・クラウドを中心に、技術で事業課題を解決しています。 お気軽にご相談ください。