OpenAI GPT3.5/GPT3 + Flask 制作自己的交互网页教程 | 附源码 和 Github链接

这篇具有很好参考价值的文章主要介绍了OpenAI GPT3.5/GPT3 + Flask 制作自己的交互网页教程 | 附源码 和 Github链接。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. OpenAI GPT API

1.1 GPT 3.5 API (更新)

真正的 ChatGPT API, gpt-3.5-turbo,终于来了!不同于之前的 GPT3 text-davinci-003 的 api 版本。 GPT 3.5 版本生成的回答将十分的智能。

下图是现在OpenAI提供的模型。其中 gpt-3.5-turbo 是效果最好的模型。

OpenAI GPT3.5/GPT3 + Flask 制作自己的交互网页教程 | 附源码 和 Github链接

1.1 OpenAI GPT3 text-davinci-003 API

最近ChatGPT很火,使用与InstructGPT相同的方法,使用来自人类反馈的强化学习 Reinforcement Learning from Human Feedback (RLHF) 来训练该模型,但数据收集设置略有不同。ChatGPT是在 GPT-3.5 系列中的一个模型进行微调的,该模型于 2022 年初完成训练。

现在因为官网 https://chat.openai.com/ 一直是满载状态,我决定使用GPT-3的公开API做一个基于python flask的网站。GPT-3的模型虽然比不上GPT-3.5的,但其功能仍然是十分强大。

GPT-3 一共有4个模型,其中davinci是最有能力的模型,而ada是最快的模型。Davinci 最大请求量是4000个tokens,这其中包含了问题和回答。

OpenAI GPT3.5/GPT3 + Flask 制作自己的交互网页教程 | 附源码 和 Github链接

本文代码使用的是GPT3.5 + Flask,如果想用GPT3的同学可以在下面找到 GPT 3 + Flask 的 Github 链接。

2. 环境介绍

  1. OpenAI API Key
  2. Python 3
  3. python库:openai flask

GPT 3 和 GPT3.5 用的是同一个 API, 所以已经有 API key 的兄弟不用再重新生成了。
OpenAI GPT3.5/GPT3 + Flask 制作自己的交互网页教程 | 附源码 和 Github链接
电脑要有python 3 的环境。
确认用pip安装 openai 和 flask 两个库。

pip install openai
pip install flask

如果说你之前在玩GPT3的时候已经装了openai,这时需要用 pip 更新一下openai库,把openai更新到 0.27.0 版本即可

pip install --upgrade openai

3. GPT 3.5 API + Flask 代码

3.1 Python Flask 代码

python 文件为 main.py。

from flask import Flask, request, render_template, redirect
import openai

openai.api_key = 'your API key'

server = Flask(__name__)

def send_gpt(prompt):
    try:
        response = openai.ChatCompletion.create(
        model='gpt-3.5-turbo',
        messages=[{"role": "user", "content": prompt}]
        )
        return response["choices"][0]['message']['content']
    except Exception as e:
        return e
        
@server.route('/', methods=['GET', 'POST'])
def get_request_json():
    if request.method == 'POST':
        if len(request.form['question']) < 1:
            return render_template(
                'chat3.5.html', question="NULL", res="Question can't be empty!")
        question = request.form['question']
        print("======================================")
        print("Receive the question:", question)
        res = send_gpt(question)
        print("Q:\n", question)
        print("A:\n", res)

        return render_template('chat3.5.html', question=question, res=str(res))
    return render_template('chat3.5.html', question=0)

if __name__ == '__main__':
    server.run(debug=True, host='0.0.0.0', port=80)

3.2 网页代码 HTML

html网页(chat3.5.html)放在templates文件夹里,templates文件夹和python文件(main.py)放在同一目录下。

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>ChatGPT</title>
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/5.0.0-alpha2/css/bootstrap.min.css">
  <link rel="stylesheet" href="static/style.css">
</head>

<body>
  <header>
    <h1>ChatGPT API</h1>
    <h2>Artificial Intelligence at Your Fingertips</h2>
  </header>
  <main>

  <div class="content">
    <form method="post" onsubmit="submit.disabled=true">
      <br>
      <center><textarea name="question" placeholder="Type your question here." rows="4"></textarea></center>
      <br>
      <input type="submit" value="Submit" id="submit">
    </form>
    <div id="loading"><b>Waiting for response...</b></div>
  </div>
  

  <div class="dia">                
    {% if question %}
      <div class="result">
        <div class="question"><b>Alittlebean:</b>
          <pre>{{ question }}</pre>
        </div>
        <hr>
        <div class="response"><b>ChatGPT:</b>
          <pre>{{ res }}</pre>
        </div>
      </div>
    {% endif %}
  </div>

  </main>
  <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.3/dist/umd/popper.min.js"></script>
  <script src="https://stackpath.bootstrapcdn.com/bootstrap/5.0.0-alpha2/js/bootstrap.min.js"></script>
  <script src="static/script.js"></script>
