摘要:
使用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国内镜像源:
-
设置全局安装源为阿里云镜像:
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
-
设置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.最终效果
初始界面: