
本文旨在指导开发者如何将基于OpenAI API的ChatGPT模型集成到HTML网页中。通过结合Python后端和JavaScript前端,实现用户在网页上与ChatGPT进行实时对话的功能。教程将详细介绍如何搭建后端API、处理前后端通信,以及在HTML页面上展示聊天内容。
将ChatGPT集成到HTML网页需要一个前后端协同的架构。
使用Flask框架可以快速搭建一个简单的API。
安装 Flask 和 OpenAI Python 库:
立即学习“前端免费学习笔记(深入)”;
pip install Flask openai
创建 Flask 应用 (app.py):
from flask import Flask, request, jsonify
from flask_cors import CORS
import openai
import os
app = Flask(__name__)
CORS(app)  # 允许跨域请求
openai.api_key = os.environ.get("OPENAI_API_KEY") # 从环境变量获取API Key
@app.route('/chat', methods=['POST'])
def chat():
    data = request.get_json()
    message = data['message']
    try:
        response = openai.chat.completions.create(
            model="gpt-3.5-turbo",
            messages=[{"role": "user", "content": message}]
        )
        reply = response.choices[0].message.content.strip()
        return jsonify({'reply': reply})
    except Exception as e:
        return jsonify({'error': str(e)}), 500
if __name__ == '__main__':
    app.run(debug=True)代码解释:
设置 OpenAI API Key:
将你的 OpenAI API Key 设置为环境变量。 在 Linux 或 macOS 上,可以使用以下命令:
export OPENAI_API_KEY="你的API密钥"
在 Windows 上,可以使用以下命令:
set OPENAI_API_KEY=你的API密钥
修改 HTML (index.html):
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ChatGPT Chatbot</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 0;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            background-color: #f0f0f0;
        }
        #chatbot-container {
            width: 400px;
            background-color: #fff;
            border-radius: 8px;
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
            padding: 20px;
        }
        #chat-area {
            height: 300px;
            overflow-y: scroll;
            padding: 10px;
            border: 1px solid #ccc;
            margin-bottom: 10px;
        }
        .message {
            margin-bottom: 8px;
            padding: 8px;
            border-radius: 4px;
        }
        .user-message {
            background-color: #DCF8C6;
            text-align: right;
        }
        .bot-message {
            background-color: #ECE5DD;
            text-align: left;
        }
        #input-area {
            display: flex;
        }
        #user-input {
            flex-grow: 1;
            padding: 8px;
            border: 1px solid #ccc;
            border-radius: 4px;
        }
        #send-button {
            padding: 8px 12px;
            background-color: #4CAF50;
            color: white;
            border: none;
            border-radius: 4px;
            cursor: pointer;
        }
    </style>
</head>
<body>
    <div id="chatbot-container">
        <h1>ChatGPT Chatbot</h1>
        <div id="chat-area"></div>
        <div id="input-area">
            <input type="text" id="user-input" placeholder="Type your message...">
            <button id="send-button">Send</button>
        </div>
    </div>
    <script>
        const chatArea = document.getElementById('chat-area');
        const userInput = document.getElementById('user-input');
        const sendButton = document.getElementById('send-button');
        sendButton.addEventListener('click', sendMessage);
        userInput.addEventListener('keydown', (event) => {
            if (event.key === 'Enter') {
                sendMessage();
            }
        });
        function sendMessage() {
            const message = userInput.value.trim();
            if (message) {
                displayMessage(message, 'user');
                userInput.value = '';
                getBotReply(message);
            }
        }
        function displayMessage(message, sender) {
            const messageElement = document.createElement('div');
            messageElement.classList.add('message');
            messageElement.classList.add(sender + '-message');
            messageElement.textContent = message;
            chatArea.appendChild(messageElement);
            chatArea.scrollTop = chatArea.scrollHeight; // Scroll to bottom
        }
        async function getBotReply(message) {
            try {
                const response = await fetch('http://127.0.0.1:5000/chat', { // 修改为你的Flask应用地址
                    method: 'POST',
                    headers: {
                        'Content-Type': 'application/json'
                    },
                    body: JSON.stringify({ message: message })
                });
                if (!response.ok) {
                    throw new Error(`HTTP error! status: ${response.status}`);
                }
                const data = await response.json();
                displayMessage(data.reply, 'bot');
            } catch (error) {
                console.error('Error fetching bot reply:', error);
                displayMessage('Error: Could not get reply from the bot.', 'bot');
            }
        }
    </script>
</body>
</html>代码解释:
启动 Flask 后端:
在终端中,导航到包含 app.py 的目录,并运行:
python app.py
打开 HTML 页面:
在浏览器中打开 index.html 文件。 确保Flask应用正在运行,并且前端代码中的API地址正确。
通过以上步骤,你就可以成功将 OpenAI ChatGPT 集成到 HTML 网页中,实现一个简单的聊天机器人。
以上就是将OpenAI ChatGPT集成到HTML网页的完整指南的详细内容,更多请关注php中文网其它相关文章!
 
                        
                        HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!
 
                Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号