使用代理 API 接口实现 GPT Chat

前言

昨天写的 A Simple GPT Qt Demo,由于使用的是官方的 API 接口,所以国内是无法使用的。基于这点考虑,寻找了替代 OpenAI API代理服务来实现。

不过目前该代理接口只实现了 chat 功能,所以不能用于生成图片等功能。

代理接口支持通过上下文内容进行连续对话,所以刚好拿来玩一玩。

一些使用方法和注意事项,可以前往该链接 https://www.openai-proxy.com/ 查看,我就不多赘述了。

实现

为了直观,简单用了 QT 实现了该功能,具体代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import sys
import openai
import requests
import json

from Ui_main import Ui_MainWindow
from PyQt5.QtWidgets import QApplication, QMainWindow

class MyPyQT_Form(QMainWindow, Ui_MainWindow):

def __init__(self):
super().__init__()
self.setupUi(self)
self.chatPushButton.clicked.connect(self.chatPushButtonEvent)

def chatPushButtonEvent(self):
if self.chatLineEdit.text() == "":
return

url = "https://api.openai-proxy.com/v1/chat/completions"
payload = json.dumps({
"apiKey": "xxx",
"sessionId": "8d1cb9b0-f535-43a8-b738-4f61b1608572",
"content": self.chatLineEdit.text()
})
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload).json()

self.chatTextEdit.append("user:\n" + self.chatLineEdit.text() + "\n\n" + "ask:\n" + response['data'] + "\n")


if __name__ == '__main__':
app = QApplication(sys.argv)
my_pyqt_form = MyPyQT_Form()
my_pyqt_form.show()
sys.exit(app.exec_())

效果