catch-img

Difyにプレスリリースを自動作成させる方法

生成AIは広報PR・マーケティング領域でも、様々な活用の展開方法が期待できます。

下記記事では、ノーコードLLM構築ツール「Dify」を活用したリサーチ業務の紹介をしましたが、今回はDifyでプレスリリース作成業務を自動化する方法を解説します。

  【Dify活用】生成AIで広報リサーチ業務を行う方法 ノーコードLLM開発ツールDifyを活用して、効率的にニュースのリサーチを行う方法を解説します。 広報・PR支援の株式会社ガーオン


目次[非表示]

  1. 生成AI時代のプレスリリースの作り方
  2. Difyを使ったプレスリリースワークフローの自動化
    1. Difyの機能(チャットボット/エージェント/ワークフロー)の違い
  3. プレスリリース作成タスクを分解する
    1. ①要件定義
    2. ②PRアングルの策定
      1. 関連ニュースの調査方法
      2. 時間の確認と追加検索
      3. LLMに補足情報を勝手に調べてもらうには
      4. (補足)その他の情報の収集
      5. ブロック例
    3. ③リリース原稿の作成
  4. エージェントに統括させる
    1. Function Callingとは
  5. LLMモデル選びは重要
  6. コードも結構重要

生成AI時代のプレスリリースの作り方

生成AIを活用したプレスリリースの作成方法は、シンプルにプロンプトに指示を入れるだけのものから、外部データ(RAG)を活用したり、外部APIなどを活用しながら複雑な処理を行なったりするものまで、様々な手法が挙げられるかと思います。

プロンプトに指示するだけのシンプルな手法は、以下の記事でもご紹介しましたが、2024年7月現在ではClaude3(Claude3.5)に出力させるだけでかなりの精度のものが出力できます。

  生成AIでプレスリリースを作成するポイント 生成AIを使って読みやすく質の高いプレスリリースを作成するためのポイントを解説します。 広報・PR支援の株式会社ガーオン

そしてさらに、Difyなどの生成AIツールを使えば、こうしたリリースなどのテキスト作成タスクは、もっと複雑な処理を行うことが可能となります。

今回のブログでは、Difyを活用してより高度なプレスリリースの原稿作成を行う方法を解説します(少し触って分かったDifyの勘所にも触れたいと思います)。

Difyを使ったプレスリリースワークフローの自動化

Difyは、オープンソースのLLM(大規模言語モデル)アプリケーション開発プラットフォームです。

ノーコードで生成AIの実装や処理が可能で、直感的なインターフェースと豊富な機能を提供し、外部APIと連携することも可能なため、様々な複雑な処理が可能です。

以前は同様の機能としてOpen AIのGPTsが一時期有名になりましたが、GPTsは動きも悪く制限が多かったりと、正直あまり使えないというのが実情だっと思います。

こうした機能面での悩みをDifyでは、ほとんどが解決することができるようになりました。

当記事では、Difyを活用して、①リリースの下準備②関連情報の収集・分析③原稿作成・校正・改善の全ての項目をAIにワンストップで実行させる方法を解説します。

Difyの機能(チャットボット/エージェント/ワークフロー)の違い

Difyには様々や名称や機能に分かれているため、どのレイヤーから理解・整理してよいか分からず、慣れないと混乱しがちですが、ニュース分析やリリース作成などで一通り使ってみたところ、

・会話形式か1回限りの出力方式かどうか
・外部ツールが使えるかどうか

の2点が理解のポイントであると感じました。

「会話形式」だとチャットボット(LLM)とのやり取りが継続的に発生するため、例えばプレスリリースを会話をしながらゼロベースで作っていくなど、1つずつ項目をAIに確認してもらいながら進める方法が可能となります(これはワークフロー型では不可能なようです)。

またワークフローそのものを1つのツール(関数化のようなイメージ)にして、LLMに使わせることもできますが、これはチャットボットのChatflowかエージェント、ワークフローそのものの3つの種別でしか利用できません。

機能とメニューをまとめると下記のようになるかと思います。

Dify機能一覧(チャット/エージェント/ワークフローの違い)

