【dify】検索上位10記事をつかって、SEOを考慮した記事タイトルをつくる方法

こんにちは!
九保すこひです(フリーランスのITコンサルタント、エンジニア)

さてさて、私は歴15年のエンジニアですが「フリーランスで良かった」と思う点があります。

それは・・・・・・

経営サイドから面白い話が聞ける

ことです。

先日いかにも経営サイドの方が好みそうなテクノロジーを教えてもらいました。

それが・・・・・・

dify(でぃふぁい)

です。

簡単に言うと「より自分好みに改造できるChatGPT」です。

difyは多くの作業を効率化できるということで、55,900件のスターを獲得しています。(2024.12.24現在)

たとえば、次のようなことができます。

  1. 検索キーワードを送信
  2. wikipediaでページ検索
  3. データをGPT-4でスクレイピング
  4. 同じくJSON化
  5. そのJSONをメールで送信する

つまり、自分でストーリーをつくっていろんな作業をさせられるというわけです。(水バケツリレーみたいなイメージですね)

メリットはこんなカンジ。

  • dify本体は無料(APIは除く)
  • ローカルで動く
  • ウェブ版もある(こっちは無料&有料)
  • GPT以外のAPIも使える
  • dockerなのでインストール簡単

そこで!
今回はdifyで私の「ある時間をかかる」ことをショートカットしてみます。

この記事は・・・・・・

  • そもそも「dify」って何ができるの?
  • 勉強しないと使えないんじゃないの?
  • 日々の面倒な作業が楽になるってホント?

という方に向けて書いています。
ぜひ最後まで読んでくださいね😊

「ロックマン3のBGMを聞いたら、
3日たってもイヤーワームが止まらない(笑)」

dify:この記事で出来るようになること

ライティング・ハックス(講座)で勉強をしたとき、執筆前に次のリサーチが必要なことを知りました。

  1. 狙いのキーワードで検索
  2. 上位の10記事を調査
  3. 共通する読者ニーズを読みとる
  4. 記事の構成をつくる

つまり、まずは競合を見て自分が何をするか決めるんですね。

そう考えると、記事タイトルの作成も競合からヒントを得られそうです。

そこで、今回はdifyで検索上位のタイトルを10個を参考にして、もっと魅力的なタイトルをつくってみます

※ただし、SEOは記事タイトルよりドメインパワーの方が影響が強いと言われていますので、このやりかたが絶対ではないことだけ注意してください。

dify:インストールする5ステップ

difyはdockerを用意してくれているのでインストールは簡単です!
今回は公式のgitリポジトリに書かれている方法でインストールします。

【ステップ1】git cloneでリポジトリをコピー

以下のコマンドで好きな場所にソースコードをコピーしてください。

git clone https://github.com/langgenius/dify.git

【ステップ2】difyのdockerフォルダへ移動

cd dify
cd docker

【ステップ3】環境変数を作成(ファイルをコピー)

cp .env.example .env

【ステップ4】dockerを起動

docker compose up -d

※最初は5〜10分ぐらい時間がかかるかもしれません

【ステップ5】ユーザー登録してログイン

すでにdifyが使えるので、http://localhost/installにアクセスしてユーザー登録してください。

ログインしたら、こんな画面になります。

dify:ワークフローの基本

記事の冒頭で紹介した「水バケツ」方式で処理をすることを「ワークフロー」と言います。

difyには他にもいくつか処理方法がありますが、今回はワークフローの使い方を紹介します。

なお、ワークフローの基本は、

  • 入ってくるデータ
  • 出ていくデータ

を設定して、ブロックをつなぐ。
これだけでです!

dify:ワークフローをつくる3ステップ

ワークフロー本体をつくるのはとても簡単です!

【ステップ1】トップページへ移動する

すでにトップページの方はそのままでいいですが、もし別のページが表示されている場合はページ左上のロゴをクリックしてください。

【ステップ2】ブランクAppをつくる

Create from Blank」と書かれたリンクがあるのでクリック。

【ステップ3】作成するAppの設定をする

次の内容を保存してください。

  1. Choose App Type:Workflowを選択
  2. App Name & icon:好きな名前を入力
  3. 保存ボタンをクリック

dify:記事タイトルをつくる5ステップ

ワークフロー本体の保存が完了すると、設計ページに転送されます。

では、ここからは本題の記事タイトルをつくっていきます。
必要な手順(ワークフローのブロック)は次の5つです。

  1. キーワードの入力フォームをつくる
  2. 上位10記事のタイトルを取得
  3. データを加工
  4. GPT-4に記事タイトルを考えてもらう
  5. 出力

【ステップ1】キーワードの入力フォームをつくる

ワークフロー設計ページに移動すると「Start」というブロックが用意されています。

ここがスタート地点で、どんな入力をするのかを設定します。
以下6つの入力がつかえます(2024.12.25時点)

  • Short Text:短いテキスト
  • Paragraph:文章
  • Select:選択
  • Number:番号
  • Single File:ファイル(1つ)
  • File List:ファイル(複数)

今回は次の設定で実行します。

  1. Field type:Short Text
  2. Variable Name:q
  3. Label Name:検索キーワード

【ステップ2】上位10記事のタイトルを取得

先ほどのフォームで入力したキーワードを受けとって、ウェブ検索する部分です。

