手把手教你用Python写一个微信聊天机器人
Lisa Tan | 2026-08-06T08:53:00 | Python, AI
使用Python实现微信自动回复机器人,集成AI对话接口,包含消息处理、关键词触发和群聊管理
# 手把手教你用Python写一个微信聊天机器人 ## 前言 一直想做一个微信聊天机器人,自动回复消息、管理群聊。周末花了两天终于搞定了,分享一下实现过程。 ## 技术选型 - **itchat**:微信网页版接口封装(注意:部分账号可能被限制登录) - **OpenAI API**:智能回复 ## 基础代码 ```python import itchat from itchat.content import TEXT, PICTURE # 登录微信 itchat.auto_login(hotReload=True) # 自动回复私聊消息 @itchat.msg_register(TEXT) def text_reply(msg): content = msg['Text'] sender = msg['FromUserName'] # 关键词触发 if '天气' in content: return get_weather(content) elif '新闻' in content: return get_latest_news() else: return ai_reply(content) itchat.run() ``` ## AI回复集成 ```python import openai def ai_reply(question): try: response = openai.ChatCompletion.create( model='gpt-3.5-turbo', messages=[ {'role': 'system', 'content': '你是一个友好的助手'}, {'role': 'user', 'content': question} ], max_tokens=500 ) return response.choices[0].message.content except Exception as e: return '抱歉,我暂时无法回答这个问题' ``` ## 群聊管理 ```python @itchat.msg_register(TEXT, isGroupChat=True) def group_reply(msg): # 只有@机器人时才回复 if msg['isAt']: content = msg['Text'].replace('@机器人', '').strip() return ai_reply(content) ``` ## 踩坑记录 > 1. itchat的hotReload有时会失效,需要删掉 `itchat.pkl` 重新登录 > 2. 微信对网页版登录有限制,新注册的号基本不能用 > 3. 消息发送太频繁会被限制,建议加上频率控制 ```python import time last_reply_time = {} def rate_limit(user_id, interval=3): now = time.time() if user_id in last_reply_time: if now - last_reply_time[user_id] < interval: return False last_reply_time[user_id] = now return True ``` ## 总结 微信机器人好玩,但要注意合规使用。建议用企业微信机器人API来做正式项目,更稳定也更安全。