使用Flask Web创建一个调用ChatGPT API的网页--简单示例(Windows环境下)

news2024/11/28 1:32:13

前提:你应该要有一个能正常使用chatGPT的openAI账号;即你已经成功注册了chatGPT,并能正常使用。

文章目录

  • 一、主要组成部分
  • 二、示例代码
    • 2.1 工程结构:
    • 2.2 说明
    • 2.3 依赖环境
    • 2.4 app.py代码
    • 2.5 index.html代码
  • 三、搭建环境步骤

一、主要组成部分

要使用Flask Web创建一个调用ChatGPT API的网页,你需要以下几个主要组成部分:

  1. ChatGPT API:一个可以处理用户输入并生成回复的ChatGPT模型的API。你可以使用OpenAI提供的GPT-3.5 Playground API或者自己搭建一个类似的API。在本示例中,我们将使用OpenAI的ChatGPT模型。

  2. Flask:一个Python的Web框架,用于创建和处理网页请求。

  3. HTML模板:用于构建网页的前端界面。

  4. Python脚本:用于编写处理网页请求的后端代码。

二、示例代码

下面是一个简单的示例工程,展示了如何使用Flask Web创建一个调用ChatGPT API的网页。
具体代码可以直接从以下链接下载:https://download.csdn.net/download/AnChenliang_1002/87998402

2.1 工程结构:

- chatgpt_webapp/
  - app.py
  - templates/
    - index.html

2.2 说明

  • chatgpt_webapp:主文件夹,整个工程的根目录。
  • app.py:Flask应用的主要Python脚本,用于处理网页请求和调用ChatGPT API。
  • templates:存放HTML模板文件的文件夹。
  • index.html:HTML模板文件,定义了网页的前端界面。

2.3 依赖环境

  • 操作系统:Windows系统。
  • Python 3.x:确保已经安装了Python,并且安装了pip包管理工具。
  • Flask:使用pip install flask安装Flask。
  • OpenAI Python库:使用pip install openai安装OpenAI Python库。

2.4 app.py代码

from flask import Flask, render_template, request
import openai

app = Flask(__name__)

# 设置OpenAI API凭证
openai.api_key = 'YOUR_API_KEY'

# 路由:处理网页根目录请求
@app.route('/', methods=['GET', 'POST'])
def index():
    if request.method == 'POST':
        # 获取用户输入的消息
        user_message = request.form['user_message']
        
        # 调用ChatGPT API生成回复
        response = openai.Completion.create(
            engine='text-davinci-003',
            prompt=user_message,
            max_tokens=50,
            temperature=0.7
        )
        
        # 提取回复并返回给网页
        chatbot_message = response.choices[0].text.strip()
        return render_template('index.html', user_message=user_message, chatbot_message=chatbot_message)
    else:
        # 首次加载网页时,返回空的聊天记录
        return render_template('index.html', user_message='', chatbot_message='')

if __name__ == '__main__':
    app.run()

2.5 index.html代码

<!DOCTYPE html>
<html>
<head>
    <title>ChatGPT Web App</title>
</head>
<body>
    <h1>ChatGPT Web App</h1>
    
    <form method="POST" action="/">
        <input type="text" name="user_message" placeholder="输入你的消息" required>
        <button type="submit">发送</button>
    </form>
    
    <div>
        <h2>聊天记录</h2>
        {% if user_message %}
        <p><strong>你:</strong> {{ user_message }}</p>
        {% endif %}
        {% if chatbot_message %}
        <p><strong>ChatGPT:</strong> {{ chatbot_message }}</p>
        {% endif %}
    </div>
</body>
</html>

说明:

  • app.py代码中,你需要将YOUR_API_KEY替换为你的OpenAI API凭证。
  • index.html中使用了Flask模板语言,在双大括号{{ }}中插入动态内容,如用户输入的消息和ChatGPT的回复。

