一、安装 OpenAI 库
pip install openai
实现实时对话,错误标记
二、代码部分
import wx
import openai
import threading
# 继承Frame
class TextCtrl(wx.Frame):
def __init__(self, *args, **kwargs):
super(TextCtrl, self).__init__(*args, **kwargs)
# 初始化窗口UI
self.init_ui()
def init_ui(self):
self.text = ""
self.turns = []
# 面板
panel = wx.Panel(self)
# 单行文本输入框(加了验证器)
self.tex = wx.TextCtrl(panel, id=wx.ID_ANY,
pos=(20, 20), size=(400, -1))
self.button = wx.Button(panel, -1, u"提交", pos=(435, 20))
# 绑定事件,就是指定的button被单击后调用onClick()成员函数
self.Bind(wx.EVT_BUTTON, self.OnClick, self.button)
self.text1 = wx.TextCtrl(panel, pos=(20, 60), size=(500, 400), style=wx.TE_MULTILINE)
self.staticT = wx.StaticText(panel, -1, "广告位招租\nTelegram:nullses", (550, 100))
self.SetSize(700, 500)
self.SetTitle("ChatGPT v1.0")
self.Centre()
self.Show(True)
def start_thread(self):
# 让create_ftp函数在子线程中运行
thread = threading.Thread(target=self.create_ftp, args=())
# 下面是设置守护线程:如果在程序中将子线程设置为守护线程,则该子线程会在主线程结束时自动退出
thread.start() # 启动线程
def create_ftp(self):
global results
self.button.SetLabel("请等待...")
openai.api_key = "API-KEY"
prompt = self.text + "\nHuman: " + self.tex.GetValue()
try:
result = openai.Completion.create(
model="text-davinci-003",
prompt=prompt,
temperature=0.9,
max_tokens=2500,
top_p=1,
frequency_penalty=0.0,
presence_penalty=0.6
)
results = result.choices[0].text + "\n\n"
except Exception as e:
self.staticT.SetLabel("出错啦,请关闭重试")
self.staticT.SetForegroundColour((255, 0, 0))
print(str(e))
self.text1.SetValue(self.text1.GetValue() + str(e))
return
self.turns += [self.tex.GetValue()] + [results]
self.button.SetLabel("提交")
if len(self.turns) <= 10: #为了防止超过字数限制程序会爆掉,所以提交的话轮语境为10次。
self.text = " ".join(self.turns)
else:
self.text = " ".join(self.turns[-10:])
self.text1.SetValue(self.text)
def OnClick(self, event):
if self.tex.GetValue() == "":
toastone = wx.MessageDialog(None, "请输入内容", "提示", wx.YES_DEFAULT)
if toastone.ShowModal() == wx.ID_YES: # 如果点击了提示框的确定按钮
toastone.Destroy() # 则关闭提示框
return
self.text1.SetValue(self.text)
self.start_thread()
def input(self, e):
slider = e.GetEventObject()
value = slider.GetValue()
print(value)
def main():
app = wx.App(False)
TextCtrl(None)
app.MainLoop()
if __name__ == "__main__":
main()
二、效果图
我想让你充当⽹络安全专家。我将提供⼀些关于如何存储和共享数据的具体信息,⽽你 的⼯作就是想出保护这些数据免受恶意⾏为者攻击的策略。这可能包括建议加密⽅法、 创建防⽕墙或实施将某些活动标记为可疑的策略。我的第⼀个请求是“我需要帮助为我的 公司制定有效的⽹络安全战略。
AI:您好,我很乐意为您提供帮助。首先,我建议您审查此公司内部网络的情况,并识别任何可能存在漏洞的系统。此外,建议进行定期的安全培训,以了解可能会对您的系统造成影响的新威胁,并对日常活动进行安全性审查。此外,我还建议您考虑加密数据和文件以防止未经许可的访问,并为系统设置强大的防火墙保护,以阻止入侵者。最后,您可以考虑使用双重身份验证或多因素认证以确保您的数据和系统安全。
更多推荐
使用Python GUI做一个ChatGPT
发布评论