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

news2024/11/16 6:02:07

摘要:

使用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的widget
        self.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.translate
        response = 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.coloradmin.cn/o/1788857.html

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

相关文章

如何判断ubuntu是桌面版(destop版)还是服务版(server版)?(systemctl status display-manager)

文章目录 用命令systemctl status display-manager 用命令systemctl status display-manager systemctl status display-manager如果是ubuntu desktop,将显示服务正在运行,如: 如果是ubuntu server,将不会显示服务,提…

计网ppt标黄知识点整理第(1)章节——谢希仁版本、期末复习自用

大众熟知的三大网络:电信网络、有线电视网络、计算机网络。发展最快起到核心的是计算机网络。Internet是全球最大、最重要的计算机网络。互联网:流行最广、事实上的标准译名。互连网:把许多网络通过一些路由器连接在一起。与网络相连的计算机…

宏集Panorama SCADA:个性化定制,满足多元角色需求

前言 在考虑不同人员在企业中的职能和职责时,他们对于SCADA系统的需求可能因其角色和工作职责的不同而有所差异。在SCADA系统的设计和实施过程中,必须充分考虑和解决这种差异性。 为了满足不同人员的需求, 宏集Panorama SCADA平台具备灵活的功能和定制…

如何通过PHP语言实现远程控制多路照明

如何通过PHP语言实现远程控制多路照明呢? 本文描述了使用PHP语言调用HTTP接口,实现控制多路照明,通过多路控制器,可独立远程控制多路照明。 可选用产品:可根据实际场景需求,选择对应的规格 序号设备名称厂…

Android Dialog使用汇总

Dialog分类 AlertDialog Dialog 类是对话框的基类,官方建议我们不要直接实例化它,而是使用其子类来获取实例。AlertDialog是系统提供的一个直接子类,它能帮助我们快速构建出不同类型的弹窗。接下来就看下各种类型弹窗的使用。 1、普通对话框…

【教学类-13-05】20240604《数字色块图-5*7*8-A4横板-横切》中4班

背景需求: 【教学类-13-04】20230404《数字色块图判断密码是否正确-5*7*8-A4横板-横切》(中班主题《我爱我家》)_图案密码色块-CSDN博客文章浏览阅读530次。【教学类-13-04】20230404《数字色块图判断密码是否正确-5*7*8-A4横板-横切》(中班主…

2024高质量建成新型电力系统加速发展低零碳灵活性资源研究报告

来源:RMI&清华大学 近期历史回顾:2024年中国新能源汽车出海洞察.pdf 2024可信赖的企业级生成式 AI 白皮书.pdf 2023亚洲家族办公室 2024年移动性别鸿沟报告.pdf 2024年社交媒体顶级美容品牌.pdf 2024高质量建成新型电力系统加速发展低零碳灵活性资源…

Linux 搭建 ZeroTier 的 Moon 服务器

系统:centos 7.6 轻量云服务器:腾讯云 Moon是什么,为什么需要Moon? ZeroTier通过自己的多个根服务器帮助我们建立虚拟的局域网,让虚拟局域网内的各台设备可以打洞直连。这些根服务器的功能有些类似于通过域名查询找到…

2024年数字化经济与金融创新国际学术会议(ICDEFI 2024)

2024年数字化经济与金融创新国际学术会议(ICDEFI 2024) 会议简介 2024年数字经济与金融创新国际学术会议即将召开。此次会议旨在汇集全球数字经济与金融创新领域的专家学者,共同探讨数字经济的发展趋势以及金融创新的路径。与会者将分享前沿…

Linux下查看进程和端口信息

1, 根据进程名(这里是模糊查询)查看进程信息,以查看nginx进程名为例,查看所对应的进程id为19013(或者使用: ps -aux | grep nginx查看占用内存等信息) ps -ef | grep nginx 2, 根据进程id查看进程占用端口,查看对应端口为8080&…

springboot+mqtt使用总结

1.软件的选型 1.1.使用免费版EMQX 1.1.1.下载 百度搜索的目前是会打开官网,这里提供下免费版的使用链接EMQX使用手册 文档很详细,这里不再记录了。 1.2.使用rabbitmq rabbitmq一般做消息队列用,作为mqtt用我没有找到详细资料&#xff0c…

VB.net实战(VSTO):Excel插件的安装与卸载

1. 安装 1.1编程环境:Visual Studio 2022 1.2创建新项目: 1.3 加入一行测试程序:MsgBox(“hello”),点击启动,确认可以弹窗 1.4 点击发布 1.5 找到安装程序,点击安装。打开Excel程…

win10环境下nodejs安装过程

打开 https://nodejs.org/en/官网下载node.js 2.下载完成后的安装文件为node-v16.16.0-x64.msi,双击进行安装即可。 3.一直默认安装,记得可以更改安装路径 4.其他不用打勾,一直next,安装完成即可。 5.安装完成后,wi…

软件测试需求管理指南规范(Word原件,项目管理全资料)

3 测试需求 3.1 测试范围 3.2 测试目标 4 测试需求的现状 5 测试需求的内容 5.1 主体内容 5.2 管理内容 6 测试需求的制定 6.1 需求信息来源 6.2 需求分析 6.2.1 功能性需求 6.2.2 系统功能需求 6.2.3 界面需求 6.2.4 安装需求 6.2.5 业务需求 6.2.6 非功能性需求 6.2.7 性能需…

告别复制粘贴:AI论文写作工具的高效应用

写作这件事一直让我们从小学时期就开始头痛,初高中时期800字的作文让我们焦头烂额,一篇作文里用尽了口水话,拼拼凑凑才勉强完成。 大学时期以为可以轻松顺利毕业,结果毕业前的最后一道坎拦住我们的是毕业论文,这玩意不…

企业应用架构模式--详解51种企业应用架构模式

导读:企业应用包括哪些?它们又分别有哪些架构模式? 世界著名软件开发大师Martin Fowler给你答案 目录 01什么是企业应用02 企业应用的种类03企业架构模式 01什么是企业应用 我的职业生涯专注于企业应用,因此,这里所谈…

【Python系列】Python装饰器

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Spring AI 第二讲 之 Chat Model API 第二节Ollama Chat

通过 Ollama,您可以在本地运行各种大型语言模型 (LLM),并从中生成文本。Spring AI 通过 OllamaChatModel 支持 Ollama 文本生成。 先决条件 首先需要在本地计算机上运行 Ollama。请参阅官方 Ollama 项目 README,开始在本地计算机上运行模型…

使用PyCharm 开发工具创建工程

一. 简介 前面学习了 安装 python解释器。如何安装python的一种开发工具 PyCharm。 本文来简单学习一下,如何使用 PyCharm 开发工具创建一个简单的 python工程。 二. PyCharm 开发工具创建一个工程 1. 首先,首先打开PyCharm 开发工具。选择 创建一…

【计算机毕业设计】谷物识别系统Python+人工智能深度学习+TensorFlow+卷积算法网络模型+图像识别

谷物识别系统,本系统使用Python作为主要编程语言,通过TensorFlow搭建ResNet50卷积神经算法网络模型,通过对11种谷物图片数据集(‘大米’, ‘小米’, ‘燕麦’, ‘玉米渣’, ‘红豆’, ‘绿豆’, ‘花生仁’, ‘荞麦’, ‘黄豆’, …