from wxauto import *
import time
import pyautogui
import pyperclip
import openai
# 获取当前微信客户端
wx = WeChat()
num = 0
# 获取会话列表
wx.GetSessionList()
# optional; defaults to `os.environ['OPENAI_API_KEY']`
openai.api_key = "sk-*******************"
# all client options can be configured just like the `OpenAI` instantiation counterpart
openai.base_url = "https://fr*e.g*t.ge/*1/"
openai.default_headers = {"x-foo": "true"}
###############################
# 1、获取默认窗口聊天信息
###############################
# 定义一个函数生成 ChatGPT 的回复
def generate_response(prompt):
# 调用 OpenAI API 生成回复
completion = openai.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{
"role": "user",
"content": prompt,
},
],
)
# 从 API 响应中取得回复
message = completion.choices[0].message.content
return message
# 初始化一个变量来存储对话上下文
context = "请用中文回复"
# def data(newdata):
# urldata = "https://api.ownth*ink.com/bot?appid=e94dc1b1833a7f57ceeeb593bddccd87&userid=1&spoken=" + newdata
# sess = requests.get(urldata)
# answer = sess.text
# answer = json.loads(answer)
# return answer["data"]["info"]["text"]
# def get_default_window_messages(context):
# if __name__ == '__main__':
while True:
if num < 10:
# 默认是微信窗口当前选中的窗口
# 输出当前聊天窗口聊天消息
msgs = WeChat()
result = msgs.GetAllListenChat()
if result[0] != "***":
print("检测到新消息")
# 提示用户输入信息
# 如果用户输入结束命令,退出循环
# if user_input in ["结束", "退出", "end", "exit"]:
# break
# 把用户输入信息添加到对话上下文中
context = context + msgs.GetAllListenChat[1] + "\n"
# 调用 generate_response() 函数生成回复
response = generate_response(context)
# 显示 ChatGPT 的回复
print("ChatGPT:" + response)
# 把 ChatGPT 的回复添加到对话上下文中
context = context + response + "\n"
print(msgs.GetAllListenChat[0], msgs.GetAllListenChat[1])
# pyperclip.copy(response)
# pyautogui.hotkey('ctrl', 'v')
# time.sleep(10) # 延迟时间,模拟真人回复
wx.SendMsg(response)
# pyautogui.hotkey('enter')
num += 1
else:
print("正在检测中")
else:
num = 0
context = ""
有人可以帮忙改改吗?一直报错