👏
ChatGPTのAPIを利用してChatアプリを作ろう③ 14日目
ChatGPTのAPIを利用してChatアプリを作ろう(Chat画面の構築)
はじめに
いよいよ楽しい実装部分の紹介です。この記事では、ChatGPT APIを活用したチャット画面をASP.NET Core MVCを使って構築する方法を解説します。チャット画面では、以下の基本機能を実現します:
- ユーザーが入力したテキストを表示する。
- ChatGPT APIを呼び出して、その応答を表示する。
これにより、シンプルかつ動的な会話機能を持つWebアプリケーションを構築できます。
ステップ1: MVC構造の確認と基本設定
1. MVCとは?
ASP.NET Core MVCは、Model-View-Controllerアーキテクチャを採用しています。以下が基本的な役割です:
- Model: アプリケーションのデータ構造やビジネスロジックを定義します。
- View: ユーザーインターフェース(HTML、CSS)を構築します。
- Controller: ユーザーのリクエストを処理し、適切なModelとViewを呼び出します。
2. 必要なプロジェクト構成
以下のような構成を準備します:
OnecaratWebApp/
├── Controllers/
│ ├── ChatController.cs
├── Models/
│ ├── ChatMessage.cs
├── Views/
│ ├── Chat/
│ ├── Index.cshtml
├── wwwroot/
│ ├── css/
│ ├── js/
├── Program.cs
├── appsettings.json
ステップ2: モデルの作成
1. ChatMessageモデル
ユーザーの入力とChatGPT APIの応答を管理するため、ChatMessage
モデルを作成します。
ファイル: Models/ChatMessage.cs
namespace OnecaratWebApp.Models
{
public class ChatMessage
{
public string? UserMessage { get; set; }
public string? BotResponse { get; set; }
}
}
ステップ3: コントローラーの作成
1. ChatController
チャットのロジックを処理するためのコントローラーを作成します。
ファイル: Controllers/ChatController.cs
using Microsoft.AspNetCore.Mvc;
using OnecaratWebApp.Models;
namespace OnecaratWebApp.Controllers
{
public class ChatController : Controller
{
[HttpGet]
public IActionResult Index()
{
return View(new ChatMessage());
}
[HttpPost]
public IActionResult Index(ChatMessage model)
{
// TODO: ChatGPT APIを呼び出して応答を取得
model.BotResponse = $"Bot: {model.UserMessage}(APIの応答がここに表示されます)";
return View(model);
}
}
}
ステップ4: ビューの作成
1. チャット画面のUI
ファイル: Views/Chat/Index.cshtml
@model OnecaratWebApp.Models.ChatMessage
<!DOCTYPE html>
<html>
<head>
<title>Chat with ChatGPT</title>
<link rel="stylesheet" href="~/wwwroot/css/style.css" />
</head>
<body>
<div class="container">
<h1>Chat with ChatGPT</h1>
<form method="post">
<div>
<label for="userMessage">Your Message:</label>
<textarea id="userMessage" name="UserMessage" rows="4" cols="50">@Model.UserMessage</textarea>
</div>
<button type="submit">Send</button>
</form>
<div class="response">
<h3>Response:</h3>
<p>@Model.BotResponse</p>
</div>
</div>
</body>
</html>
ステップ5: CSSの追加
1. 基本的なスタイル
ファイル: wwwroot/css/style.css
.container {
width: 50%;
margin: 0 auto;
padding: 20px;
border: 1px solid #ddd;
border-radius: 8px;
background-color: #f9f9f9;
font-family: Arial, sans-serif;
}
textarea {
width: 100%;
margin-bottom: 10px;
}
button {
padding: 10px 20px;
background-color: #007bff;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
}
button:hover {
background-color: #0056b3;
}
.response {
margin-top: 20px;
padding: 10px;
border: 1px solid #ddd;
border-radius: 4px;
background-color: #ffffff;
}
ステップ6: アプリケーションの実行
-
dotnet watch run
を使用してアプリケーションを起動します。dotnet watch run
- ブラウザで
http://localhost:XXXX/Chat
にアクセスし、チャット画面を確認します。
※XXXXは起動したときのページからポートから書き換えてください。
まとめ
この記事では、ASP.NET Core MVCを使用して、シンプルなChatGPTチャット画面を構築する手順を解説しました。この画面は、今後ChatGPT APIとの連携を通じて高度な機能を実現する土台となります。次回の記事では、ChatGPT APIを呼び出して実際の応答を表示する方法を詳しく説明します。
Discussion