この機能やメニューに関しては、長くなってしまうのでまた別の機会に詳しく解説したいと思います。

プレスリリース作成タスクを分解する

Difyを始めとした生成AIにタスクを置き換える際には、タスク分解が非常に重要となります。

どのようなタスクに分けるかは人それぞれかと思いますが、今回はプレスリリース作成タスクとして考えてみると、大きく

  1. 要件定義(リリース内容のヒアリング)
  2. PRアングルの策定(ニュース等の関連情報の調査)
  3. リリース原稿の作成/校正・採点/修正/タイトル案出し

の3段階に分けてみました。
※この場合のヒアリングはLLMが利用ユーザーにヒアリング(内容確認)するという意味合いです

図解すると以下のようなフローとなります。

生成AIプレスリリース作成プロセス

①要件定義

要件定義では、何を発信したいか、その中身の特徴や訴求ポイントをユーザーにBotがヒアリングして確認していきます。

この段階では、何を発信したいのか、その特徴やターゲット、会社概要といった基本的なことから、開発経緯といった周辺情報などを聞き取ることを想定します。このあたりは6W5Hで考えると漏れがなくなります。

このフローではチャットボットにヒアリングさせていくため、いわゆる昔ながらの「プロンプトエンジニアリング」で対応する領域になるかと思います。

今回はDifyの「エージェント」に要件定義をヒアリングタスクとして設定します(なぜチャットでなくエージェントなのかは後述します)。

あなたは有能なインタビュアー兼PRコンサルタントです。
あなたの仕事は、以下の3点です。
<task1>ユーザーへのヒアリングを通して、LLMでプレスリリースを作成するための精密な事前資料を作成すること
<task2>・・・
(中略)


## task1のヒアリング項目

- 発信したい商品・サービス情報や内容

- お客様やターゲット層 

(中略)

## ヒアリングと調査の流れ
1.各項目を1問ずつヒアリングしながら項目を確認する(特に製品サービスの特徴や意味など、分からないワードなど、プロとして疑問に思ったことは全て解消すること)
(中略)


## ガイドライン
- 相手が回答しやすいよう、フレンドリーかつ丁寧に会話を重ねてください。
- 会話手法は、オウム返し、ダブル・バインド、ソクラテス・ストラテジー、ミラーリングなどを駆使してください
- 質問は間接的に聞いてもOKです
(中略)


②PRアングルの策定

2番目のPRアングル策定では、初回フローで出力したデータから重要キーワードとして、クエリキーワードをLLMに何個か選んでもらい、そのキーワードを検索クリエとして各種リサーチを行った上で、その情報をもとにPRアングルを立案させます。

「アングル」という言葉はあまり日本ではあまり使われませんが、LLM系に指示する際に便利なワードです。意味は以下のとおり。

PRアングルとは、広報・PR活動において情報を発信する際の切り口や視点のことを指します。具体的には、ある情報や話題を伝える際に、どのような観点や解釈で提示するかを決定する重要な要素です[1]。
PRアングルの重要性は以下の点にあります:

  1. 情報の差別化: 同じ情報でも、異なるアングルで提示することで、他社や競合との差別化を図ることができます。
  2. ターゲットへの適合: 掲載するメディアの特性や、届けたい生活者の属性に応じて、最適なアングルを選択することで、より効果的な情報伝達が可能になります[1]。
  3. ニュース性の創出: 単なる事実の羅列ではなく、適切なアングルを設定することで、情報にニュース性を持たせることができます。
  4. メディアの興味喚起: 適切なアングルを選ぶことで、メディアの興味を引き、取材や記事化の可能性を高めることができます。
  5. ブランドイメージの構築: 一貫したアングルを用いることで、企業やブランドの独自性を強調し、望ましいイメージを構築することができます。
    PRアングルを効果的に設定するためには、以下の点に注意する必要があります:
  6. ターゲット分析: 情報を届けたい対象の特性や興味を十分に理解すること。
  7. メディア特性の把握: 各メディアの特徴や読者層を把握し、適合するアングルを選択すること。
  8. 社会的文脈の考慮: 現在の社会情勢や流行を考慮し、時宜にかなったアングルを選ぶこと。
  9. 独自性の追求: 他社とは異なる、独自の視点や解釈を見出すこと。
    PRアングルは、プレスリリースの作成やメディアへのアプローチ、各種広報資料の作成など、様々な広報PR活動において重要な役割を果たします。適切なアングルを設定することで、情報の価値を最大化し、効果的なコミュニケーションを実現することができるのです。
    Citations:
    [1] https://prtimes.jp/magazine/pr-glossary-page/angle
    [2] https://goopass.jp/animal/basis/position
    [3] https://cherrybee.tv/blog/angle_position/
    [4] https://www.curbon.jp/blogs/news/glossary11
    [5] https://prtimes.jp/magazine/pr-glossary/
    [6] https://www.moderno-pers.com/post/angle-setting/
    [7] https://vision-world.biz/termlist/angle/
    [8] https://www.laserprocessing-pro.com/possible-materials/angle-steel.html

