Python+ChatGPT制作一个AI实用百宝箱
目录
- 一、注册OpenAI
- 二、搭建网站及其框架
- 三、AI聊天机器人
- 四、AI绘画机器人
ChatGPT 最近在互联网掀起了一阵热潮,其高度智能化的功能能够给我们现实生活带来诸多的便利,可以帮助你写文章、写报告、写周报、做表格、做策划甚至还会写代码。只要与文字相关的工作,它几乎都能给出一份满意的答卷。
一、注册OpenAI
首先需要注册OpenAI,这样就可以使用ChatGPT

二、搭建网站及其框架
那么这里我们需要用到这几个库,用pip命令来下载
# 安装streamlit和openai
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple streamlit
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple streamlit_option_menu
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple openai
那么首先网页的左侧有一个工具栏,其中罗列了一系列的功能,我们这里简单的囊括了几个,包括了“简介”、“AI聊天”、“AI绘画”,大家感兴趣的后期可以继续往里面添加,例如“AI配音”,代码如下
with st.sidebar:choose = option_menu("工具栏", ["简介","AI聊天", "AI绘画"],icons=['house', 'person lines fill', 'app-indicator'],menu_icon="list", default_index=0,styles={"container": {"padding": "5!important", "background-color": "#fafafa"},"icon": {"color": "orange", "font-size": "25px"},"nav-link": {"font-size": "16px", "text-align": "left", "margin": "0px","--hover-color": "#eee"},"nav-link-selected": {"background-color": "#24A608"},})
那么在“简介”这一栏当中,顾名思义就是对该网页简单的介绍,我们简单的写一些介绍,代码如下
if choose == "简介":col1, col2 = st.columns([0.8, 0.2])with col1: # To display the header text using css stylest.markdown(""" <style> .font {font-size:35px ; font-family: 'Cooper Black'; color: #FF9633;} </style> """, unsafe_allow_html=True)st.markdown('<p class="font">About the Creator</p>', unsafe_allow_html=True)with col2: # To display brand loglogo = Image.open("wechat_logo.jpg")st.image(logo, width=130)st.markdown('**AI百宝箱,里面集成了各种工具,欢迎使用**')
展示出来的效果如下

三、AI聊天机器人
那么首先我们需要在个人设置里面去获取一个秘钥,
然后选择一个模型,这里我们选择text-davinci-003模型,相比其他而言,性能更好,然后我们调用OpenAI里面的方法来生成回答
def ChatGPT(user_query):completion = openai.Completion.create(engine=model_engine,prompt=user_query,max_tokens=1024,n=1,temperature=0.5,)response = completion.choices[0].textreturn response
然后我们调用该函数结合streamlit当中的输入框,代码如下
elif choose == "AI聊天":st.title("AI聊天机器人")# 设置密匙model_engine = "text-davinci-003"def ChatGPT(user_query):completion = openai.Completion.create(engine=model_engine,prompt=user_query,max_tokens=1024,n=1,temperature=0.5,)response = completion.choices[0].textreturn responseuser_query = st.text_input("在这里输入问题,回车查询", "Python是什么?")if user_query != ":q" or user_query != "":# 将问题提交给ChatGPT, 返回结果response = ChatGPT(user_query)st.write(f"{response}")
四、AI绘画机器人
而在“AI绘画”的模块中,代码逻辑也是相类似的,这边需要调用与绘画相关的API,代码如下
def image_generate(user_demand):completion = openai.Image.create(prompt=user_demand,n=2,size="1024x1024")response = completion.get("data")return response[0].get("url")
由于返回给我们的是一个URL,因此还需要保存到本地,然后再通过Image模块打开,代码如下
image_url = image_generate(user_query)
response = requests.get(image_url, stream=True)
try:with open("./image/01.png", 'wb') as f:for chunk in response:f.write(chunk)f.close()print("Download done!!")
except Exception as e:print(e)img1 = Image.open(r'./image/01.png')
st.image(img1, width=500, caption='Image by OpenAI')
最后就可以在终端运行下面的代码了,
streamlit run example.py
我们在浏览器中打开页面,例如我们点击进入“AI聊天”这个模块,我们可以看到右上角处于RUNNING的状态,表示正在运行中,等会儿之后就能看到结果

