首先,我们需要准备以下工具和环境:

  1. Python3
  2. Pytorch
  3. Transformers
  4. Flask
  5. HTML、CSS、JavaScript

接下来,我们按照以下步骤进行部署:

  1. 下载chatGPT代码

从Github上下载chatGPT的代码,并解压到本地。

  1. 安装依赖库

在命令行中进入chatGPT目录,输入以下命令安装需要的依赖库:

pip install -r requirements.txt
  1. 准备模型文件

在chatGPT目录下新建一个文件夹,命名为“model”,将训练好的模型文件放入其中。

  1. 编写Flask app

在chatGPT目录下新建一个名为“app.py”的Python文件,编写Flask app的代码,如下所示:

from flask import Flask, request, jsonify, render_template
from transformers import GPT2LMHeadModel, GPT2Tokenizer

app = Flask(__name__)

tokenizer = GPT2Tokenizer.from_pretrained("model")
model = GPT2LMHeadModel.from_pretrained("model")

@app.route("/")
def home():
    return render_template("index.html")

@app.route("/get-response", methods=["POST"])
def get_response():
    data = request.get_json()
    prompt = data["prompt"]
    input_ids = tokenizer.encode(prompt, return_tensors="pt")
    output = model.generate(input_ids, max_length=1024, do_sample=True)
    response = tokenizer.decode(output[0], skip_special_tokens=True)
    return jsonify({"response": response})

其中,“/”路由返回一个名为“index.html”的HTML文件,该文件用于渲染chatGPT的前端界面;“/get-response”路由接受来自前端的POST请求,根据请求中的prompt参数生成回复,并将回复以JSON格式返回。

  1. 编写HTML、CSS、JavaScript文件

在chatGPT目录下新建一个名为“static”的文件夹,该文件夹用于存放静态资源文件,如CSS、JavaScript和图片等。在static目录下再新建一个名为“index.html”的HTML文件,编写chatGPT的前端界面代码,如下所示:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>chatGPT</title>
    <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
</head>
<body>
    <div class="container">
        <h1>chatGPT</h1>
        <div class="chat-box">
            <div class="chat-log">
            </div>
            <div class="chat-input">
                <input type="text" id="input-box" placeholder="Input your message...">
                <button id="send-btn" onclick="send()">Send</button>
            </div>
        </div>
    </div>
    <script src="{{ url_for('static', filename='script.js') }}"></script>
</body>
</html>

其中,“{{ url_for('static', filename='style.css') }}”用于引用位于static目录下的“style.css”文件,“{{ url_for('static', filename='script.js') }}”用于引用位于static目录下的“script.js”文件。

在static目录下再新建一个名为“style.css”的CSS文件,编写chatGPT的样式代码,如下所示:

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    font-family: Arial, sans-serif;
}

.container {
    max-width: 600px;
    margin: 0 auto;
    padding: 20px;
}

h1 {
    text-align: center;
    margin-bottom: 20px;
}

.chat-box {
    border: 1px solid #ccc;
    border-radius: 5px;
    overflow: hidden;
}

.chat-log {
    height: 400px;
    padding: 10px;
    overflow-y: scroll;
}

.chat-input {
    padding: 10px;
    display: flex;
}

.chat-input input[type="text"] {
    flex: 1;
    margin-right: 10px;
    border-radius: 5px;
    border: none;
    padding: 10px;
}

.chat-input button {
    background-color: #4CAF50;
    color: white;
    border: none;
    border-radius: 5px;
    padding: 10px;
    cursor: pointer;
}

.chat-input button:hover {
    background-color: #3e8e41;
}

在static目录下再新建一个名为“script.js”的JavaScript文件,编写chatGPT的脚本代码,如下所示:

const chatLog = document.querySelector(".chat-log");
const inputBox = document.querySelector("#input-box");

inputBox.addEventListener("keyup", function (evt) {
    if (evt.keyCode === 13) {
        evt.preventDefault();
        document.querySelector("#send-btn").click();
    }
});

function send() {
    const message = inputBox.value.trim();
    if (!message) {
        return;
    }
    const xhr = new XMLHttpRequest();
    xhr.open("POST", "/get-response");
    xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
    xhr.onload = function () {
        const response = JSON.parse(xhr.responseText).response;
        appendMessage("You", message);
        appendMessage("chatGPT", response);
        inputBox.value = "";
    };
    xhr.send(JSON.stringify({ prompt: message }));
}

function appendMessage(sender, message) {
    const messageEl = document.createElement("div");
    const senderEl = document.createElement("strong");
    senderEl.textContent = sender + ": ";
    messageEl.appendChild(senderEl);
    messageEl.appendChild(document.createTextNode(message));
    chatLog.appendChild(messageEl);
    chatLog.scrollTop = chatLog.scrollHeight;
}
  1. 运行Flask app

在命令行中进入chatGPT目录,输入以下命令运行Flask app:

python app.py

Flask app运行后会监听本地的5000端口,我们在浏览器中访问http://localhost:5000/即可进入chatGPT的前端界面。

至此,我们已经成功部署了chatGPT网站,可以和chatGPT进行聊天了。

国内部署chatGPT网站教程

原文地址: https://www.cveoy.top/t/topic/bwrD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录