</body>

</html>

3.3 样式代码 CSS

样式代码 style.css 放在 static 文件夹下。

/* import Bootstrap */
@import url('https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css');

/* add custom styles */
body {
  font-family: sans-serif;
}

header {
  padding: 1rem;
  background-color: #fff;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}

h1 {
  margin: 0;
  font-size: 2rem;
}

main {
  padding: 1rem;
}

h2 {
  margin-top: 1rem;
  font-size: 1.5rem;
}

form {
  margin-top: 1rem;
}

textarea {
  align-items: center;
  width: 90%;
  border: 1px solid #ccc;
  border-radius: 0.5rem;
  resize: vertical;
  font-size: 1.2rem;
}

input[type="range"] {
  width: 60%;
  margin: 0 1rem;
}

input[type="text"] {
  border: none;
  background: none;
  width: 30px;
}

input[type="submit"] {
  display: block;
  margin: 1rem auto;
  width: 150px;
  height: 50px;
  background-color: lightpink;
  border: 1px solid #ccc;
  border-radius: 0.25rem;
  font-size: 1.5rem;
  cursor: pointer;
}

#loading {
  display: none;
  color: gray;
  margin-top: 1rem;
}

pre {
  margin-top: 1rem;
  font-size: 1.5rem;
  white-space: pre-wrap;
  word-break: break-word;
  text-align: justify;
  line-height: 1.5;
}

.dia{
  margin-left: 15px;
  margin-right: 15px;
}

3.4 脚本代码 JS

脚本代码 script.js 放在static 文件夹下。

const loading = document.getElementById('loading');
const form = document.querySelector('form');

form.addEventListener('submit', () => {
  loading.style.display = 'block';
});

4. Github 链接

GPT 3 + Flask (text-davinci-003 API):
https://github.com/redemptionwxy/GPT3-API-Flask-Python_Chat_Website

GPT 3.5 + Flask (gpt-3.5-turbo API ):
https://github.com/redemptionwxy/ChatGPT-API-Flask-Website

5. 网站效果展示以及美化

5.1 原网页

成功运行python代码将如下图显示,打开浏览器输入 127.0.0.1:80 或者 localhost 进行访问。

OpenAI GPT3.5/GPT3 + Flask 制作自己的交互网页教程 | 附源码 和 Github链接

这个Flask网站可以自定义 Temperature 即GPT-3的回答随机度。网站上也给出了温度设置的建议,下面为效果图。
网站效果一般,主要是实现功能。如果还想加除Temperature之外的变量,可以照葫芦画瓢。

原网页用的是chat.html

Github 链接:https://github.com/redemptionwxy/GPT3-API-Flask-Python_Chat_Website

OpenAI GPT3.5/GPT3 + Flask 制作自己的交互网页教程 | 附源码 和 Github链接

5.2 美化后(更新)

大家可以看到原来我自己写的网页十分简单。于是我把html代码发给chatgpt希望它能给我做一下优化和美观。我向它提了几个功能:

  1. 将html,css,js 文件分开,保留原有功能
  2. 实用bootstrap样式模板进行设计
  3. Temperature Guide放在网站右侧,点击可以隐藏

经过了一番调试,最终我得到了一下网页:

注:由于代码太长且有重复,我只将美化后的代码在github中更新。

在github中是chat_2.html

OpenAI GPT3.5/GPT3 + Flask 制作自己的交互网页教程 | 附源码 和 Github链接
GPT 3.5 + Flask Gitgub 链接:
https://github.com/redemptionwxy/ChatGPT-API-Flask-Website

以上。文章来源地址https://www.toymoban.com/news/detail-463209.html

