Next.jsとGroqを使ってAIツールTwitterバイオジェネレータを構築する方法を学びます。ShadCn UIコンポーネント、Magic UIコンポーネント、Llama 3 & Mistralモデルのパワーを活用し、Groq LLMを使ってシームレスに統合します。
- Llama30億モデルをGroq LLMプロバイダーと連携させ、温度スライダー(0-2)でクリエイティビティを調整しながら、Twitterバイオを生成。
- Vercel AI SDKのgenerateText機能を活用し、ユーザー入力に基づくAIによるバイオ生成機能をシームレスに統合。
- アカウントタイプ(個人/ブランド)とトーン(例:面白い、プロフェッショナル)を選択し、カスタマイズされたバイオジェネレーションを実現。
UIコンポーネントとスタイリング
- ShadCN UIとMagic UIコンポーネントをTailwind CSSと組み合わせることで、レスポンシブで視覚的に魅力的なインターフェイスが実現します。
- 背景にはMagic UIのGrid、ボタンにはAnimated Gradient Text、アイコンにはLucid Reactライブラリを採用。
- Magic UIのborder beamコンポーネントを使用して、出力のロード状態によって制御されるロードアニメーションを作成します。
フォーム処理とバリデーション
- Zodを使ってフォームスキーマを定義し、モデル、温度、コンテンツの長さ(50~400文字)、タイプ、トーンなどのフィールドを検証する。
- Zodリゾルバを使用してreact-hook-formを実装し、モデル温度の調整を含む、タイプセーフで有効なフォーム処理を行う。
- ShadCN UIからトーン選択用のスイッチコンポーネントを追加し、値を渡して出力を更新する。
サーバーサイドの統合
- .env.localにGroq APIキーを設定し、バイオ生成リクエストを処理するgenerateBioサーバーアクションを作成する。
- useServer ディレクティブを使って、サーバーアクションを別のファイルに作成し、フォーム送信用のクライアントコンポーネントにインポートします。
- サーバーアクションを呼び出し、生成されたバイオオプションで出力状態を更新するuseEffectフックを実装する。
状態管理とコンテキスト
- ReactのcreateContextを使ってbioContextを作成し、子コンポーネントに出力と読み込み状態を提供する。
- useContextフックを使用して、生成されたバイオを表示するための出力コンポーネントの出力とロード状態にアクセスします。
レスポンシブ・デザインとユーザー・エクスペリエンス
- レスポンシブデザインのためにTailwind CSSクラスを適用し、画面サイズに応じてパディング、テキストサイズ、グリッドレイアウトを調整します。
- クリップボードに簡単にコピーできるように、生成された各バイオにコピーボタンを追加。
システムプロンプトとモデル設定
- Groqプレイグラウンドで詳細なシステムプロンプトを作成し、AIチャットボットの動作を定義し、適切なモデルとトークンの長さを選択します。
- システムプロンプトを最適化し、生成されるTwitterの経歴の品質と関連性を向上させる。