用python写一个基于PyQt5和OpenAI的智能问答项目

摘要:

使用python写一个可以对话的智能问答机器人,界面是使用PyQt5写的,通过调用OpenAl的免费接口,实现实时聊天功能。

1.申请免费的API key

前往页面https://github.com/chatanywhere/GPT_API_free

点击下面链接:

申请成功:

授权成功 您的免费API Key为: sk-8xxxxxxxxx 请妥善保管,不要泄露给他人,如泄漏造成滥用可能会导致Key被封禁

2.环境准备

本文开发环境为:

windows 11 
python 3.11.4

配置pip国内镜像源:

  1. 设置全局安装源为阿里云镜像:

    pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
  2. 设置pip安装时信任的主机地址:

    pip config set install.trusted-host mirrors.aliyun.com

安装必要的包:

pip install PyQt5==5.14.1
pip install pyqt5-tools

配置ui设计工具:

参考我另一篇博文:使用Python PyQt5实现一个简单的图像识别软件_pyqt5 designer插入一个区域用于图像识别-CSDN博客

配置好后可以看到下面效果:

3.UI界面设计及调整

界面设计:

设置滚动条代码:

        self.scrollArea = QtWidgets.QScrollArea(self.centralwidget)self.scrollArea.setGeometry(QtCore.QRect(10, 60, 780, 481))self.scrollArea.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)self.scrollArea.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)self.scrollArea.setWidgetResizable(False)self.scrollArea.setObjectName("scrollArea")
​self.scrollAreaWidgetContents = QtWidgets.QWidget()self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 780, 3000))self.scrollAreaWidgetContents.setMaximumSize(QtCore.QSize(1000, 4000))self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")
​# 将 self.scrollAreaWidgetContents设置为QScrollArea的widgetself.scrollArea.setWidget(self.scrollAreaWidgetContents)
​self.label_2 = QtWidgets.QLabel(self.scrollAreaWidgetContents)# self.label_2 = QtWidgets.QLabel(self.centralwidget)

4.软件功能逻辑实现

发送请求及结果处理:

    def sendRequest(self):_translate = QtCore.QCoreApplication.translateresponse = requests.request("POST", url, headers=headers, data=self.payload)res = response.json()print(type(response))print(response.text)print(type(response.text))print(res)cur_content = ''if res['choices'][0]['message']['content']:cur_content = res['choices'][0]['message']['content']
​print(cur_content)self.label_2.setText(_translate("MainWindow", cur_content))

5.最终效果

初始界面:

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

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

相关文章

json.dumps参数

json.dumps()是 Python 中json 模块的一个函数,用于将 Python 对象编码成 JSON格式的字符串。这个函数有几个常用的参数,下面是一些主要的参数及其描述: 1. **obj**: 必需。要转换的 Python 对象。 2. *…

mysql 解析json

需求背景 设计时数据库中存放的部分原始数据为json,在二次开发过程通过视图来解析出数据 实现 SELECT profile->$.name AS user_name FROM users;如果是5.7以下 SELECT JSON_EXTRACT(profile, $.name) AS user_name FROM users;如果碰到需要将string转换为do…

SQL实验 SQL Server数据库的安全性控制

一、实验目的 1.熟悉通过SQL对数据进行安全控制。 2.掌握GRANT与REVOKE语句的使用,熟悉数据库用户的创建和授权。 二、实验内容 (一)、第一部分:以上先采用图形用户界面进行设置权限,然后试…

65、API攻防——接口安全WebPackRESTSOAPWSDLWebService

文章目录 一、接口类型二、Webservice类——Wsdl&ReadyAPI-SQL注入三、SOAP类——Swagger&SoapUI&EXP-信息泄露四、HTTP类——WebPack&PackerFuzzer-信息泄露 一、接口类型 HTTP类接口PRC类接口 客户端和服务端的连接,非web上的接口,可…

计算机网络9——无线网络和移动网络1 无线局域网 WLAN2

文章目录 一、802.11局域网的 MAC 层协议1、CSMA/CA协议2、时间间隔 DIFS 的重要性3、争用信道的过程4、对信道进行预约 二、802.11局域网的 MAC 帧1)关于 802.11 数据帧的地址2)序号控制字段、持续期字段和帧控制字段 一、802.11局域网的 MAC 层协议 1…

实战:Zig 编写高性能 Web 服务(2)

1.1 编写 HTTP server 我们从python -m http.server 8000启动得到灵感,先确定好目标: 编写一个HTTP/1.1 http serverzig version 0.12.0 使用zig init搭建项目的前置工作你先自行搭建好,不会的翻看前面铺垫的章节熟悉zig的项目结构。 关键…

在mmdet 3.0系列中使用visualizer进行目标检测真实框和检测框的可视化和绘制 并保存为图像

