この記事は、「NEWT Product Advent Calendar 2024」Day18 および「Dify Advent Calendar 2024」Day25 の記事となります。
メリークリスマス!
Difyアドベントカレンダー最終日の記事(「NEWT Product Advent Calendar 2024」18日目でもあります)を担当する、みやっち(@miyatti)です。前回担当のEM yoshikeiからバトンをもらい、「Dify講座 超入門編」と題して紹介します。ぜひ最後までご覧ください!
気づけばもう12月25日――一年があっという間ですね。最近、Twitterでこんなことをつぶやいたところ、思いのほか反響がありました:
そしてこの投稿の前の日、たわむれにDifyのアドベントカレンダーやってみようかなとおもって気軽な気持ちで「あれ25日しかあいてないや。まぁいいか」と登録したものの「よく考えたらめっちゃトリじゃねえか」と1時間後ぐらいにやべえってなってたので。
ということで、「ChatGPTのポン出しを卒業してDifyのワークフロー化に進む大切さ」を全力でお伝えしようと筆を取りました。この記事で一人でも多くの人がDifyとワークフローの良さに気づいてLLMの楽しさ自体に目覚めてもらえることを目標に頑張って書いていきます!
そもそも、ChatGPTをどう使ってますか?
「ちょっと翻訳したい」「会議のメモを要約したい」といった単発タスクなら、ポン出し(チャットでサクッとお願いして、返ってきた内容をそのまま使う)でも十分便利ですよね。ChatGPTをポン出しで使う最大の利点はとりあえず聞けば何か返ってくる気軽さです。単発タスクなら確かに問題ありません。
いまやChatGPTなどLLMが高速化してレスポンスが速くなったことで、「それならポン出しだけで充分じゃん」と思う方も多いかもしれません。
しかし、SNS投稿や議事録作成など、同じパターンを繰り返す業務では、毎回同じプロンプトや設定を打ち込むのが面倒になりがちです。最初は気軽なポン出しでも、回数が増えると微調整や打ち直しが面倒になってきませんか?
都度ブラウザを開いて、「前回はどんな指示だっけ?」と履歴を探す作業は、忙しいときほど大変ですよね。「前はうまくいったのに今回は…」と試行錯誤が続くのって、地味にストレスですよね。
そこで、もう一歩踏み込むと、手間のかかる作業を劇的に減らせる世界が待っています。そこで注目したいのがDifyです。
Difyとは? 何が嬉しいの?
Difyは、まぁよくノーコードでできるLLMアプリ開発プラットフォームと紹介されますが、開発プラットフォームというと敷居がたかそうですね。実際のところ、簡単に言うとChatGPTのような生成AI(LLM)とのいつものやり取りを「ワークフロー」としてあらかじめ用意しておいて、ボタン一発であとから起動できる便利ツールとかでいいきがします、個人利用としては。
ワークフローってなに?
と説明しても、ピンとこないというか、ワークフローっていわれても・・・?というところですよね。
あれです。要は「テンプレート(雛型)」です。メールや契約書のテンプレートをイメージするとわかりやすいです。
契約書とかをゼロから作ることないですよね。あらかじめひな形をリーガルの方とかが作ってくれてて、そこをいろいろ差し替えて行ったりするわけです。自分の名前とか先方の名前とかを入れたりする「入力欄」とかありますよね。
- “宛先”や“金額”“日付”など、差し込む部分が入力欄として用意されている
- 使うときは必要な情報を入れこんでいくだけ
- 基本の文章は毎回同じ品質で作成できる
Difyでも、毎回使いたいプロンプト(指示)をテンプレートとして登録しておき、変更したいところだけ差し替える方式です。実際に使うときは、その空欄に必要な情報を入れるだけ。
するとあらかじめ定義しておいたプロンプトが完成し、それに従ってChatGPTが動き、毎回ブレのないクオリティの出力を返してくれます。
多少はピンときたでしょうか?(まぁ、ピンとこない方も、実際に触るとわかるとおもうので、とりあえず前に進みましょう!)
一度設定したら何度でも使える
というわけで、そんなプロンプトのテンプレートを用意しておくと、繰り返しのプロンプト入力作業がぐっとラクになります。前回うまくいったチャットの頼み方(プロンプト)をコピペして、今回の内容に書き換えてーとかしなくてよいわけです。
また、基本同じプロンプトを使いまわすようになるので、 「前はうまくいったのに、今度はなぜか微妙…」というポン出し特有のバラつきから抜け出せるわけです。
ワークフローってもっと、なんか複雑なやつとか作るんでしょ?という人もいるかもですが、 ぜんぜんシンプルな構成で役に立ちます。まさにテンプレートとして作ってみましょう。
これだけでも、「毎回プロンプトを打ち直す手間」から解放されます。
例:SNS向け文章作成
Before(ポン出し):毎回の入力が手間だし結果のクオリティがぶれる
ChatGPTとかで、後から後から、追加でお願いをしていっちゃうのあるあるですね
「キャンペーン告知の投稿文」を作成したいなーとか思って。ChatGPTに企画書の内容をコピペして「これをX (旧Twitter) 用の投稿文にして」と打つけど…
- 文字数制限や絵文字の有無、トーンの指定を毎回忘れがち
- 「もっと宣伝ぽくして!」→ 再チャット
- 「ハッシュタグを追加して!」→ また再チャット
- 「絵文字を入れて!」→ さらに再チャット
- もし仮に今回は成功したとしても、また次似たようななことをChatGPTでやろうとしたら
- 「あれ? 前回はうまくいったのに、今回はいうこと聞いてくれない…」
- 「同じような企画なのに、毎回クオリティがブレる…」
ということで、毎回キャンペーンのたびにChatGPTをひらいて何度も試行錯誤を繰り返す日々…。
After(ワークフロー):1ステップでも効率UP
Step1. Difyでワークフローを作成する
1-1: Difyにログイン後、左上の「最初から作成」をクリック
1-2: 「チャットフロー」を選択
1-3:アプリケーション名を入力:「キャンペーン告知ジェネレーター」
Step2. Difyでプロンプトをかく
2-1: 赤で囲まれたところに「LLM」のテンプレート(プロンプト)を書いていく
豆知識:プロンプトジェネレーターを使ってみよう
すらっと、プロンプトをうまく書けない人はプロンプトジェネレーターという便利機能がDifyにはついてるので使ってみましょう
このDifyの「Prompt Generator」を使えば、こんな感じの雑なおねがいからプロンプトを自動生成できます:
注意としては、生成されたプロンプトは結構難しい書き方されてるから、修正しづらいかも。割とプロンプトは直感的に書いてもうまく動いてくれるので、雑でもいいから自分でかいたほうが後から試行錯誤はしやすいかもです。
2-2: あとは、プレビューで動くか確かめてみる
右上にあるプレビューというボタンをクリック
企画書をチャットに入れると無事に生成できたっぽい
Step3. ワークフローをいつでもすぐにアクセスできるようにする
3-1. 公開して、URLから開けるようにしていつでもアクセスできるようにしてみましょう。
ここで、隠し技。いつでもあなたのそばにLLMを
こんな感じでサイドバーにChatGPTを常駐させることも可能
さきほどURLから開けるようにしましたが、結局それだとChatGPTにアクセスして開いてーというのとかわらない。
そこでおすすめなのが、Chromeの拡張機能などをつかって、カスタムサイドバーを導入して、DifyのワークフローやChatGPTそのものを開きっぱなしにすること。
ブラウザ作業が中心の場合、画面の横にAIを常駐させておけば、
- 「今すぐブラウザに表示されてるこの文章をLLMでリライトしたい」
- 「ちょっとブラウザの文書でLLMで翻訳を試したい」
- 「Gmailにきているお客様のリクエストにLLMで返事をしたい」
といったシーンでも、別タブを開く手間や履歴を探す必要が大幅に減ります。
サイドバーの導入方法
Chrome拡張機能「Page Sidebar™」を使えば、簡単にサイドバーを実現できます。
Difyのチャットボットもサイドバーにだしっぱなしに
Step1 Page Sidebarのインストール
1-1 Chrome ウェブストアから「Page Sidebar™」を検索
1-2「Chromeに追加」をクリック
Step2 DifyのチャットページURLを取得
Step3 Difyをサイドバーに表示
3-1 ブラウザ右上のPage Sidebarアイコンをクリック
3-2 Searchボックスなどに、DifyのチャットページのURLを入力
これで、ブラウザの右側にDifyのチャットが常駐!作業中でもワンクリックでAIに相談できます。
Difyのワークフローがあなたのブラウザに常駐
「ポン出し」でさえ面倒に感じていた方も、サイドバーのAIで「必要なときにすぐ投げられる」環境を整えれば、一段とラクになります。
さらにDifyワークフローと組み合わせれば、複雑な処理も数クリックで済むので、もうポン出しには戻れない快適さをブラウザ作業に取り込めるでしょう。
他の例:シンプルな1ステップでこんなに楽
こんな感じで、応用例としてはこんなものが考えられますかね。今まで「毎回プロンプトを打ち直し、微妙なら再調整…」を繰り返していた作業が、お願いしたい文書(企画書だったり翻訳の原文だったり)を打ち込むだけに変わります。
1. 会議の要約
議事録のテンプレに合わせて「要点・決定事項・次のアクション」だけさせたい、ってときに抽出した会議メモとか音声の文字起こしをコピペすれば、すぐに統一フォーマットで出力してくれるようなもの。議事録まとめは何度もやるから、Difyでワークフロー作っておくと絶対便利。
- プロンプト例
2. 翻訳 + トーン調整
翻訳だけであれば専用ツールをつかうのがいいかもですが、「ビジネス向け英語に翻訳」「カジュアルなニュアンスを保持した英文に」など、一工夫必要な時とかは自分でカスタマイズできるLLM利用がいいですね。一度に指定日本語→英語の翻訳と口調調整といった複数の指示をまとめて一発で処理できます。
- プロンプト例
3. メール/Slack文のリライト
ちょっと堅い・失礼かもしれない文章を丁寧に書き直すとか、敬語や字数制限などを自動で適用
- プロンプト例
4. その他
契約書チェック(コンプライアンス対応)
- 決まった契約テンプレに対して条項漏れや業界特有ルールのチェック→指摘事項リスト出力
次タスク整理と優先度付け
- 昨日のToDoリストから未完了項目抽出、緊急度・重要度でソート、今日のToDoリストに最適な順序で再提示
商品レビュー整理&評価レポート生成
- 新規レビューをテキスト抽出、良い点/悪い点を分けてリストアップ。最終レポート(平均スコア・改善点)を定型化
複数ステップ化で“本気の”ワークフロー
さて、ここからちょっとだけ難しくなります。たしかに、「1ステップ」でDifyを運用するだけでも、ポン出しに比べてかなりの効率アップが望めます。
ですが、「まだ物足りない!」という方は、ぜひ複数ステップの機能を試してみてください。Difyではノードを自由に組み合わせられるので、コードノードや画像からテキスト抽出ノード、検索ノードなどを活用することで、ポン出しでは実現しにくい“本気の”自動化ができるんです。
例:議事録作成の自動化
こんな複数ステップのワークフローにチャレンジしてみましょう。
なぜ複数に分けるのか?複数に分けたほうがいいパターンはいくつかあります。これはそのうちの1つ、膨大なプロンプトを精度高く処理するため、というやつです。
議事録はもちろん1つのプロンプトでも生成できます。ただ、議事録が難しいのは、めちゃくちゃ長いMTGだったりすると、処理しなければいけないログが膨大になる。そしてそれを、1つのプロンプトで処理しきるのは割と難易度が高いんです。
そこで、ワークフローを分割するのがおすすめです。1度大まかに、要点だけざっくり議事録を作ってもらい、そのあとそのざっくり議事録を次のステップで肉付けしていく。こういう風に分けて処理をすると、詳細な議事録がつくれるんです。
では、例えばこういうログデータがあったとして、議事録を作れるワークフローを作ってみましょう
Step1. Difyでワークフローを作成する
一つ目のプロンプトを作るところまでは先ほどと全く同じです。
1-1: Difyにログイン後、左上の「最初から作成」をクリック
1-2: 「チャットフロー」を選択
1-3:アプリケーション名を入力:「議事録要約ジェネレーター」
Step2. Difyでプロンプトをかく
2-1: 赤で囲まれたところに「LLM」のテンプレート(プロンプト)を書いていく
2-1-1:初期構造化STEP
音声文字起こしデータから基本構造を作成するプロンプトをまずは素直に作ります。一旦大雑把に構造
- タイムスタンプ付きで重要発言を抽出
- 会議の基本情報(日時・参加者・議題)を整理
この段階での出力結果です。おおざっぱには作れていますね。でもまだものたりない。
2-1-2:詳細化STEP
ここまではさきほどのシンプルワークフローと同じ。ここから複数ステップ化していきます。先ほど違って、プロンプトがふえます。
LLMとENDの間の線の上の(+)をクリックして、出てくるメニューからLLMを選ぶ
新しく作るプロンプトは、さきほどつくったSTEP1の初期ざっくり生成したものをベースに、より肉付けしていくような指示をかきます
- 背景情報や具体的な発言を追加
- 議論の流れを時系列で補完
ここで注意なのは、ひな型に含まれる、置き換え用の空欄が二つあるということです。
- 1つが、STEP1で生成したざっくりサマリーの出力結果( LLM/text )。これをステップ2で入力することで、これをもとに肉付けしていくことができます。
- そしてもう1つ、肉付けの素材となる、元の議事録のログもsys.queryでプロンプトにつっこんでおく。
ここはちょっと難しいかもですが、とりあえず設定してみてください。 / を入力して選ぶことができるのは先ほどのやつと同じです。
そうして、出力させたものはこちら(実際のワークフローでは途中で生成されるものなので、みえないものです。ログから確認できます)。1つ目のものよりも、詳細がかかれたり、より見やすいように整理されていますね。今回はサンプルなので、もともとのログが短めだしあんまり詳細化されてないように見えるところもありますが、長いMTGになればなるほど、このやり方の効果がでてきます。
そして、応用テクニックとして、実はこのステップを何度も複製してつなげていくと、やればやるほど詳細化されていきます。めちゃくちゃ長い議事録作成のときとかは、必要に応じてやってみるのがおすすめです。
2-1-3:最終整形STEP
最後は、インデントとか箇条書きとかの統一をして整形するのもいいかもです。
- タイムスタンプを取り除く
- 表記ゆれの修正と用語の統一
プロンプト例:
そうすると最終的に出力されるのはこんな感じ。
※ このあと公開して、Sidebarで表示させる方法などは先ほどと同じなので省略します
この“段階的”な流れにより、雑然としたメモでも抜けや誤字を大幅に減らし、最終的には社内規定のフォーマットに合わせた議事録が完成します。
何より、各ステップを自動で呼び出してくれるのがDifyの強み。会議が終わってすぐに、形の整った議事録を手にできるのは大きなメリットです。
他の例:マルチステップでこんなことまでできます
1. 自分専用Perplexity
検索リサーチをラクにしたい人には、自分専用のPerplexity風ワークフローを作る方法がおすすめです。
そう、あのPerplexity的なこともDifyならできちゃいます。
Difyには、簡単に外部連携できる「ツール」という機能があります
いろいろ便利な機能が使えますが、今回は「TavilySearch」というサービスと連携してみます。簡単にいうとGoogleみたいなサービスです。
またブロックとブロックをつなぐ線の上の(+)ボタンをクリックして、今度はブロックではなくツールを選択肢そのなかからTavilySearchを選びます
Tavily SearchのQueryというところに、とりあえず / とかを押して、またSys.Queryを選択していれると、チャットで入力した内容で検索ができるプロンプトのできあがりです。
ためしにプレビューさせて「オーストラリア 4つ星 ホテル」とかをチャットで入力するとこんなかんじで、結果がかえってくる
このツールを1つのプロンプトで実行しても、Googleのかわりみたいなことはできるので便利ですね。
ただ、せっかくなので以下みたいな複数プロンプトをつなげて工夫をしてより、便利なワークフローにしてみましょう
Step1:最初のプロンプトで、「オーストラリアの4つ星のホテルを探したい」とか、普通の文章で要望を入力。その内容をもとに、検索クエリ(4つ星 ホテル オーストラリア)みたいなのをLLMで自動生成
Step2:その検索クエリでTavily Searchで実際に検索をさせる
Step3:Step2で得られた情報を指定のフォーマット(たとえばブログ形式やメール返信向けのスタイル)で整形
そのまま出力すると、スコアみたいな、あんまり役に立たない表示もついてきちゃいます。でも、たとえばお客さまにリンク集としてそのまま渡しちゃいたい、なんて旅行相談の場合なら、関連サイトを検索して、統一感ある文体で回答させることが可能ですね。
こうすれば、「検索→整形→仕上げ」の流れを1つのワークフローにまとめられます。
実際にお客様とやり取りしてるメール画面とかで、Sidebarにこのチャットを表示させてすぐにリンクをひろえるようにしてみるとかおすすめです
リサーチ作業によくある「あれ、どのサイトを参考にしたんだっけ?」という混乱や、情報のバラつきも大幅に減らせるはず。ポン出しとの作業負担の差は、使ってみると一目瞭然でしょう。
さらに、OCRノードや文字数カウントノードなどを組み合わせれば、画像から文字を取り込んで翻訳したり、Web情報を整形したりと、より複雑な処理をシームレスにこなせるのがDifyの魅力。
「もうポン出しには戻れない…」という気持ちになるのも、納得ですよね。
さらにここから、このURLの中に何が書いてあるかを読み取ってLLMに渡すツール(Jina Reader)などもあり、これを使えば、リンク集をかえすだけでなく、Perplexityみたいに、検索結果をいい感じにサマリーにして、チャットで返してくれるようにもできます。
このへんのやりかたは、以前令和トラベルにておこなったDify講座の資料に説明がありますので、もしよければぜひ参考にしてみてください(DSLファイルというDifyのワークフローファイルもDLできるようにしてます)
また、こちらの資料は、このブログを読んで本格的にDifyをやってみたい!と思われた方にはおすすめの資料となっておりますので、ぜひ最初からよんでいただくことおすすめします!
3. キャッチコピーを10本生成 → 文字数オーバーをコードノードで除外 → 合格ラインの案だけ再出力
複数ステップを駆使すれば、ポン出しでは難しかったような“厳密な条件クリア”も、あっという間に実現します。
- LLMノード
- ChatGPTやClaudeなどに対し、「○文字でインパクトあるコピーを10案作って」と依頼
- コードノード
- それぞれのコピー案を文字数チェック
- LLMが苦手な厳密な計算や条件判定をここで補う
- 翻訳ノード or 追加LLMノード
- 必要に応じて英訳したり、ターゲット別にトーンを変更
- 最終LLMノード
- 要件に合ったコピーだけ最終出力
- 箇条書きやマークダウン形式で、見やすさも調整
実行してみると、ポン出しで「長すぎる…もう一度やり直し!」を繰り返していたときより、圧倒的完成度が高い結果が得られます。
これらの事例からわかるように、複数ステップを活用することで“本気の”自動化が可能になります。というところで、ぜひ「ポン出しで十分かも」と思っている方も、ぜひ一度複数ステップのワークフローを組んでみてください。
ワンクリックで何段階もの処理が流れるのを体験すると、作業負担が激減するだけでなく、バラつきやエラーもぐっと少なくなるのを実感できるはずです
まとめ:ワークフロー化で「ポン出し」の限界を突破
Difyなら、一度ワークフローを作ってしまえば、誰が使っても何度でも同じ成果物が得られる環境が整います。
「翻訳してかChatGPTでもう一度要約」「文字数超過を人力で調整」など、これまで人が繰り返していた手作業を、自動的にやってくれるわけです。
- 1ステップのシンプル運用でポン出しの負担を軽減
- 複数ステップでLLMの弱みを補って仕上がりを底上げ
- 拡張機能を使ってブラウザからいつでも素早く呼び出し
こうしてChatGPTをわざわざ開いてのポン出しの限界を超えた“フローエンジニアリング”(プロンプト一つでなく、複数のプロンプト処理を組み合わせて高度なシステム設計を行うLLMシステム設計の手法の一つ)を簡単に実践できるのがDifyの強み。
あと、一度作ったワークフローは他の人にもURLさえ渡せば簡単に使ってもらうことも可能。みんなでどんどん作って、社内DXも加速できます。
「もうポン出しだけでいい」と思っている方も、ぜひ試しに1つワークフローを作ってみてください。ワンクリックで同じクオリティが得られるあの感覚を味わうと、きっとポン出しには戻れませんよ。
ということで、クリスマスという特別な日に、「ポン出し卒業」を決意してみませんか?この冬、Difyを使って“フローエンジニアリング”の世界に踏み出しましょう。「Proになったしポン出しで十分」なんて思っている方こそ、Difyのパワーを活用してみてください。壁を突破する楽しさを、ぜひ味わってほしいです。
一緒にフローエンジニアリングを広めて、2025年のクリスマスにはもっと快適な作業環境で迎えましょう!
Merry Christmas! そして素敵な年末年始をお過ごしください。
「NEWT Product Advent Calendar 2024」ファイナル!
12月2日より走り続けてきた「NEWT Product Advent Calendar 2024」も本日がファイナルとなりました!ここまでそれぞれの記事をお読みいただき、本当にありがとうございました。
技術的な発信はもちろん、創業からこれまでの振り返りや、イベントや開発合宿の開催レポートなど、プロダクトチームがさまざまなテーマでお送りしてきた18日間でした。
12月20日公開のEM miisanの記事にもあるように、2024年はEngineering Blogの執筆だけでなく、主催イベントや合同イベントの開催、大規模なカンファレンスへのスポンサードなど、技術広報活動に特に力を入れてきた一年となりました。
まだまだ、やりたきこと・やるべきことはたくさんありますが、ひとまず1記事も途切れずにアドベントカレンダーを走りきり、2024年を締めくくれて本当によかったです。
タイトなスケジュールのなか、日々の業務のほかにブログ執筆に協力してくれたメンバーのみなささん、そしてアドカレ運営チームのみなさん、本当にお疲れさまでした!2025年もさらに飛躍する一年間にしていきましょう!
「NEWT Tech Talk」のお知らせ
令和トラベルでは、技術的な知識や知見・成果を共有するLT会を毎月実施しています。発表テーマや令和トラベルに興味をお持ちいただいた方は、誰でも気軽に参加いただけます。
2025年1月のテーマは、 ” プロダクトマネジメント ”
新年第1弾のNEWT Tech Talkは、「NEWT(ニュート)」のプロダクト開発を牽引するPM 藤沼・Backendエンジニア兼PM 木村の2名が、”カスタマーファーストを実現するプロダクトマネジメントの舞台裏” と題して、LT形式で発表を行います。
令和トラベルでは一緒に働く仲間を募集しています
この記事を読んで会社やプロダクトについて興味をお持ちいただけましたら、ご連絡お待ちしています!フランクに話だけでも聞きたいという方は、カジュアル面談も実施できますので、お気軽にお声がけください。
今年最後の特大セールも開催中!
NEWTでは、12/26 お昼11:59まで、2024年最後のおトクなセールを開催中です!