+ボタンを新しいブロックを追加します。

すると、次のようなパネルが表示されます。

Tools」をクリックして検索ボックスに「duck」と入力してください。

すると、DuckDuckGo(検索エンジン)のツールが表示されるので「DuckDuckGo Search」を選んでください。

※GoogleやBraveもありますが、APIの設定が必要です。

ページ右側にブロックの設定パネルが表示されます。

この中のQuery string下の入力ボックスをクリックして(半角で)/を入力すると、選択肢が表示されます。

この中から「q」を選んでください(これはさっき設定したqという変数名です)

また、次の設定もしておいてください。

  • MAX RESULTS:10件
  • RETRY ON FAILURE:ON(DuckDuckGo Searchは失敗が多いので)

※ちなみにパネル内にある「OUTPUT VARIABLES」を開くと、次のブロックに送るデータ一覧が表示されます。

【ステップ3】データを加工

DuckDuckGoで取得した検索結果10件は以下のようなものになります。

{
"text": "",
"files": [],
"json": [
{
"title": "(ページタイトル)",
"href": "(ページURL)",
"body": "(本文の一部)."
},
...続く
]
}

この中から「title」だけを取得して次のようにコードで加工します。

※正直言うと次のGPT-4にそのまま送ってもいけそうですが、練習的な意味合いもありますので、あえてコードの使い方も紹介しています!

・ページタイトル1
・ページタイトル2
・ページタイトル3

では、先ほどと同じく「+ボタン」をクリックしてブロックを追加し「Blocks > Code」を選択してください。

すると、新しいパネルが表示されるのでINPUT VARIABLESを次のようにします。

  1. ひとつめの変数名:searchItemsに変更
  2. ひとつめの値:jsonを選択

ふたつめの変数は不要なので、削除して問題ありません。

そして、コードを入力します。
プログラミング言語をPython3JavaScriptに変更し、以下のコードを貼り付けてください。

function main({searchItems}) {
return {
result: searchItems.map(item => {
return '・'+ item.title;
}).join("\n")
}
}

完了するとこうなります。

【ステップ4】GPT-4に記事タイトルを考えてもらう

また新しいブロックを「+ボタン」で追加し「LLM」を選択します。

右側にLLMパネルが表示されるので、MODELSYSTEMを入力します。

※MODELはAPIキーを追加しないと選択できません。

そして、SYSTEMの文章は以下のとおりです。

以下は検索上位の記事のタイトルをまとめたものです。
これらにSEOで勝てるようなより魅力的なタイトルを10個提案してくください。

【検索上位のタイトル】
{result}

なお、{result}の部分は、半角「{」と入力すると選択肢が表示されるので「result」を選択してください。

【ステップ5】出力

最後のブロックです。
+ボタン」で追加して、OUTPUT VARIABLEから「LLM > text」を選択すればOK。

これで設定は完了です。
お疲れ様でした😊

テストしてみる

では実際にテストしてみましょう。
ページ右上にある「Run」ボタンをクリックします。

フォームが表示されるので、書きたい記事のキーワードを入力して「Start Run」ボタンを押します。

さて、どうなるでしょうか・・・・・・

・・・。

出力はこうなりました!

"ステップバイステップ: LaravelとLINE通知の統合ガイド"
"LaravelとLINE Messaging APIの完全マニュアル: 2022年版"
"LaravelでLINE Notifyを使った通知システムの構築"
"Laravel 11.xの新機能: LINE通知の実装方法"
"LaravelとLINE APIの連携: 自動返信からメッセージ送信まで"
"LaravelプロジェクトにLINE Notifyを統合する最新ガイド"
"LaravelとLINE通知の連携: フレームワークでの実装テクニック"
"LaravelによるLINE Messaging APIの活用法: 完全ガイド"
"LaravelとLINE Notify: Webアプリケーションでの通知設定方法"
"Laravel 11.xでのLINE通知の実装: Web Artisansのためのガイド"

さすがGPT-4ですね!

キャッチコピーとしても有効と言われる数字を入れたり、できるだけ左側にキーワードを多く配置するなどテクニックを感じる内容でした。

成功です😊✨

企業様へのご提案:人員不足をAIで乗り切りたい方へ

difyを使うと、社内のルーティンワークを効率化&省力化することができます。

また、difyだけではできない処理も私がコードを提供することで対応ができるかもしれません。

もしAIを仕事に役立てたい方はお問い合わせからご相談ください。

お待ちしております!😊

おわりに

ということで、今回はdifyを使ってみました。

difyのことを教えてくれた方は、difyとプログラムが2つ合体するとすごいことができそうだとおっしゃっていました。

プログラマとAIの共存という形も時代の流れかもしれません。

どちらにしても常に新しい情報をインプット&アウトプットしておかないと置いていかれちゃうってことですね。

個人的にもdifyを使ってルーティンワークを効率化できたらと思ってます!

みなさんもトライしてくださいね。
ではでは〜!

「久しぶりの深夜に食べる牛丼、
うんまかったー!」

このエントリーをはてなブックマークに追加       follow us in feedly  
お問い合わせ、お待ちしております。
開発のご依頼はこちら: お問い合わせ
どうぞよろしくお願いいたします! by 九保すこひ