中社你好呀 2024-06-17 20:21 采纳率: 0%
浏览 9

Chat GPT接入微信(有误,求改)

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 = ""

有人可以帮忙改改吗?一直报错

  • 写回答

3条回答 默认 最新

  • 关注

    晚上好🌙🌙🌙
    本答案参考ChatGPT-3.5

    该问题可能是由于多个原因导致的。首先,要确保您已经正确地连接了微信客户端,并且已在其中运行了一个 WeChat 实例。其次,检查您是否有设置好默认窗口聊天信息的相关参数,如昵称等。

    如果您想要在程序中自动获取默认窗口的消息,可以使用以下方法:

    from pyautogui import Sleep
    
    while True:
        # 获取当前窗口选择的消息
        window_msg = WeChat().GetSessionList()[num][0]["sessionmsg"]
        
        # 如果用户没有点击结束按钮或输入任意字符,则等待一段时间再继续
        if not window_msg["msgtype"].lower() == "end":
            sleep(2)  # 延迟时间
    

    以上代码通过使用 pyautogui.Sleep() 来模拟人机交互,每次延迟2秒,直到用户点击结束按钮或输入任何字符。

    请注意,由于这个功能依赖于你正在使用的具体环境和聊天程序,可能需要根据实际情况调整代码。同时,请确保您已遵循所有适用的隐私和安全政策。

    评论

报告相同问题?

问题事件

  • 创建了问题 6月17日

悬赏问题

  • ¥15 SQLServer怎么录入下标
  • ¥100 无网格伽辽金方法研究裂纹扩展的程序
  • ¥15 如何用数码管显示学号(相关搜索:单片机)
  • ¥15 错误于library(org.Hs.eg.db): 不存在叫‘org.Hs.eg.db’这个名称的程序包,如何解决?
  • ¥60 求一个图片处理程序,要求将图像大小跟现实生活中的大小按比例联系起来的
  • ¥50 求一位精通京东相关开发的专家
  • ¥100 求懂行的大ge给小di解答下!
  • ¥15 pcl运行在qt msvc2019环境运行效率低于visual studio 2019
  • ¥15 MAUI,Zxing扫码,华为手机没反应。可提高悬赏
  • ¥15 python运行报错 ModuleNotFoundError: No module named 'torch'