小case-基于chatgpt的微信自动回复

微信自动回复 基于聊天api的

import pyautogui
import pyperclip
import keyboard
import requests
import time

print('程序即将开始,请打开微信!')

# 检测是否有新消息
def findNews():
    left, top, width, height = pyautogui.locateOnScreen("news.png", confidence=0.9)
    pyautogui.click(left + 20, top + 20)
    print('发现了新消息')

# 发送消息
def sendMsg():
    left, top, width, height = pyautogui.locateOnScreen('icon.png', confidence=0.9)
    print('获取到了图标位置')
    X = left + width
    pyautogui.rightClick(X, top - 40)
    pyautogui.click(X + 10, top - 40 + 10)
    friendMsg = pyperclip.paste() #将拷贝板内的文字转换为字符串
    print('好友的消息:' + friendMsg)
    url = 'https://v.api.aa1.cn/api/api-xiaoai/talk.php'
    print('正在思考如何回复...')
    res = requests.get(url, params="msg=" + friendMsg)
    time.sleep(1)
    reply = res.text
    print('即将发送的消息:' + reply)
    pyperclip.copy(reply)
    pyautogui.click(X, top + 50)
    pyautogui.hotkey('ctrl', 'v')
    time.sleep(3)
    pyautogui.press('enter')
    print('发送成功!')
    time.sleep(1)
    # 恢复原始状态
    print('恢复原始状态')
    left, top, width, height = pyautogui.locateOnScreen('reset.png', confidence=0.9)
    pyautogui.click(left + 20, top  + 20)

# 开始执行
while True:
    # time.sleep(1)
    # 如果按下退格键,则退出循环
    if keyboard.is_pressed('backspace'):
        print('按下了退格键,程序即将结束')
        break
    
    # 捕获错误
    try:
        findNews()
        sendMsg()

    except TypeError:
        print('没有发现新消息...', time.time())

pyautogui.alert(text='Python程序已结束!', title='提示', button='好的')
print("程序已结束!") 



微信自动回复 基于chatgpt的

import openai
import pyautogui
import pyperclip
import keyboard
import time

openai.api_key = "你的chat-gpt API"
def chat_gpt(prompt):# 你的问题prompt = prompt# 调用 ChatGPT 接口
    model_engine = "text-davinci-003"
    completion = openai.Completion.create(
        engine=model_engine,
        prompt=prompt,
        max_tokens=1024,
        n=1,
        stop=None,
        temperature=0.5,)
    response = completion.choices[0].text
    return response
        

print('程序即将开始,请打开微信!')

# 检测是否有新消息
def findNews():
    left, top, width, height = pyautogui.locateOnScreen("news.png", confidence=0.9)
    pyautogui.click(left + 20, top + 20)
    print('发现了新消息')

# 发送消息
def sendMsg():
    left, top, width, height = pyautogui.locateOnScreen('icon.png', confidence=0.9)
    print('获取到了图标位置')
    X = left + width
    pyautogui.rightClick(X, top - 35)
    pyautogui.click(X + 10, top - 40 + 10)
    friendMsg = pyperclip.paste() #将拷贝板内的文字转换为字符串
    print('好友的消息:' + friendMsg)
    #url = 'https://v.api.aa1.cn/api/api-xiaoai/talk.php'
    print('正在思考如何回复...')
    #res = requests.get(url, params="msg=" + friendMsg)
    #time.sleep(1)
    reply = chat_gpt(friendMsg).replace('?','').strip()
    print('即将发送的消息:' + reply)
    pyperclip.copy(reply)
    pyautogui.click(X, top + 50)
    pyautogui.hotkey('ctrl', 'v')
    time.sleep(1)
    pyautogui.press('enter')
    print('发送成功!')
    #time.sleep(1)
    # 恢复原始状态
    print('恢复原始状态')
    left, top, width, height = pyautogui.locateOnScreen('reset.png', confidence=0.9)
    pyautogui.click(left + 20, top  + 20)

# 开始执行
while True:
    # time.sleep(1)
    # 如果按下退格键,则退出循环
    if keyboard.is_pressed('backspace'):
        print('按下了退格键,程序即将结束')
        break
    
    # 捕获错误
    try:
        findNews()
        sendMsg()

    except TypeError:
        print('没有发现新消息...', time.time())

pyautogui.alert(text='Python程序已结束!', title='提示', button='好的')
print("程序已结束!") 

    

posted @ 2023-02-23 23:07  AubeLiang  阅读(275)  评论(6编辑  收藏  举报