用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()
相关文章
|
16天前
|
人工智能 安全 测试技术
探索AI在软件开发中的应用:提升开发效率与质量
【10月更文挑战第31天】在快速发展的科技时代,人工智能(AI)已成为软件开发领域的重要组成部分。本文探讨了AI在代码生成、缺陷预测、自动化测试、性能优化和CI/CD中的应用,以及这些应用如何提升开发效率和产品质量。同时,文章也讨论了数据隐私、模型可解释性和技术更新等挑战。
|
13天前
|
人工智能 IDE 开发工具
Python AI 编程助手
Python AI 编程助手。
34 5
|
22天前
|
人工智能 小程序
【一步步开发AI运动小程序】五、帧图像人体识别
随着AI技术的发展,阿里体育等公司推出的AI运动APP,如“乐动力”和“天天跳绳”,使云上运动会、线上健身等概念广受欢迎。本文将引导您从零开始开发一个AI运动小程序,使用“云智AI运动识别小程序插件”。文章分为四部分:初始化人体识别功能、调用人体识别功能、人体识别结果处理以及识别结果旋转矫正。下篇将继续介绍人体骨骼图绘制。
|
22天前
|
人工智能 小程序 vr&ar
AI运动小程序开发常见问题集锦二
截至当前,我们的AI运动识别小程序插件已迭代至第23个版本,广泛应用于健身、体育、体测、AR互动等场景。本文针对近期用户咨询,汇总了常见问题,帮助用户减少开发成本,提高效率。主要涵盖计时与计数模式的区别、综合排行榜生成方法、全屏模式适配及无开发能力用户的解决方案。
|
27天前
|
机器学习/深度学习 人工智能 自动驾驶
2024.10|AI/大模型在机器人/自动驾驶/智能驾舱领域的最新应用和深度洞察
本文介绍了AI和大模型在机器人、自动驾驶和智能座舱领域的最新应用和技术进展。涵盖多模态大语言模型在机器人控制中的应用、移动机器人(AMRs)的规模化部署、协作机器人的智能与安全性提升、AR/VR技术在机器人培训中的应用、数字孪生技术的优化作用、Rust语言在机器人编程中的崛起,以及大模型在自动驾驶中的核心地位、端到端自动驾驶解决方案、全球自动驾驶的前沿进展、智能座舱的核心技术演变和未来发展趋势。
55 2
|
6天前
|
Web App开发 人工智能 自然语言处理
WebChat:开源的网页内容增强问答 AI 助手,基于 Chrome 扩展的最佳实践开发,支持自定义 API 和本地大模型
WebChat 是一个基于 Chrome 扩展开发的 AI 助手,能够帮助用户理解和分析当前网页的内容,支持自定义 API 和本地大模型。
29 0
|
9天前
|
存储 人工智能 搜索推荐
AI智能语音机器人的基本业务流程
简介: 先画个图,了解下AI语音机器人的基本业务流程。上图是一个AI语音机器人的业务流程,简单来说就是首先要配置话术,就是告诉机器人在遇到问题该怎么回答,这个不同公司不同行业的差别比较大,所以一般每个客户都会配置其个性化的话术。话术配置完成后,需要给账号配置线路,目的就是能够顺利的把电话打出去。线路配完后,就是建立任务了,说白了就是导入电话号码,因为资源有限,不可能导入一批立即打完,所以需要以任务的形式分配给机器人,然后机器人逐个完成。值得一提的是,如果有多条线路,创建任务时建议提供线路选择功能,很多公司的业务不止一个城市,而大家又是比较习惯接听自己所在城市的电话,所以这个选择主
|
1月前
|
人工智能 编解码 小程序
【一步步开发AI运动小程序】四、小程序如何抽帧
随着AI技术的发展,阿里体育等公司推出的“乐动力”、“天天跳绳”等APP使云上运动会、线上健身等概念备受关注。本文将引导您从零开始开发一个AI运动小程序,利用“云智AI运动识别小程序插件”。文中详细介绍了微信小程序抽帧的相关API、设置及注意事项,帮助开发者更好地实现AI运动功能。下篇将介绍人体识别技术,敬请期待。
|
1月前
|
机器学习/深度学习 传感器 人工智能
马斯克的AI机器人可以拯救一个陷入困境的教育系统吗?
马斯克的AI机器人可以拯救一个陷入困境的教育系统吗?
|
IDE 开发工具 Android开发
Python开发神器PyCharm,体验下吧
Python开发神器PyCharm,体验下吧
181 0
Python开发神器PyCharm,体验下吧
下一篇
无影云桌面