Perplexity(by CLAUDE 3.5 SONNET)

この2番目のフローは、ニュースや様々なWebデータから客観情報を集めてくるフェーズとなります。

対象データとしては、「ニュース」「SNS(Xなど)」「Googleトレンド」「検索サジェストワード」「書籍情報」といったものを想定しています。

関連ニュースの調査方法

このあたりのニュース等の外部情報をリサーチする処理はGPTsと同様に、

  • APIを「カスタムツール」として利用する
  • 「HTTPリクエスト」ブロックを利用する

などが基本となるかと思います。

Difyでは、外部APIはOpenAPI形式でカスタムツールとして取り込むことができます。また「HTMLリクエスト」というブロックが用意されており、そちらでリクエスト処理をかけることができます。

ニュースの公開APIといえば、NEWS APIなどが有名かと思いますが、APIが公開されていなくても上記のHTTPリクエスト経由で取得することも可能なので、ブラウザ経由で取得可能なニュースはDifyでも調査可能と考えてよいかと思われます。

※なおAPIが一般的に明示されていないニュースサイトも、デベロッパーツールなどで見ていくとAPIサーバーの場所は以外とオープンとなっていることが多いです(アクセスが明確に禁止されている場合はやめておきましょう)

ちなみにPRアングルの策定(メディア調査)には、規模、時事性、客観性、影響力などを考慮し、
・日経新聞
・テレビ東京(WBS)
・NHK(Nスペ/クロ現/視点・論点/時事公論)
・アベマニュース(アベプラ)

などを組み合わせるが良いのではないかと思います。

時間の確認と追加検索

生成AI活用のプレスリリース作成プロセス

Difyにはcurrent_timeという現在の時刻を確認する組み込みツールが用意されています。これを会話スタート時に入れることで、各種ニュースソースの日時を現在と時系列比較しながら進めてもらうことができるかと思います。

特にLLMにニュースを分析させると、古いニュースと新しいニュースを同列で扱うケースが多いような印象がありますので、プロンプトに新しいニュースを優先度を上げることを明記すると共に、current_timeで会話の日時を把握させるというのも重要だと思われます。

LLMに補足情報を勝手に調べてもらうには

また、要件定義をまとめた後は、会社名やキーワードで一度検索して、検索結果を補足情報として使うのもおすすめです。

例えば会社名で検索すれば最新ニュースや事業内容、サービス説明、代表者名などが検索結果に上がってくると思いますし、こうしたデータをそのままコンテキストとして使ってしまえば、精度も上がりwikiで個別キーワードから探すよりも簡単です。

Difyには様々な検索ツールがあらかじめ組み込まれていますが、「検索結果を事前調査の参考にする」という意味合いでは、tavily_searchという組み込みツールを使うのがおすすめです。

tavilyはLLM特化型の検索エンジンで、検索結果にLLM用にテキストで内容を返すのが特徴です。(Google検索などはタイトルとスニペットのみが返ってきてしまうためLLM向けとしての理解には不都合)。

  Tavily Say hello to Tavily, your AI researcher for rapid insights and comprehensive research. https://tavily.com/