而点击进入“AI绘画”这个模块,例如想要绘制可爱的猫咪,我们也能看到如下的结果

相关文章:
Python+ChatGPT制作一个AI实用百宝箱
目录一、注册OpenAI二、搭建网站及其框架三、AI聊天机器人四、AI绘画机器人ChatGPT 最近在互联网掀起了一阵热潮,其高度智能化的功能能够给我们现实生活带来诸多的便利,可以帮助你写文章、写报告、写周报、做表格、做策划甚至还会写代码。只要与文字相关…...
Python中格式化字符串输出的4种方式
Python格式化字符串的4中方式 一、%号 二、str.format(args) 三、f-Strings 四、标准库模板 五、总结四种方式的应用场景’ 一、%号占位符 这是一种引入最早的一种,也是比较容易理解的一种方式.使用方式为: 1、格式化字符串中变化的部分使用占位符 2、…...
C#基础教程15 枚举与类
文章目录 C# 枚举(Enum)声明 enum 变量C# 类(Class)类的定义成员函数和封装C# 中的构造函数关键字 staticC# 枚举(Enum) 枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。 C# 枚举是值类型。换句话说,枚举包含自己的值,且不能继承或传递继承。 声明 enum 变…...
三步 让你的 vscode 自动编译ts文件
三步让你的 vscode 自动编译ts文件 TypeScript环境安装与如何在vscode实现自动编译ts文件? 文章目录三步让你的 vscode 自动编译ts文件前提条件环境安装自动编译运行监视任务时报错?前提条件 安装 node 环境 环境安装 tsc 作用:负责将ts 代码 转为 浏…...
STM32程序下载和启动方式
目录1 BOOT引脚配置和下载说明2 关于串口下载方式3 关于一按复位就跑代码4 关于下载调试速度5 关于三种启动方式5.1 FLASH启动5.2 系统存储器器启动5.3 SRAM启动6 关于程序的三种下载方式1 BOOT引脚配置和下载说明 BOOT0BOOT1程序运行ST-Link下载串口下载启动说明xx无0x√√用…...
基础01-ajax fetch axios 的区别
ajax fetch axios 的区别 题目 ajax fetch axios 的区别 分析 三者根本没有可比性,不要被题目搞混了。要说出他们的本质 传统 ajax AJAX (几个单词首字母,按规范应该大写) - Asynchronous JavaScript and XML(异…...
Android Execution failed for task ‘:app:mergeDebugJavaResource
错误提示 FAILURE: Build failed with an exception.* What went wrong: Execution failed for task :app:mergeDebugJavaResource. > A failure occurred while executing com.android.build.gradle.internal.tasks.MergeJavaResWorkAction> 2 files found with path k…...
spring事物源码分析
今天的任务是剖析源码,看看Spring 是怎么运行事务的,并且是基于当前最流行的SpringBoot。还有,我们之前剖析Mybatis 的时候,也知道,Mybatis 也有事务,那么,他俩融合之后,事务是交给谁…...
炫龙游戏本Win10系统总是蓝屏崩溃怎么办?
炫龙游戏本Win10系统总是蓝屏崩溃怎么办?有用户使用的炫龙游戏本最近总是在运行的过程中出现自动蓝屏的情况,有的时候自己还在操作电脑,而屏幕却蓝屏了,导致自己的工作被中断了。那么这个情况要怎么去进行修复呢?来看看…...
华为OD机试题,用 Java 解【数字加减游戏】问题
华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典使用说明 参加华为od机试,一定要注意不…...
C++ 手写一个高性能json生成与解析器
文章目录 前言一、了解json格式二、统一数据类型:TJson三、解析json数据四、输出json数据五、实现便利的修改与访问六、性能优化七、源码下载与解析前言 由于C++标准库中并不存在解析json数据库,但json格式又非常的常见 如今绝大部分网络数据传输都采用的json数据传输格式,…...
java——了解反射
目录 什么是反射? 反射如何获取类信息? 小结: 什么是反射? 反射是用代码分析类信息的能力 类中有哪些信息:方法、对象、构造器、全局变量、父类、接口等.... 反射如何获取类信息? 三种方式 1.通过对象…...
The Sandbox 中的独特体验——《奥米加》
在过去几年间,The Sandbox 游戏变得越来越受欢迎。因为我们为玩家提供了在虚拟世界中探索、创造和游戏的自由,没有线性游戏的限制。DeQuest 工作室创作的《奥米加》也正是如此,绝对是一个前所未有的体验! 先了解一下《奥米加》的故…...
76 Python写入csv文件时出现空行_newline参数解决
76 Python写入csv文件时出现空行_newline参数解决 文章目录76 Python写入csv文件时出现空行_newline参数解决1. 准备工作2. with open 语句没有newline参数3. with open 语句有newline参数4. 总结1. 准备工作 在电脑D盘新建一个【76】文件夹。 用VScode编辑器打开【76】文件夹…...
高等数学——定积分和不定积分
文章目录不定积分概念几何意义性质不定积分的基本公式三种主要积分法三类常见可积函数积分定积分概念几何意义性质积分上限的函数定积分的计算几何应用反常积分无穷区间的反常积分无界函数的反常积分不定积分 不定积分是导数的逆运算。 概念 原函数:设f(x)f(x)f(…...
imx6 usb增强信号强度
USB信号 参考:官方文档 USB信号完整性取决于许多因素,如电路设计、PCB布局、堆叠和阻抗。每个产品可能彼此不同,因此客户需要微调参数,以获得最佳的信号质量。 测试板已经路由出两个USB端口:一个OTG1,一个主机。每个端…...
深入理解性能压测工具原理
如果没有性能测试工具如何通过手工实现 如果没有性能测试工具,通过手工进行性能测试,这是一个值得我们思考的问题。这时候需要一个协调员发送指令,一个操作员进行操作,对系统施加压力,多个操作员代表着多个用户进行并…...
Java的概述和运行方式
目录 一.Java是什么? 1.1Java的目前状况和学习需求 1.2Java的平台分类和特点 二.Java程序的运行方式 2.1 Java的程序结构 2.2 JDK、JRE、JVM的关系 2.3 Java运行详情 总结 😽个人主页:tq02的博客_CSDN博客-领域博主 🌈理想…...
【C语言】每日刷题 —— 牛客
前言 大家好,今天带来一篇新的专栏 c_牛客,不出意外的话每天更新十道题,难度也是从易到难,自己复习的同时也希望能帮助到大家,题目答案会根据我所学到的知识提供最优解。 🏡个人主页:悲伤的猪大…...
JavaEE课程实践-Servlet的部署(tomcat服务器)
目录 Servlet简述 tomcat服务器的安装和运行 Servlet的部署 部署具体步骤 一、创建maven工程 二、创建Servlet类 三、导入相应jar包 四、编写Servlet代码 五、运行maven项目,启动tomcat服务器 六、测试访问是否成功。 Servlet简述 Servlet 是 Java EE 技术…...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
接口自动化测试:HttpRunner基础
相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...
Web后端基础(基础知识)
BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。 优点:维护方便缺点:体验一般 CS架构:Client/Server,客户端/服务器架构模式。需要单独…...
数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !
我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...
ubuntu22.04 安装docker 和docker-compose
首先你要确保没有docker环境或者使用命令删掉docker sudo apt-get remove docker docker-engine docker.io containerd runc安装docker 更新软件环境 sudo apt update sudo apt upgrade下载docker依赖和GPG 密钥 # 依赖 apt-get install ca-certificates curl gnupg lsb-rel…...
6️⃣Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙
Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙 一、前言:离区块链还有多远? 区块链听起来可能遥不可及,似乎是只有密码学专家和资深工程师才能涉足的领域。但事实上,构建一个区块链的核心并不复杂,尤其当你已经掌握了一门系统编程语言,比如 Go。 要真正理解区…...
AWS vs 阿里云:功能、服务与性能对比指南
在云计算领域,Amazon Web Services (AWS) 和阿里云 (Alibaba Cloud) 是全球领先的提供商,各自在功能范围、服务生态系统、性能表现和适用场景上具有独特优势。基于提供的引用[1]-[5],我将从功能、服务和性能三个方面进行结构化对比分析&#…...
