用Python开发一个AI消息回复机器人

简介: 用Python开发一个AI消息回复机器人

女友经常大半夜缠着你,让你陪她来聊天该咋办?

不要慌……会Python的我不会被这点小事所难倒

今天教你用Python开发一个AI消息自动回复机器人

基于pyautogui模块开发

本文仅消息回复内容,并不是十分丰富,你可以在此基础上自行扩展

比如接入第三方机器人API

 


   程序设计流程

 

 


      如何获取坐标位置?    获取坐标位置,我们可以使用wx自带的截图工具,通过移动鼠标来确定坐标位置

 


   代码实战 先来观察一番,发现微信在收到新消息时会有一个特征:在聊天列表会有一条新消息并带一个红色的小“1”图标;如下所示

我们把这个小“1”图标截图,并放至项目的目录里



 

发现这个规律后,我们可以使用pyautogui这个包的

locateCenterOnScreen() 方法来找到小“1”图标在整个屏幕中的坐标位置。一:找到图标了我们需要去点击这条新消息在屏幕中的坐标位置:

location = pg.locateCenterOnScreen('img/newmsg.png', confidence=0.9)

二:右击复制消息至剪切板

pg.click(pos[0], pos[1], button='right')
x, y = pg.locateCenterOnScreen('img/copy.png', confidence=0.9)
pg.click(x, y, button='left')


三:获取剪切板中的内容,并获取的内容传给自定义消息函数

text = getCliText().decode('GB2312')
msg = message(text)


四:点击输入框所在坐标位置,并复制最后一条消息内容

pg.click(inputPos[0], inputPos[1], button='left')
pc.copy(msg)


五:粘贴匹配到的消息内容,并发送新消息

pg.hotkey('ctrl', 'v')
pg.hotkey('enter')
print(f'收到消息:{text}')
print(f'发送消息:{msg}')


六:重新右击消息联系人,并点击不显示该聊天(避免下次最新消息变成已读状态)

pg.click(location.x, location.y, button='right')
dispos = pg.locateCenterOnScreen('img/undisplay.png', confidence=0.9)
pg.click(dispos.x, dispos.y, button='left')


上述步骤三中的函数:

 

获取剪切板

def getCliText():
    wc.OpenClipboard()
    text = wc.GetClipboardData(win32con.CF_TEXT)
    wc.CloseClipboard()
    return text


自定义消息函数

 

def message(msg):
    try:
        keyword = {
            '你是谁': '我是你的宝贝啊~',
            '哈哈哈': '什么事情这么开心?',
            '早安': '早安呀~',
            '在干吗': '在想你呀宝'
        }
        return keyword[msg]
    except:
        return '暂时还不能理解你在说什么……'


最后奉上全部代码:

import time, win32con
import win32clipboard as wc
import pyperclip as pc
import pyautogui as pg
# 设置操作间隙为1s
pg.PAUSE = 1
# 最后一条消息所在坐标位置
pos = (1349, 754)
# 输入框所在坐标位置
inputPos = (1304, 875)
# 获取剪切板内容
def getCliText():
    wc.OpenClipboard()
    text = wc.GetClipboardData(win32con.CF_TEXT)
    wc.CloseClipboard()
    return text
# 自定义消息函数(如果为匹配到消息则返回暂时还不理解你在说什么……
def message(msg):
    try:
        keyword = {
            '你是谁': '我是你的宝贝啊~',
            '哈哈哈': '什么事情这么开心?',
            '早安': '早安呀~',
            '在干吗': '在想你呀宝'
        }
        return keyword[msg]
    except:
        return '暂时还不能理解你在说什么……'
def send_msg():
    while True:
        # 获取新消息在屏幕中的坐标位置
        location = pg.locateCenterOnScreen('img/newmsg.png', confidence=0.9)
        # 如果找到新消息的坐标位置
        if location is not None:
            print(f'\r{location}')
            # 点击新消息所在坐标位置并右键复制最后一条消息在屏幕中的坐标位置
            pg.click(location.x, location.y, button='left')
            pg.click(pos[0], pos[1], button='right')
            x, y = pg.locateCenterOnScreen('img/copy.png', confidence=0.9)
            pg.click(x, y, button='left')
            # 获取剪切板中的内容,并获取的内容传给自定义消息函数
            text = getCliText().decode('GB2312')
            msg = message(text)
            # 点击输入框所在坐标位置
            pg.click(inputPos[0], inputPos[1], button='left')
            pc.copy(msg)
            # 粘贴新匹配到消息,并发送
            pg.hotkey('ctrl', 'v')
            pg.hotkey('enter')
            print(f'收到消息:{text}')
            print(f'发送消息:{msg}')
            # 重新右击消息联系人,并点击不显示该聊天(避免下次最新消息变成已读状态)
            pg.click(location.x, location.y, button='right')
            dispos = pg.locateCenterOnScreen('img/undisplay.png', confidence=0.9)
            pg.click(dispos.x, dispos.y, button='left')