在 MMDetection 3.0 中,使用 visualizer 进行目标检测的真实框和检测框的可视化和绘制,并将结果保存为图像,是一个比较简便且高效的方法。以下是具体的实现步骤和代码示例。 步骤 加载必要的库和初始化模型。 加载测试图像和数据集。 进行推…

神经网络 | 深度学习背后的数学

神经网分析 机器学习处理的是数据,通过学习输入的数据,从而建立模型,以便预测新的数据的输出 按照类型可以进行如下分类 监督分类 非监督分类 强化学习 神经元 生物学中,人的大脑是由多个神经元互相连接形成网络而构成的。也…

2024国内热门大语言模型在科研方面的应用

本博客总结了几款热门的国产大语言模型,帮助大家利用这些大语言模型更好的进行科研。 模型介绍 1.文心一言 链接:https://yiyan.baidu.com/ 开发方:百度 特点:专注于中文语言理解与生成,适合中文文本的语义理解任务。 百度推出…

设计模式-抽象工厂(创建型)

创建型-抽象工厂 角色 抽象工厂: 声明创建一个族产品对象的方法,每个方法对应一中产品,抽象工厂可以是接口,也可以是抽象类;具体工厂: 实现抽象工厂接口,复杂创建具体的一族产品;抽…

[晕事]今天做了件晕事36 函数A明明调用了B,但是在汇编里却找不到,static优化

最近看gcov的一个问题,在分析二进制文件和源代码的时候发现,这个函数体明明不是很大,但是汇编内容确实巨量。占到~5000个字节。而且函数里明明调用了另一个函数dump_one_gcov,却找不到相应的汇编代码。 void gcov_do_dump (struct gcov_info *list, int run_counted) {str…

web学习笔记(六十三)

目录 1.钩子函数onActivated和onDeactivated 1.1 onActivated 1.2 onDeactivated 2. KeepAlive补充 2.1 include 和 exclude 2.2 的作用是什么? 2.3 组件包含什么prop属性及作用? 2.4 对应那两个生命周期?生命周期什么时机执行? 2.5 …

前端 Web 与原生应用端 WebView 通信交互 - HarmonyOS Next

基于鸿蒙 HarmonyOS Next 与前端 Vue 通信交互相关小结; DevEco Studio NEXT Developer Preview2 Vue js 两端相互拟定好协议后,通过前端页面的点击事件,将所需的数据传输给原生移动端组件方法中,处理后将消息回传至前端. 根据官方文档的案例尝试,但没成功 ... 后经过几经尝试…

GDB调试工具

-D,指定编译内容。 调试: gdb ./a.out 文件名 l可以查看代码内容 c全部执行 n执行下一步 q退出 gdb ./a.out -p id号 查找ID号用管道命令|。

【重磅丨教育设备】推动大规模设备更新和消费品以旧换新行动方案

近日,国务院印发《推动大规模设备更新和消费品以旧换新行动方案》(以下简称《行动方案》)。《行动方案》提出:实施设备更新行动。提升教育文旅医疗设备水平,推动符合条件的高校、职业院校(含技工院校&#…

使用 Docker Compose 编排 Django 应用

1. 使用 Docker Compose 编排 Django 应用 1.1 准备工作 确保已安装 Docker 和 Docker Compose。 # 安装 $ sudo pip install -U docker-compose#卸载 $ sudo pip uninstall docker-compose创建一个新的目录来存放项目文件。在该目录下创建一个名为 requirements.txt 的文件…

FarmersWorld农民世界源码开发:0撸卷轴+潮玩模式

一、引言 随着科技的发展,游戏产业日益壮大,一种新型的游戏形式——零撸游戏应运而生。本文将深入探讨FarmersWorld农民世界源码开发,以其独特的0撸卷轴潮玩模式,为玩家带来全新的游戏体验。 二、源码开发的专业性和深度 Farmer…

笔记 | 软件工程01:从程序到软件

1 软件工程知识域 2 程序 2.1 何为程序及程序的质量要求 何为程序: 理解:软件工程可能就是在弥补OOP语言与自然语言之间还存在的鸿沟 2.1.1 程序质量的内在和外在体现 2.1.2 程序质量的语法和语义体现 2.2 编写代码的基本原则 2.3 程序质量保证方法 …

xml创建模型组合体

XML创建模型组合体 创建步骤模型准备模型处理模型文件XML编写 效果 创建步骤 模型准备 CAD 提供的原始模型如下: 该模型存在的问题: 单位问题:CAD出图的是 mm 为单位,但是 mujoco 建模这边用的是以 m 为单位的;原点…

2024年会计、金融与工商管理国际会议(ICAFBA 2024)

2024年会计、金融与工商管理国际会议 2024 International Conference on Accounting, Finance, and Business Administration 【1】会议简介 2024年会计、金融与工商管理国际会议是一场集合了全球会计、金融与工商管理领域专家学者的学术盛会。此次会议旨在深入探讨会计、金融与…