【Dify活用】生成AIでSNS投稿を爆速で作成する方法③RAGの活用
前回は②エージェント(Function Calling)の活用を解説しました。最後は③RAGの活用法を解説します。
RAGとは
RAG(Retrieval-Augmented Generation、検索拡張生成)は、大規模言語モデル(LLM)の出力を最適化するための技術です。
LLMが回答を生成する前に、外部の信頼できる知識ベースを参照することで、より正確で関連性の高い回答を生成することが可能です。
RAGは、質問応答や文章生成において3つの主要なステップで動作します。
- 事前のテキスト情報などを数値に変換し、データベースに保存しておく
- ユーザーからの質問を数値化して、データベースから似ているデータを探す
- 探し出したデータベースの結果を”カンニング”させながら、LLMに回答させる
一番分かりやすい表現が「カンニング」です。
つまり生成AIに質問する際に、参考文章を自動的に検索・抽出して、質問文の中に入れ込んでから文章を生成させるのです。
RAGに入れるもの
Xの文章作成の際には、Xアナリティクスデータは入れておいたほうが良いかと思います。
色々とサービス有料化に伴い、アナリティクスデータが通常メニューから落とせなくなってしまいましたが、2024年8月現在は以下の直リンクに進むことでデータをDLできます。
https://ads.x.com/user/{アカウント名}/tweets/
RAGとして入れるのはツイートごとに指標が確認できる「By Tweet」を使うのがおすすめです。これをそのままDifyのナレッジに入れます。
By Tweetは1行1ツイートのCSVデータなので、チャンク設定は「カスタム」で、セグメント識別子は改行を表す「\n」を設定すると、1投稿ずつのチャンクデータとなります。
チャンクに関しては以下の説明を参考にしてください。
そして検索設定は、自動抽出されたキーワード検索とチャンクごとのベクトル検索(文脈での意味合い検索)をかけ合わせた「ハイブリッド検索」を選択し、検索結果の上位何個をコンテキストに使うかという「トップK」を2個以上など多めに設定するのがおすすめです。
トップKを多めに設定することで、過去の投稿やレスポンスを複数個参考にしながら、投稿を提案してもらうことが可能となります。
その他以下のようなデータをRAGとして扱うとよいと思います
- 商品カタログ
- 自社Webサイト(Firecrawlなどでクロールさせる)
- プレスリリース情報
- 過去のメディア報道記事
どのアカウントでも使えるRAG元
どのようなアカウントでも共通して使えそうなRAG向けのデータをご紹介します。
Xモーメントカレンダー
Xであればどのアカウントでも共通してRAGとして使えるのが、Xのモーメントカレンダーです。
これはカレンダーで記念日やXのバズりワードをまとめたものです。
ちなみにこのモーメントカレンダー(PDFファイル)は構造化がうまくされておらず、パスワード保護もされていると思われるので、前処理する場合は専用ソフトなどでテキスト化してからCSVなどでアップロードしたほうが良いかと思われます。
PRtimes今日は何の日
PRtimesでも記念日がまとめられています。こうしたデータをクローリングして活用するもの良いかと思います。
PRtimesは現時点ではクローリングをrobot.txtで許しているようですが、AI利用禁止となったら使うのは控えたほうがよいでしょう。
ちなみにRAGに関しては以下で解説した通り、著作権法47条5(著作物の軽微利用)と、30条の4(享受と情報解析)が論点となっており、どこまでが適法でどこからが違法か、まだ結論が出ていない状況です。
なお外部サイトをRAGで取り込む際は、最新の状況を確認するとともに必ずrobot.txtを確認することをおすすめします。
外部サイトのrobot.txtの確認もurllib.robotparserというライブラリが用意されており、これまたDifyでやってしまうと便利です(これはまた別途解説します)。
以上、3回に渡り解説してきたDifyのエージェントを活用したSNSの投稿文章の作成方法でした。
ポイントをまとめると、
- 文字数調整に外部関数を使う
- 関数はエージェントに使わせる
- RAGで情報を補強する
ということでした。
当社では生成AIの導入支援やDify活用支援なども行っていますので、お気軽にお問い合わせください。
特に中小企業こそAIを活用して、生産性を上げるべきフェーズであると思いますので、この機会に積極的にAIを活用しましょう。