OpenAI APIを使ってChatGPT風のチャットアプリを作成していこう

2025年10月16日

⚙️ 拡張構想

機能概要
🔄 ストリーミング表示OpenAI APIのstreamオプションでリアルタイム出力
💾 会話履歴保存DB保存済み、タイトル自動生成(最初の質問を要約)
🧍‍♀️ ユーザー認証Laravel Sanctumで個別チャット管理
🎭 AI人格設定「コーチ風」「エンジニア風」などプリセット人格選択
🧩 ファイル添付画像・PDFをアップロードしてAIに送信(Vision対応)

OpenAI APIstream: true オプション を使えば、ChatGPTのように1文字ずつ(または文単位)リアルタイムに出力することができます。
ここでは、Laravel + React構成で「リアルタイム出力するChatGPT風チャットUI」を実装する方法を具体的に示します。

要素技術役割
LaravelAPIサーバOpenAI APIを呼び出し、ストリームデータを返す
ReactフロントSSE(Server-Sent Events)またはFetchのReadableStreamで逐次受信
OpenAIGPT-4o / GPT-4o-mini返信生成(stream: true)

💡 改良アイデア

機能実装例
⏳ ローディングアニメーションisStreaming中にドットアニメーション
💾 履歴保存ストリーム完了時にDB保存
💬 複数チャット管理/chat/{id} 単位で履歴ロード
🪶 Markdown対応react-markdown でAI出力を整形表示
🔉 読み上げ機能SpeechSynthesis APIと連携

💬 機能要件まとめ

機能内容
✅ リアルタイム出力OpenAI APIの stream: true を使用してトークン単位で描画
✅ ローディングアニメーションストリーム中に「・・・」を表示
✅ 複数チャット管理チャット一覧 → 選択 → メッセージ表示
✅ 履歴保存DB(chats, messages)に永続化
✅ UIChatGPT風(左サイドにチャットリスト、右に対話画面)

まずは 「Laravel Blade版のChatGPT風チャットUI(管理画面内統合)」 を構築します。
リアルタイム出力(stream)+ローディングアニメーション+複数チャット管理を、LaravelのBlade内で完結する形にします。

とおもったのだが、最終的には、Reactでフロントエンドを構築するので、最初からそれでいく。

最新のお知らせ

thumb
2025年11月14日
プロトタイプ(試作)とPoC(概念実証)

プロトタイプ(Prototype)とは、「完成前に作る試作モデル...

thumb
2025年11月14日
見える化による安心感~最先端な要件定義

要件定義ってそんな簡単ではないです。 まずは見える化...

thumb
2025年11月14日
コミュニケーション

人間関係やチームでのコミュニケーション方法(伝え方・傾...

thumb
2025年11月13日
システム開発とは

システム開発とは、企業や組織が抱える課題を解決したり、...

thumb
2025年11月10日
AIをAPIで利用する、から、エージェントとして自律させる

「AIをAPIで利用する」から「AIエージェントを自立させる」...

thumb
2025年11月9日
人生の成長を支えるための行動としては、何が重要だと思いますか?

「成長を支える行動」は、才能や運よりも継続的な“習慣”や“姿勢...

thumb
2025年11月8日
ランサムウェア攻撃に関する情報をまとめてみました

大手企業が、システムをのっとられて稼働できなくさせられ...

thumb
2025年11月8日
感情編 ~ Human Writing 100 — 「人間らしい文章の100の条件」

先に言っておくと、100の条件もいらない。20程度あれば十分...

thumb
2025年11月6日
ウェルビーイングってなに?

「ウェルビーイング(Well-being)」とは、直訳すると「よく在...

thumb
2025年11月5日
Human Writing 100 — 「人間らしい文章の100の条件」

AIチャット(生成モデル)に“人間らしい文章”を出力させる...