if __name__ == '__main__':
     send_msg()
相关文章
|
2天前
|
人工智能 Serverless API
AI 绘画平台难开发,难变现?试试 Stable Diffusion API Serverless 版解决方案
AI 绘画平台难开发,难变现?试试 Stable Diffusion API Serverless 版解决方案
|
13天前
|
机器学习/深度学习 人工智能 搜索推荐
Python进行AI声音克隆的端到端指南
人工智能语音克隆是一种捕捉声音的独特特征,然后准确性复制它的技术。这种技术不仅可以让我们复制现有的声音,还可以创造全新的声音。它是一种彻底改变内容创作的工具,从个性化歌曲到自定义画外音,开辟了一个超越语言和文化障碍的创意世界。
24 0
|
13天前
|
计算机视觉 Python
用 Python 开发简单的游戏
游戏开发是一个充满乐趣和挑战的领域,而 Python 作为一种强大的编程语言,为游戏开发提供了丰富的工具和可能性。在本文中,我们将探讨如何使用 Python 开发简单的游戏,并提供一些基本的示例和指导。
|
13天前
|
缓存 数据可视化 安全
开发阿里云 RPA 机器人的技巧
在当今数字化时代,机器人流程自动化(RPA)技术正逐渐成为企业提高效率和优化业务流程的重要手段。阿里云 RPA 作为一种强大的工具,为开发高效的机器人提供了丰富的功能和支持。本文将分享一些开发阿里云 RPA 机器人的技巧,帮助您更好地利用该平台的能力。
|
18天前
|
存储 Python Windows
python 基础综合应用——小开发
python 基础综合应用——小开发
|
18天前
|
机器学习/深度学习 人工智能 自然语言处理
ChatGPT学python——制作自己的AI模型(一)初步了解
ChatGPT学python——制作自己的AI模型(一)初步了解
|
19天前
|
人工智能 自然语言处理 机器人
自然语言开发AI应用,利用云雀大模型打造自己的专属AI机器人
如今,大模型层出不穷,这为自然语言处理、计算机视觉、语音识别和其他领域的人工智能任务带来了重大的突破和进展。大模型通常指那些参数量庞大、层数深、拥有巨大的计算能力和数据训练集的模型。 但不能不承认的是,普通人使用大模型还是有一定门槛的,首先大模型通常需要大量的计算资源才能进行训练和推理。这包括高性能的图形处理单元(GPU)或者专用的张量处理单元(TPU),以及大内存和高速存储器。说白了,本地没N卡,就断了玩大模型的念想吧。 其次,大模型的性能往往受到模型调优和微调的影响。这需要对模型的超参数进行调整和优化,以适应特定任务或数据集。对大模型的调优需要一定的经验和专业知识,包括对深度学
自然语言开发AI应用,利用云雀大模型打造自己的专属AI机器人
|
20天前
|
传感器 机器学习/深度学习 人工智能
【AI 现况分析】AI 如何落地到机器人技术上?
【1月更文挑战第27天】【AI 现况分析】AI 如何落地到机器人技术上?
|
20天前
|
人工智能 弹性计算 开发工具
【Hello AI】安装并使用FastGPU-Python SDK使用说明
用户可以通过FastGPU提供的Python接口,将FastGPU集成到您的人工智能训练或推理脚本中,从而实现快速的云上部署和资源管理。
|
20天前
|
机器学习/深度学习 人工智能 自然语言处理
【AI 现况分析】AI 如何提高开发效率,在生产中的实践
【1月更文挑战第27天】【AI 现况分析】AI 如何提高开发效率,在生产中的实践

相关产品

  • 云迁移中心