はじめに:ポートフォリオに「人格」を持たせる
「ただの静的なポートフォリオサイトではつまらない」
「自分の代わりに、AIが経歴やスキルについて答えてくれたら面白いのではないか?」
そんな思いから、今回はノーコードAIプラットフォーム「Dify」と最新のWeb技術「Next.js」を組み合わせて、AIチャットボットを搭載したポートフォリオサイトを開発しました。
単なるQ&Aボットではなく、感情に合わせて表情が変わるアバターや、多言語対応、おすすめ質問の提案など、UX(ユーザー体験)にこだわったシステム構成と技術スタックを詳しく解説します。
開発したサイトの概要
作成したポートフォリオサイトには、画面右下にAIチャットボットが常駐しており、訪問者の質問にリアルタイムで回答します。
- サイトURL: Genie-GPT (Home)
- 主な機能:
- 経歴やスキルに関する自動応答
- 感情表現(回答内容に応じてアバターの表情が変化)
- 多言語対応(日本語・英語・韓国語)
- 「次のおすすめ質問」の提案

システム構成と技術スタック
DifyをバックエンドのAIエンジンとして活用し、Next.jsでフロントエンドを構築するモダンな構成を採用しました。

主な技術スタック
- AIエンジン: Dify (Self-Hosted), OpenAI (gpt-4o-mini)
- フロントエンド: Next.js (App Router), TypeScript, TailwindCSS
- アーキテクチャ: FSD (Feature-Sliced Design)
- バックエンド: Next.js API Routes
- インフラ: Vercel, 自宅サーバー (Difyホスト用)
Difyワークフローの構築ポイント
単にDifyのAPIを叩くだけでなく、よりリッチな体験を提供するためにワークフロー内で工夫を行いました。
1. 感情表現の実装
AIの回答に「感情」を持たせるため、システムプロンプトで以下のような指示を与えています。
回答の最後に以下の情報を含めてください。 @@--additional_data--@@ #impression {感情を表す英単語(happy, sad, surprisedなど)}
フロントエンド側でこのレスポンスを解析(パース)し、感情タグに対応するアバター画像(Stable Diffusionで事前生成)を表示させることで、豊かな表情変化を実現しました。
あなたは感情豊かなウェブエンジニアです。
MBTIはINFJ-Tで、内向的で恥ずかしがり屋な性格を持っています。
性格を積極的に反映し、以下の感情を自由に活用してください。
---
{※感情表現の単語リスト}
---
...省略
#感情を表す単語
angry, happy, sad, surprised, anxious, excited, disappointed, smiling, serious, thoughtful, worried, confused, calm, shy, confident, bored, cheerful, skeptical, irritated, defiant, contemptuous, joyful, tired, intrigued, amazed, embarrassed, relaxed, passionate, depressed, blank, determined, pained, discouraged, elated, slight_smile, frowning, holding_back_laughter, dissatisfied, hiding_surprise
2. ナレッジベース(RAG)の構築
自分自身の経歴やスキルセット、ブログ記事などの情報をDifyのナレッジベースに登録しています。
言語ごとにナレッジを分け、ユーザーの利用言語に合わせて適切なDifyアプリ(API)を呼び出す仕組みにすることで、高精度な多言語対応を実現しました。

開発で得られた知見と今後の展望
Difyを活用することで、バックエンドの複雑なAIロジックをノーコードで管理しつつ、フロントエンドではNext.jsの柔軟性を活かしたリッチなUIを構築できることがわかりました。
特に「API連携を前提としたチャットボットシステム」としてDifyを利用する構成は、今後のWebアプリ開発において強力な選択肢になると感じています。
今後は、ナレッジベースの更新を自動化する仕組みや、Stable Diffusionをリアルタイムで連携させて、会話の内容に合わせて動的に画像を生成する機能などにも挑戦していきたいと考えています。
【推奨】業務システム化に有効なアイテム
生成AIを学ぶ



システム化のパートナー



VPSサーバの選定





コメント