到了这里,关于OpenAI GPT3.5/GPT3 + Flask 制作自己的交互网页教程 | 附源码 和 Github链接的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ChatGPT(GPT3.5) OpenAI官方API正式发布

            OpenAI社区今天凌晨4点多发送的邮件,介绍了ChatGPT官方API的发布。官方介绍文档地址为“OpenAI API”和“OpenAI API”。         ChatGPT(GPT3.5)官方API模型名称为“gpt-3.5-turbo”和“gpt-3.5-turbo-0301”。API调用价格比GPT text-davinci-003模型便宜10倍。调用费用为0.002美元/10

    2024年02月11日
    浏览(50)
  • PHP实现chatGPT流式输出代码,OpenAI对接,支持GPT3.5/GPT4

     源码下载地址:https://gitee.com/haoyachengge/chatgpt-speed.git 本文是sse实现方式,非常的简单。当然也可以用websocket方式实现,我也会继续更新

    2024年02月14日
    浏览(41)
  • HTTP请求交互基础(基于GPT3.5,持续更新)

    对前端交互相关请求,协议缺乏稳固的基础知识,gpt正好适合问基础知识,通过询问gpt3.5进行学习,写一篇笔记补充补充 什么是HTTP? Http全称(HyperText Transfer Protocol)超文本传输协议 超文本:是一种通过链接将相关信息组织起来的非线性文本形式。它通过超链接连接不同的

    2024年02月07日
    浏览(35)
  • openai开放gpt3.5-turbo模型api,使用python即可写一个基于gpt的智能问答机器人

    使用 pip 安装openai库,注意 gpt3.5-turbo 模型需要 python=3.9 的版本支持,本文演示的python版本是 python==3.10.10 需要提前在 openai 官网上注册好账号,然后打开 https://platform.openai.com/account/api-keys 就可以创建接口 keys 每个账号注册完成会有18美元在里面,每次调用api,就会花费里面的

    2024年02月06日
    浏览(63)
  • AI创作教程之从 Youtube平台视频剪辑生成新闻文章 基于OpenAI Whisper、OpenAI GPT3 和 Stable Diffusion

    在这篇文章中,我想展示如何借助不同的软件工具从 Youtube 上发布的新闻剪辑中全自动生成包含文本和图像的新闻文章。使用当前用于处理媒体数据的 AI 模型,例如 OpenAI Whisper、OpenAI GPT3 和 Stable Diffusion。 OpenAI Whisper 是最近发布的模型,用于将音频数据转换为具有前所未有质

    2024年02月11日
    浏览(177)
  • 【Docker】快速部署 ChatGPT Next Web,一键免费部署你的私人 ChatGPT 网页应用,支持 GPT3, GPT4 & Gemini Pro 模型。

    ChatGPT Next Web 可以一键免费部署你的私人 ChatGPT 网页应用,支持 GPT3, GPT4 Gemini Pro 模型。你无需任何复杂的配置,只需几行命令就可以完成部署。我们将通过 Docker 来部署这个应用。 下载 Docker 镜像 首先,我们需要从 Docker Hub 下载 ChatGPT 应用的 Docker 镜像。 Docker 版本需要在

    2024年03月10日
    浏览(75)
  • 【GPT,Flask】用Python Flask结合OpenAI的GPT API构建一个可自主搭建的内容生成应用网站

    自己构建模型并进行训练需要很高的知识,技能和资源门槛。如今,通过OpenAI提供的API,则可以快速通过GPT能力构建可以提供内容生成服务的在线网站。这套框架可以提供给用户,用户可以利用该框架在自己的环境(比如自己的公司内)构建内容生成服务。你也可以自己上线

    2024年02月11日
    浏览(60)
  • LangChain 75 打造你自己的OpenAI + LangChain网页应用

    LangChain系列文章 LangChain 60 深入理解LangChain 表达式语言23 multiple chains链透传参数 LangChain Expression Language (LCEL) LangChain 61 深入理解LangChain 表达式语言24 multiple chains链透传参数 LangChain Expression Language (LCEL) LangChain 62 深入理解LangChain 表达式语言25 agents代理 LangChain Expression Language

    2024年01月18日
    浏览(39)
  • GPT-4发布!能打败ChatGPT的只有OpenAI自己!

    众所周知,chatGPT的对话生成模型用的是GPT3.5,而今发布的GPT4相比GPT3,又有了巨大的升级: 输入仅文本 = 输入文本和图像,具备了强大的识图能力 文字输入限制3k字 = 2.5w字 准确率、对细节的理解能力大幅提升 openai也对GPT4的能力做了一系列测试,发现GPT-4 在各种专业测试和

    2024年02月03日
    浏览(61)
  • 使用Selenium实现GPT网页端交互

    笔者最近在做一个gpt有关的项目,数据量百万条不想花钱买token,发现Selenium可以模拟网页端操作,因此小试一下。 首先想用openai的gpt上手,但其反爬机制太过严格了,头修改、设置cookies和指纹修改都不行,一直在人机验证的地方徘徊。遂失去耐心,干脆直接换了个网址,用

    2024年04月25日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包