三、搭建环境步骤

  1. 安装Python 3.x:在Python官方网站(https://www.python.org/downloads/)下载并安装适合Windows系统的Python版本,安装完成后如下图所示

在这里插入图片描述

  1. 安装pip包管理工具:打开命令提示符(cmd)并执行以下命令。

    python -m ensurepip --upgrade
    

在这里插入图片描述

  1. 安装Flask:在命令提示符中执行以下命令。

    pip install flask
    

在这里插入图片描述

  1. 安装OpenAI Python库:在命令提示符中执行以下命令。

    pip install openai
    

在这里插入图片描述

  1. 将示例代码保存到相应的文件中,确保文件结构和上述提到的工程结构一致。

  2. 在命令提示符中进入工程目录,并执行以下命令启动应用。

例如,我的代码是放在E盘下面的,如下图所示:
在这里插入图片描述
在这里插入图片描述

打开cmd,输入以下命令切换到E盘的ChatGPT_webapp下,指令如下所示:

在这里插入图片描述

然后执行以下命令:

python app.py

在这里插入图片描述

  1. 打开浏览器,访问http://localhost:5000,即可在网页上与ChatGPT进行交互。

在这里插入图片描述

以上是一个简单的示例,用于演示如何使用Flask Web创建一个调用ChatGPT API的网页。你可以根据实际需求进行修改和扩展,例如添加更多的HTML模板和Flask路由,以实现更丰富的功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/719970.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spark Sql 4/5

4. 用户自定义函数 通过spark.udf功能用户可以自定义函数。 4.1用户自定义UDF函数 Shellscala> val df spark.read.json("examples/src/main/resources/people.json")df: org.apache.spark.sql.DataFrame [age: bigint, name: string]​scala> df.show()--…

PSI算法经典论文算法概述

文章目录 什么是隐私求交PSIPSI协议分类PSI算法的分类基于哈希函数的PSI算法基于不经意传输&#xff08;OT&#xff09;的 PSI算法基于GC的PSI算法基于公钥加密的PSI算法基于DH的PSI算法基于RSA盲签名的PSI算法基于同态加密的PSI算法 基于差分隐私的PSI算法 总结参考文献 什么是…

wails+vue3实现一个简单Monitor

介绍 本来呢最近是在学Rust,顺便看看Tauri相关的内容.然后刷评论区突然看到有人提到go生态中也有类似的框架—Wails,所以下午花了点时间来动手玩一下. 首先看一下最终的运行效果,前端样式懒得调整所以界面很丑只是实现一下功能 开始 这次的目标就是做一个功能类似于nvidia-s…

C#基础学习_字段与属性的比较

C#基础学习_字段与属性的比较 字段: 字段主要是为类的内部做数据交互使用,字段一般是private修饰; 字段可以赋值也可以读取; 当需要为外部提供数据的时候,请将字段封装为属性,而不是使用公有字段,这是面对对象编程所提倡的。 //字段:学号private int studentID;属性: …

语义分割大模型RSPrompter论文阅读

论文链接 RSPrompter: Learning to Prompt for Remote Sensing Instance Segmentation based on Visual Foundation Model 开源代码链接 RSPrompter 论文阅读 摘要 Abstract—Leveraging vast training data (SA-1B), the foundation Segment Anything Model (SAM) propo…

vue动态组件component详解

附上代码 <template><div class"export-full-data-manage"><div class"main"><div class"left"><ul><li v-for"item in menus" :key"item.value" :class"[item.valuecurrent?curre…

【UE5 Cesium】11-Cesium for Unreal 切换Dynamic Pawn为其它Pawn

前言 我们知道在Cesium for Unreal中默认使用的是DynamicPawn来浏览地图场景。DynamicPawn适用全球浏览&#xff0c;可以按自定义曲线进行飞行。但是DynamicPawn是使用的是地理参考坐标系&#xff0c;并不是标准的UE坐标系&#xff0c;当我们全球浏览结束后&#xff0c;可能需要…

2023年6月榜单丨飞瓜数据B站UP主排行榜(哔哩哔哩)发布!

飞瓜轻数发布2023年6月飞瓜数据UP主排行榜&#xff08;B站平台&#xff09;&#xff0c;通过充电数、涨粉数、成长指数三个维度来体现UP主账号成长的情况&#xff0c;为用户提供B站号综合价值的数据参考&#xff0c;根据UP主成长情况用户能够快速找到运营能力强的B站UP主。 飞…

工作是EXCEL的天下

文章目录 EXCEL单元格内的换行筛选某一列的重复值批量删除重复值以某一列为联结&#xff0c;合并两个表格中的内容 本篇博文记录了笔者在工作中常用的EXCEL操作方法&#xff0c;持续更新中…… EXCEL单元格内的换行 AltEnter 筛选某一列的重复值 选中需要查找重复值的一列→…

如何在Microsoft Word中制作组织架构图

如果要说明公司或组织中的报告关系,可以创建一个使用组织结构图布局的 SmartArt 图形,如组织结构图。 注意:绘制组织结构图的另一种方法是使用 Microsoft 绘图应用程序 Visio。 使用 SmartArt 图形在 Excel、Outlook、PowerPoint 或 Word 中创建组织结构图,以显示组织中的…

磁盘镜像软件

什么是磁盘镜像 磁盘镜像是存储在计算机磁盘中的数据的副本或副本。磁盘镜像将包含数据存储设备的内容&#xff0c;并复制此类设备的结构。它还将包含操作系统分区。 磁盘镜像本质上是一种从主系统复制操作系统和存储在磁盘中的数据以将其分发到其他目标计算机的方法。自动化…

4.40ue4:样条线(轨迹)

1.创建样条线&#xff08;样条组建&#xff09; spline 多出一个点&#xff0c;按住alt拖住断点可以再生成一个点 可以在场景中拖动点编辑样条线 如果想要直角&#xff0c;可以点击细节面板找到spline组件&#xff0c;修改类型为linear&#xff0c;前后两点都需要改为绝对值&a…

3d渲染画面变形怎么办?

在用3dmax渲染图片时有时会遇到画面变形的情况&#xff0c;这个是什么原因呢&#xff1f;今天我们就来看看吧。 首先我们来看下变形的具体情况&#xff0c;再分析原因。可以看到整个画面都畸变了&#xff0c;呈现出上下拉伸的情况&#xff0c;能造成这个效果的&#xff0c;只有…

集合面试题详解

算法复杂度分析 List ArrayList 数据结构-数组 ArrayList源码分析 成员变量 构造方法 关键方法 ArrayList底层实现原理 如何实现数组和ArrayList之间的转换 LinkedList 单向链表 双向链表 ArrayList和LinkedList的区别 HashMap 二叉树 红黑树 散列表 HashMap的实现原理 Ha…

《C++ Primer》--学习12

动态内存 动态内存与智能指针 除了静态内存和栈内存&#xff0c;每个程序还拥有一个内存池。这部分内存被称为自由空间 或 堆&#xff0c;程序用堆来存储动态分配的对象 动态内存和智能指针 智能指针负责自动释放所指向的对象 shared_ptr 类 智能指针也是模板

一篇读懂React、vue框架的生命周期函数

当涉及到前端框架时&#xff0c;React 和 Vue.js 是两个非常受欢迎的选择。它们都提供了强大的工具和功能&#xff0c;帮助开发者构建交互式的、可扩展的应用程序。在这两个框架中&#xff0c;生命周期函数是一个重要的概念&#xff0c;它们允许我们在组件的不同阶段执行特定的…

车规芯片物理实现上的难度

在PR部分&#xff0c;车规级芯片的温度范围根据芯片工作位置不同也有所差别&#xff0c;最差的位置需要-40到150&#xff0c;除了DFM和功耗以及EM比较严格外&#xff0c;有些产品物理实现上对运算逻辑单元的位置也有特殊要求。 DFT部分才是车规级芯片的难点&#xff0c;感兴趣…

软件设计模式与体系结构-设计模式-行为型软件设计模式-迭代器模式

行为型软件设计模式 概述 行为型设计模式是软件设计模式中的一类&#xff0c;用于处理对象之间的交互和通信。这些模式关注的是对象之间的行为和职责分配。以下是几种常见的行为型设计模式&#xff1a; 观察者模式&#xff08;Observer Pattern&#xff09;&#xff1a;定义了…

【网络安全带你练爬虫-100练】第4练:添加异常处理代码

目录 一、异常处理代码&#xff1a; 二、执行结果&#xff1a; 三、完整代码&#xff1a; &#xff08;当代码越来越长的时候&#xff0c;异常处理代码有时候能起到很好的作用&#xff09; 一、异常处理代码&#xff1a; &#xff08;1&#xff09;try-except搭配&#xff…

Stable Difussion 解决绘图图片灰暗模糊,让图像色彩更丰富

在使用Stable Difussion进行AI绘画的时候&#xff0c;使用VAE能够产生许多有趣的效果。其滤镜功能可根据需要调整图像的色彩饱和度&#xff0c;使图像产生不同的视觉效果。 如下图所示&#xff1a; 但是如果不使用VAE那你的图像可能就会变得灰暗。 文章目录 VAE用途VAE的使…