ChatGPTだけでHPを作りたい!(API埋め込み編)
はじめに
こんにちは!ChatGPT部の原田です!前回、ChatGPTにアニメーションを作ってもらいました!今回は、何しよう、、
と考えること3秒!「HPにChatGPT埋め込みたいな、」
ということで今回はそんな事ができるのかを聞いていきます!
前回の記事はこちら!↓
では早速本編へ!
1. 聞いてみる
前回の続きからなので、プロンプトはこんな感じ、、
結果は、、、
できるみたい!
以下ChatGPTからの回答です!
必要なステップ
OpenAI APIキーの取得
OpenAI APIにサインアップし、APIキーを取得します。APIキーは後ほどコード内で使用します。
APIを呼び出すためのバックエンドを準備
フロントエンドから直接APIを呼び出すことはセキュリティ上推奨されないため、API呼び出しはバックエンドを通して行います。Node.js、Python (Flask/Django) などを使ってサーバーサイドでAPIを呼び出すのが一般的です。
フロントエンドのセットアップ
フロントエンド側で、ユーザーが入力したテキストをバックエンドに送信し、APIを呼び出して結果を返す仕組みを作成します。
サンプルコード
1. Node.jsを使ったバックエンド
必要なパッケージのインストール
npm init -y
npm install express openai cors body-parser
server.js (バックエンドの例)
const express = require('express');
const bodyParser = require('body-parser');
const cors = require('cors');
const { Configuration, OpenAIApi } = require('openai');
// Expressアプリの設定
const app = express();
app.use(bodyParser.json());
app.use(cors());
// OpenAI APIの設定
const configuration = new Configuration({
apiKey: 'YOUR_OPENAI_API_KEY' // ここにAPIキーを入れる
});
const openai = new OpenAIApi(configuration);
// ChatGPTエンドポイントの設定
app.post('/chat', async (req, res) => {
const { message } = req.body;
try {
const response = await openai.createChatCompletion({
model: "gpt-3.5-turbo",
messages: [{ role: "user", content: message }],
});
res.json({ reply: response.data.choices[0].message.content });
} catch (error) {
console.error(error);
res.status(500).json({ error: 'ChatGPT API呼び出し中にエラーが発生しました' });
}
});
// サーバー起動
const PORT = process.env.PORT || 5000;
app.listen(PORT, () => {
console.log(`サーバーがポート ${PORT} で起動しました`);
});
2. フロントエンドのセットアップ
次に、ユーザーがテキストを入力し、ChatGPTからの返答を受け取るインターフェースを作成します。
index.html (フロントエンドの例)
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ChatGPT Integration</title>
<style>
body {
font-family: Arial, sans-serif;
padding: 20px;
}
#chatBox {
width: 100%;
height: 300px;
border: 1px solid #ccc;
padding: 10px;
overflow-y: scroll;
}
#userInput {
width: 100%;
padding: 10px;
margin-top: 10px;
font-size: 16px;
}
#sendButton {
padding: 10px 20px;
font-size: 16px;
margin-top: 10px;
}
</style>
</head>
<body>
<h1>ChatGPTと会話しよう!</h1>
<div id="chatBox"></div>
<input type="text" id="userInput" placeholder="質問を入力してください">
<button id="sendButton">送信</button>
<script>
const chatBox = document.getElementById('chatBox');
const userInput = document.getElementById('userInput');
const sendButton = document.getElementById('sendButton');
sendButton.addEventListener('click', async () => {
const userMessage = userInput.value;
if (!userMessage) return;
chatBox.innerHTML += `<p><strong>あなた:</strong> ${userMessage}</p>`;
userInput.value = '';
const response = await fetch('http://localhost:5000/chat', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ message: userMessage })
});
const data = await response.json();
chatBox.innerHTML += `<p><strong>ChatGPT:</strong> ${data.reply}</p>`;
chatBox.scrollTop = chatBox.scrollHeight;
});
</script>
</body>
</html>
説明
バックエンド (server.js)
expressを使用してサーバーをセットアップし、/chatエンドポイントでOpenAI APIを呼び出しています。
messageにはフロントエンドから送信されたユーザーの入力を受け取り、ChatGPTに投げて返答を受け取ります。
フロントエンド (index.html)
ユーザーがテキストを入力し、送信ボタンをクリックすると、バックエンドにリクエストが送信され、ChatGPTの返答が表示されます。
実行方法
Node.jsサーバーを起動します:
node server.js
ブラウザでindex.htmlを開いて、ChatGPTと対話を行います。
注意事項
フロントエンドから直接APIキーを使わないようにし、必ずバックエンドを通してAPIを呼び出すようにしてください。セキュリティリスクを軽減するためです。
APIキーは絶対に公開しないように注意してください。
これでChatGPTをWebサイトに統合することができます。他に質問があれば教えてください!
細かな解説、やり方まですぐ出してくれました!
ちょっと突っ込みます!
2. Node.jsを使ったバックエンド??
Node.jsを使ったバックエンド??それは一体なんぞ??
回答は、、、
以下ChatGPTからの回答です!
ステップ1: Node.jsをインストール
まず、Node.jsをインストールする必要があります。Node.jsは、JavaScriptをサーバーサイドで実行できるプラットフォームです。
1. Node.jsのインストール
Node.js公式サイトにアクセスします。
自分のOS(Windows, macOS, Linux)に適したバージョンのNode.jsをダウンロードします。LTS(長期サポート版)を選ぶことをお勧めします。
インストーラを実行し、画面の指示に従ってインストールします。
2. インストール確認
Node.jsのインストールが完了したら、次のコマンドをターミナルまたはコマンドプロンプトで実行して、インストールが成功したか確認します。
node -v
バージョン番号が表示されれば、Node.jsのインストールは成功です。
npm -v
これにより、npm(Node.jsのパッケージ管理システム)もインストールされたか確認できます。npmは、必要なパッケージをインストールするために使います。
ステップ2: プロジェクトディレクトリの作成
次に、Node.jsプロジェクトを作成するディレクトリを作ります。
1. プロジェクトディレクトリを作成
まず、プロジェクト用の新しいディレクトリを作成し、そのディレクトリに移動します。
mkdir my-chatgpt-server cd my-chatgpt-server
2. npmプロジェクトの初期化
次に、npmを使ってNode.jsプロジェクトを初期化します。これにより、package.jsonというプロジェクトの設定ファイルが作成されます。
npm init -y
-yオプションをつけると、デフォルト設定でプロジェクトを初期化します。これでプロジェクトのセットアップが完了しました。
ステップ3: 必要なパッケージのインストール
ChatGPTを統合するためには、いくつかのパッケージが必要です。
1. Express, OpenAI, CORS, Body-parserのインストール
以下のコマンドを使って、必要なパッケージをインストールします。
npm install express openai cors body-parser
express: 軽量のWebサーバーフレームワークで、サーバーを作成するために使用します。
openai: OpenAIのAPIを使用するための公式パッケージ。
cors: クロスオリジンリソース共有(CORS)を有効にするためのミドルウェア。
body-parser: リクエストのボディ部分を解析するためのミドルウェアです。
ステップ4: server.jsファイルを作成
プロジェクトディレクトリの中に server.js というファイルを作成します。このファイルが、Node.jsサーバーとして動作するメインのスクリプトです。
1. server.jsの作成
テキストエディタを使って、以下の内容を server.js に記述します。
const express = require('express');
const bodyParser = require('body-parser');
const cors = require('cors');
const { Configuration, OpenAIApi } = require('openai');
// Expressアプリの設定
const app = express();
app.use(bodyParser.json());
app.use(cors());
// OpenAI APIの設定
const configuration = new Configuration({
apiKey: 'YOUR_OPENAI_API_KEY' // ここにAPIキーを入れる
});
const openai = new OpenAIApi(configuration);
// ChatGPTエンドポイントの設定
app.post('/chat', async (req, res) => {
const { message } = req.body;
try {
const response = await openai.createChatCompletion({
model: "gpt-3.5-turbo",
messages: [{ role: "user", content: message }],
});
res.json({ reply: response.data.choices[0].message.content });
} catch (error) {
console.error(error);
res.status(500).json({ error: 'ChatGPT API呼び出し中にエラーが発生しました' });
}
});
// サーバー起動
const PORT = process.env.PORT || 5000;
app.listen(PORT, () => {
console.log(`サーバーがポート ${PORT} で起動しました`);
});
このコードは、Express.jsを使ってWebサーバーを起動し、/chatエンドポイントでChatGPTのAPI呼び出しを処理するサンプルです。
2. OpenAI APIキーを取得
上記のコードで、YOUR_OPENAI_API_KEY と書かれた部分に、OpenAIから取得したAPIキーを入力します。APIキーはOpenAIのダッシュボードで発行できます。
ステップ5: サーバーの起動
すべての準備が整ったら、次のコマンドを使ってサーバーを起動します。
node server.js
このコマンドを実行すると、以下のようなメッセージが表示され、サーバーが起動します。
サーバーがポート 5000 で起動しました
これで、バックエンドのAPIがローカル環境で動作し、http://localhost:5000/chat に対してリクエストを送ることができるようになります。
ステップ6: フロントエンドと連携
Node.jsサーバーが起動したら、フロントエンド(HTMLやJavaScript)からリクエストを送信してChatGPTのAPIを呼び出します。フロントエンド部分は先ほど説明した通りです。
以下のindex.htmlを開き、チャットボックスを通してChatGPTと対話します。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ChatGPT Integration</title>
<style>
body {
font-family: Arial, sans-serif;
padding: 20px;
}
#chatBox {
width: 100%;
height: 300px;
border: 1px solid #ccc;
padding: 10px;
overflow-y: scroll;
}
#userInput {
width: 100%;
padding: 10px;
margin-top: 10px;
font-size: 16px;
}
#sendButton {
padding: 10px 20px;
font-size: 16px;
margin-top: 10px;
}
</style>
</head>
<body>
<h1>ChatGPTと会話しよう!</h1>
<div id="chatBox"></div>
<input type="text" id="userInput" placeholder="質問を入力してください">
<button id="sendButton">送信</button>
<script>
const chatBox = document.getElementById('chatBox');
const userInput = document.getElementById('userInput');
const sendButton = document.getElementById('sendButton');
sendButton.addEventListener('click', async () => {
const userMessage = userInput.value;
if (!userMessage) return;
chatBox.innerHTML += `<p><strong>あなた:</strong> ${userMessage}</p>`;
userInput.value = '';
const response = await fetch('http://localhost:5000/chat', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ message: userMessage })
});
const data = await response.json();
chatBox.innerHTML += `<p><strong>ChatGPT:</strong> ${data.reply}</p>`;
chatBox.scrollTop = chatBox.scrollHeight;
});
</script>
</body>
</html>
まとめ
Node.jsと必要なパッケージをインストール
server.jsを使ってバックエンドのAPIをセットアップ
フロントエンドからバックエンドにリクエストを送信し、ChatGPTの応答を表示
この手順で、Node.js環境でChatGPTをWebサイトに統合することができます。もし他に質問があれば教えてください!
Node.js というものを使うそうです。
難しそうですがやる価値はありそうですね!実践は次回!
まとめ
今回はAPIを使って、ChatGPTをHPに埋め込む方法をChatGPTに聞いていきました!
Node.jsというのを用意する必要があるみたいなので、次回はそこからスタートします!今回は以上です!(^^)