※Difyの検索ツールはURLを読み込むjina readerなど様々なツールが存在するので、また別の記事でまとめてみたいと思います

(補足)その他の情報の収集

SNS(Xなど)はX APIで収集するのが便利です。Difyは外部APIをOpen APIスキーマとして設定することで1つのツールとして活用することができます。

GoogleトレンドはAPI公開されていないので、SERP APIなどの外部サービスを使って個別設定する流れになります。

Google検索サジェストは以下でも解説されています。

  Google Suggest API プログラミング解説 https://so-zou.jp/web-app/tech/web-api/google/suggest/

書籍情報の検索に関しては、様々なAPIに可能性がありそうですが、Google Books APIなどが一番シンプルで分かり安いかと思います。

  Google Books APIs  |  Google for Developers Google Books API を使用して、アプリでテキストの検索や書籍情報の取得を行えるようにする方法を学びます。 Google for Developers


ブロック例

具体的なブロックの進め方は下記のようなプロセスとなります。

Difyプレスリリース策定

スタートでは、第1プロセスで作成したプレスリリースの基本設計シートを入力することを想定しています。

内容からキーワードを選定し、
・指定番組/サイトのニュース検索
・Googleトレンド検索
・全体のニュース検索(Perplexity)
・サジェスト検索
・書籍検索

を行なった上で、これらデータを追加しながら、PRアングルを考えさせて出力します。

ここでもクオリティの観点から、GPTではなくCluadeに作らせるのがおすすめです(コストは高い)。

③リリース原稿の作成

ここからは集まったこれまでのデータ全てを活用し、リリース原稿を作成してもらいます。

文章のブラッシュアップには、様々な手法があるようですがここでは、

①初稿作成
②採点/課題抽出/校正
③複数のタイトル案提案

の3つのプロセスにまとめてみました。

Difyプレスリリース作成プロセス

Difyの現時点での弱点として、繰り返し処理に弱いことが挙げられます。

既に「イテレーション」というブロックがあるにはありますが、こちらは決まった入力配列を処理するもので、While文のようにある条件クリアまで繰り返す、という処理が今のところ不可能な模様です。

理想としては、原稿の採点担当を用意して、ある基準をクリアするまで出力を繰り返すというような処理ができるとさらに効率的かと思います。

こうした処理は「ループ」という機能として今後リリースさせる予定のようです。

  for/while loop in workflow ツキ Issue #4317 ツキ langgenius/dify Self Checks I have searched for existing issues search for existing issues, including closed ones. I confirm that I am using English to submit this report (謌大キイ髦⒩ッサ蟷カ蜷梧э Language Policy). Pleas do not mo... GitHub


エージェントに統括させる

ここまでは、ステップ1から3までを個別に実行し、人の手で進めてきましたが、Difyの凄いところはこの一連作業そのものをエージェントにまかせてしまえることです。

ここでもう一度各機能をおさらいしておきます。

Dify機能一覧(チャット/エージェント/ワークフローの違い)

Difyで作成したワークフロー(WF)は一つのまとまった「ツール」として、関数を名付けて変換することができます。

これにより、Difyのツールとして「API(Open APIで作ったツール)」と「WFで作ったツール」の2種類が利用できることになります。

つまり一連の処理をWFで作っておけば、ツールとして活用することができるわけです。

これにはメリットが2点あり、1つ目はブロックノードが単純になるということです。ブロックが長くなればなるほど複雑になるため、Pythonでいえばdefで機能を一つの関数としてまとめてしまう(コードを短くコンパクトにする)ことができるわけです。

そして2つ目のメリットが、AI自体が状況に応じてツールを利用するかしないかの判断を行い、さらに実行まで可能ということです。

こうした自律的な機能は、GPTではFunction Callingとして、CluadeではTool useとして提供されてきたものに近いと言えるでしょう。

Function Callingとは

Function Calling

Function Callingとは、AIが外部ツールとしてAPIを叩いたり、事前に関数として設定した機能を活用することができるもので、利用判断そのものをAIが行うことが最大の特長です。

※上記はClaudeに画像を作ってもらった説明です。

関数を使うかどうかの判断をその時時に応じて、AIが自動的に判断するもので、AIに手を持たせるイメージで非常に強力なツールとなります。

