MVPの構築:フロントエンドとバックエンド
DifyとWindsurfによるノーコードの旅:Twitter MBTI分析ツールの構築
⬇️ 読む前に、試してみてください
最近AIプロダクトに注目していれば、WindsurfとCursorというAIを活用した次世代IDEについて聞いたことがあるでしょう。
この記事では、IT経験がなかった私がWindsurfとDifyを使って成功したプロダクトを作った経験を共有します。
ヒットプロダクトの「Twitter MBTI Receipt」は、リリースからわずか3日間でTwitterで20万ヒットを獲得しました。このアプリケーションは、Twitterスクレイパーを使用してユーザーのプロフィールを分析し、MBTI性格診断レポートを生成します。すべてDifyのワークフローで構築されています。
プロジェクト概要
このプロジェクトは2つの主要技術を活用しています:
-
バックエンド構築のためのDify
-
フロントエンド開発のためのWindsurf
この2つのコンポーネントはHTTPリクエストを通じて通信し、シームレスな統合を実現しています。
Difyでバックエンドを構築する
**DifyはLLMアプリケーションプラットフォームで、コードを書かずにAIアプリケーションを構築できます。**特にバックエンド開発に適しています。
Difyで新しいアプリケーションを作成する前に、ワークフローに必要なプロセスを確認する必要があります。マインドマップから始めましょう:
それでは、Difyワークフローでそれを実現しましょう。
チャットフローは継続的な対話を可能にしますが、ワークフローは「スクリプト」のように機能します - 変数を入力して、ワンタイムの出力を受け取ります。
ワークフローが何かわからない場合:ワークフローの構築は、マインドマップを作成するのと同じです。ノードを追加してドラッグし、ノードに変数を設定できます。
スタートノード
スタートノードでは、いくつかの変数を追加できます。user_idとlanguagesを追加しましょう。
HTTPリクエストノード
次のノードでは、スクレイパーを呼び出すためのHTTPリクエストノードが必要です。Twitter開発者プラットフォームは公式APIを提供しています。独自のスクレイパーをデプロイしたい場合は、TwitterをサポートするオープンソースのスクレイパーであるRSS Hubを試すことができます。
LLMノード
LLMノードでは、包括的なレポートを生成するためにプロンプトを調整する必要があります。効果的なプロンプトの書き方がわからない場合は、ワークショップを参照してください。
パラメータ抽出ノード
パラメータ抽出ノードは、文章をJSON形式の複数のパラメータに変換し、フロントエンドのためにデータを準備します。
以下は、Twitterからデータをスクレイピングし、レポートを生成して出力する最小限のワークフローです。GitHubリポジトリで完全なバックエンドを見ることができます。
MVPウェブアプリ
Difyは公開後にウェブアプリケーションを提供し、迅速な共有とテストを可能にします。
Windsurfでフロントエンドを構築する
WindsurfのAIアシスタントCascade(Claude-3.5-sonnetを搭載)は、他のAIコーディングアシスタントとは一線を画しています。次のことができます:
-
プロジェクトディレクトリへのアクセス
-
複数のファイルを同時に作成・編集
-
自律的にターミナルコマンドを実行
バックエンドへの接続:APIはどのように機能するか?
Difyは左サイドバーにAPIドキュメントを提供しています。cURLリクエストの例が示されています。APIキーをコピーして安全な場所に保存してください。フロントエンドにAPIキーを保持しないことを強くお勧めします。
下にスクロールすると、リクエストとレスポンスの例が表示されます。
このチャートでは、DifyへのHTTPリクエストとレスポンスが示されています:
inputsの変数はスタートノードの変数で、outputの変数はエンドノードの変数です。変数はJSON形式で記述されているため、正しく解釈できることを確認してください。
また、ヘッダーにAPIトークンを入力することを忘れないでください。
フロントエンドに統合する前に、例のリクエストをコピーしてPostmanを使用してローカルでテストできます。
入力ボックスにcURLコマンドを貼り付けると、Postmanが変換します。上記で説明した変数を入力する必要があります。
フロントエンドの構築
Cascadeの助けを借りれば、数分でフロントエンドを作成できます。次の質問から始めましょう:
-
何を構築していますか?
-
どのようなフレームワークを使用しますか?
-
ウェブデザインを説明してください。
-
バックエンドとどのように接続しますか?
CascadeにHTTPリクエストとレスポンスを説明する方法がわからない場合は、Postmanでテストしたリクエストとレスポンスを例としてコピーできます。
このプロジェクトを設計するときのプロンプトは次のとおりです:
Anthropicのドキュメントを参照してください:プロンプトエンジニアリング - XMLタグを使用してプロンプトを構造化する