用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()
相关文章
|
4月前
|
人工智能 安全 API
20 万奖金池就位!Higress AI 网关开发挑战赛参赛指南
本次赛事共设三大赛题方向,参赛者可以任选一个方向参赛。本文是对每个赛题方向的参赛指南。
449 39
|
4月前
|
机器学习/深度学习 数据采集 监控
量化交易机器人开发风控模型对比分析与落地要点
本文系统对比规则止损、统计模型、机器学习及组合式风控方案,从成本、鲁棒性、可解释性等维度评估其在合约量化场景的适用性,结合落地实操建议,为不同阶段的交易系统提供选型参考。
|
4月前
|
人工智能 运维 安全
加速智能体开发:从 Serverless 运行时到 Serverless AI 运行时
在云计算与人工智能深度融合的背景下,Serverless 技术作为云原生架构的集大成者,正加速向 AI 原生架构演进。阿里云函数计算(FC)率先提出并实践“Serverless AI 运行时”概念,通过技术创新与生态联动,为智能体(Agent)开发提供高效、安全、低成本的基础设施支持。本文从技术演进路径、核心能力及未来展望三方面解析 Serverless AI 的突破性价值。
|
4月前
|
人工智能 运维 Java
Spring AI Alibaba Admin 开源!以数据为中心的 Agent 开发平台
Spring AI Alibaba Admin 正式发布!一站式实现 Prompt 管理、动态热更新、评测集构建、自动化评估与全链路可观测,助力企业高效构建可信赖的 AI Agent 应用。开源共建,现已上线!
5586 81
|
5月前
|
存储 人工智能 Java
AI 超级智能体全栈项目阶段三:自定义 Advisor 与结构化输出实现以及对话记忆持久化开发
本文介绍如何在Spring AI中自定义Advisor实现日志记录、结构化输出、对话记忆持久化及多模态开发,结合阿里云灵积模型Qwen-Plus,提升AI应用的可维护性与功能性。
1141 125
AI 超级智能体全栈项目阶段三:自定义 Advisor 与结构化输出实现以及对话记忆持久化开发
|
5月前
|
人工智能 Rust 并行计算
AI大模型开发语言排行
AI大模型开发涉及多种编程语言:Python为主流,用于算法研发;C++/CUDA优化性能;Go/Rust用于工程部署;Java适配企业系统;Julia等小众语言用于科研探索。
1732 127
|
人工智能 自然语言处理 前端开发
产品经理也能“开发”需求?淘宝信息流从需求到上线的AI端到端实践
淘宝推荐信息流业务,常年被“需求多、技术栈杂、协作慢”困扰,需求上线周期动辄一周。WaterFlow——一套 AI 驱动的端到端开发新实践,让部分需求两天内上线,甚至产品经理也能“自产自销”需求。短短数月,已落地 30+ 需求、自动生成 5.4 万行代码,大幅提升研发效率。接下来,我们将揭秘它是如何落地并改变协作模式的。
621 37
产品经理也能“开发”需求?淘宝信息流从需求到上线的AI端到端实践
|
4月前
|
人工智能 IDE 开发工具
从6人日到1人日:一次AI驱动的客户端需求开发实战
从6人日到1人日:一次AI驱动的客户端需求开发实战
从6人日到1人日:一次AI驱动的客户端需求开发实战
|
5月前
|
人工智能 前端开发 JavaScript
前端工程化演进之路:从手工作坊到AI驱动的智能化开发
前端工程化演进之路:从手工作坊到AI驱动的智能化开发
791 18
前端工程化演进之路:从手工作坊到AI驱动的智能化开发
|
5月前
|
人工智能 负载均衡 API
Vercel 发布 AI Gateway 神器!可一键访问数百个模型,助力零门槛开发 AI 应用
大家好,我是Immerse,独立开发者、AGI实践者。分享编程、AI干货、开源项目与个人思考。关注公众号“沉浸式趣谈”,获取独家内容。Vercel新推出的AI Gateway,统一多模型API,支持自动切换、负载均衡与零加价调用,让AI开发更高效稳定。一行代码切换模型,告别接口烦恼!
634 1
Vercel 发布 AI Gateway 神器!可一键访问数百个模型,助力零门槛开发 AI 应用

热门文章

最新文章

推荐镜像

更多