チャットストリームエージェントを使用した Twitter アカウントの分析方法
著者:Steven Lynn. Difyのテクニカルライター
はじめに
Difyでは、WebページをLLM(大規模言語モデル)が読み取れるMarkdown形式に変換するためのクローラーツール、例えばJinaを利用できます。
最近、wordware.aiが、クローラーを使ってソーシャルメディアをデータ収集し、LLM分析用の面白いアプリケーションを開発できることを教えてくれました。このアプリケーションは、特にデータ分析や洞察を提供するために設計されています。
しかし、かつてTwitterとして知られていた「X」は、2023年2月2日以降、無料のAPIアクセスを提供しなくなり、それに続いてクローリング対策を強化しました。そのため、JinaのようなツールはXのコンテンツに直接アクセスすることができなくなっています。
2023年2月9日から、Twitter APIの無料アクセスは終了し、v2およびv1.1のサポートも行われなくなります。代わりに、有料の基本プランが提供されます。 🧵
— Developers (@XDevelopers) February 2, 2023
幸いなことに、DifyにはHTTPツールがあり、これを使用して外部のクローリングツールにHTTPリクエストを送信できます。それでは、始めていきましょう!
前提条件
Crawlbaseの登録
Crawlbaseは、ビジネスや開発者向けに設計されたデータクローリングとスクレイピングのプラットフォームです。このツールを使うことで、X、Facebook、Instagramなどのソーシャルメディアプラットフォームからデータを収集できます。
登録は以下のリンクから行えます:crawlbase.com
Difyのローカル展開
DifyはオープンソースのLLMアプリケーション開発プラットフォームで、クラウドサービスを利用するか、docker composeを使用してローカルに展開できます。
この記事では、ローカル展開を希望しない方のために、無料のDify Cloudサンドボックスアカウントをこちらから登録する方法を紹介します:https://cloud.dify.ai/signin。
Dify Cloud Sandboxのユーザーは、200の無料クレジットを取得できます。これは、200のGPT-3.5メッセージまたは20のGPT-4メッセージに相当します。
以下は、Difyを展開するための簡単な手順です:
Difyをクローン
Difyを起動
LLMプロバイダーの設定
アカウント設定にて、モデルプロバイダーを設定してください:
チャットフローの作成
それでは、チャットフローの作成を始めましょう。
空白から作成
をクリックして、新しいフローの作成を開始します:
初期化されたチャットフローは以下のようになります:
チャットフローにノードを追加
開始ノード
開始ノードでは、チャットの最初にシステム変数を追加できます。このプロセスでは、TwitterユーザーのIDを文字列型の変数として使用します。変数名をid
としましょう。
開始ノードをクリックして、新しい変数を追加します:
コードノード
Crawlbaseのドキュメントによれば、次のノードで使用する変数url
はhttps://twitter.com/
にユーザーID
を加えた形にする必要があります。例えば、Elon MuskのユーザーIDの場合はhttps://twitter.com/elonmusk
となります。
ユーザーIDを完全なURLに変換するためには、以下のPythonコードを使用して、プレフィックスhttps://twitter.com/
とユーザーIDを結合します:
コードノードを追加し、Pythonを選択した後、入力および出力の変数名を設定してください:
HTTPリクエストノード
Crawlbaseのドキュメントによると、TwitterユーザーのプロフィールをHTTP形式でスクレイピングするには、以下の形式でHTTPリクエストノードを設定する必要があります:
セキュリティ上の観点から、トークン値を平文で直接入力することは避けるべきです。これは推奨されるベストプラクティスではありません。実際、Difyの最新バージョンでは、トークン値を環境変数に設定できるようになっています。env
をクリックしてAdd Variable
を選択し、トークン値を設定すると、ノードに平文が表示されなくなります。
あなたのCrawlbase APIキーについては、こちらで確認できます。
/
を入力することで、APIキーを簡単に変数として挿入できます。
このノードが正しく動作するか確認するために、ノードの開始ボタンをタップしてください:
LLMノード
さて、Crawlbaseによってスクレイピングされた結果を分析し、コマンドを実行するためにLLMを使用できます。
値context
はHTTPリクエストノードからのbody
でなければなりません。
以下はサンプルのシステムプロンプトです。
テスト実行
プレビュー
をクリックしてテスト実行を開始し、id
にTwitterユーザーIDを入力してください。
例えば、Elon Muskのツイートを分析し、彼の口調で地球温暖化についてのツイートを書きたいと思います。
これはElonらしいですか?笑
右上隅にある公開
をクリックして、あなたのWebサイトに追加してください。
楽しんでください!
最後に…
他のX(Twitter)クローラー
この記事では、Crawlbaseを紹介しました。これはおそらく利用可能な最も安価なTwitterクローラーサービスですが、時々ユーザーのツイートの内容を正しくスクレイピングできないことがあります。
以前に紹介したwordware.aiが使用しているTwitterクローラーサービスはTweet Scraper V2ですが、ホストされているプラットフォームapifyのサブスクリプションは月額49ドルです。
リンク
DifyのGitHubリポジトリ:https://github.com/langgenius/dify
Last updated