Function Callingはコード実装も少し複雑で、初めて使うと頭も相当こんがらがりますが、Difyはこうした複雑な機能を完全ノーコードで実現することが可能なわけです。

Function Calling

こうしたFunction Calling機能を持った機能はDifyでは「エージェント」と記載されている機能となります。

この機能は、チャットボットの「Chatflow」と「ワークフロー」でも実現できますが、プレスリリース作成においては、ChatflowではChatflowそのものをツール化できないことや、前述の条件をクリアするまで繰り返す、といったフローが困難なことがネックとなります。

またワークフローではツール化はできますが、条件継続処理ができないのがネックとなります。

そんなときは「エージェント」を使うのをおすすめしたいです。

エージェントは、チャットボットの良いところ(会話形式で条件達成まで繰り返し)を持っており、かつツールを使用可能です。

ワークフローはツール化ができるため、このツールに各種ワークフローで作ったツールを入れてしまえば、今回の一連の動作が可能となります。

Difyエージェント機能

エージェントは事前データ(RAG)も使うことができるため、プロセス全体をエージェントに管理させ、かつヒアリング実行を自らで実行させる、というのが今回の事例紹介のステップ内容となります。

DifyはワークフローやChatflowが目立つ位置にきているため、エージェントはどうしても二軍選手に見えてしまいますが、現場で動く統括ディレクターとして使うのが良いのではないでしょうか。

LLMモデル選びは重要

Open AIから新モデルであるGPT4o-miniが発表され、コストやスピード面で非常に魅力的ではありますが、プレスリリースの原稿作成には依然としてClaude3.5が適していると思います。

またニュースの分析にもGPT-4oより、Claudeモデルのほうが良いアウトプットを出力してもらえることが多いです。

  Model & API Providers Analysis | Artificial Analysis Comparison and analysis of AI models and API hosting providers. Independent benchmarks across key performance metrics including quality, price, output speed & latency. https://artificialanalysis.ai/

各種ベンチマークテストでは、GPT-4oがトップに来ているケースが多いようですが、「日本語のプレスリリース」「日本語のニュース」「きれいな日本語」を扱う場合は、Claude3(3.5)が適していると感じています。

※日本語の書き方として、本多勝一文法を学習しているのもClaudeのみです

  生成AIでプレスリリースを作成するポイント 生成AIを使って読みやすく質の高いプレスリリースを作成するためのポイントを解説します。 広報・PR支援の株式会社ガーオン

一方でClaude3.5のコストは非常に高いため、ニュースのインプットや長文アウトプットを繰り返していると、あっという間に金額が上がってしまいますのでその点はくれぐれもお気をつけください。

コードも結構重要

Difyはノーコードツールですが、「コード」というブロックもあり、前処理や特定の処理にはコードの知識が必要となります。

特にトークン数課金のため、余分なデータを省いて入力するといった工夫は必須となります。この前処理コード自体も、ゆくゆくは生成AIが全て出力してくれると思いますが、今の時点では多少人力でやってしまうほうが早いかもしれません。

特にLLMは入力も出力もテキスト(str)データとなるため、前処理コードは意外と重要であると思います。

# codeブロックに入れるコードはdef main():で統一させる必要がある
# X APIを叩いたあとレスポンスデータからユーザーIDを取得するコード

def main(data):
   #import文は関数内に記載/pip installは不可
   import json

   data = json.loads(data)
   user_id = data['data']['id']

   # 戻り値をreturnにいれ辞書型で統一させる
   # LLMに入力する場合は必ずテキスト(str)にする
   return {
       "result": str(user_id)
    }


以上、Difyでプレスリリースを作成する方法でした。

業務効率を大幅にアップさせる生成AIは、大企業だけでなく中小企業こそ活用するべきです。

当社では生成AIの業務活用や、Difyなどの実装サポートも実施しておりますのでお気軽にご相談ください。


関連記事

広報・PRやプレスリリースまわりでお困りのことはございませんか?
多数の企業サポートを行ってきた当社が解決いたします。
お気軽にお問合せください。