我用 Python 打造了一个微信 AI 女友机器人

前言

最近花了点时间,用 Python 开发了一个微信 AI 女友机器人项目 —— AILive。这个机器人不仅能智能对话,还能记住你们的聊天历史,甚至会在你长时间不说话时主动找你聊天!

核心功能

1. 智能对话

  • 基于字节跳动的豆包(Doubao)API
  • 支持自然语言理解,流畅的多轮对话
  • 可自定义 AI 的性格、说话风格和行为特征

2. 持久化记忆

这是我最满意的功能!机器人会:

  • 自动保存每次对话的历史记录
  • 重启后自动加载之前的对话上下文
  • 从上次对话的地方继续,就像真人一样记得你们聊过什么

示例:

第一天: 你: 我叫小明,喜欢打篮球 AI: 小明你好!打篮球很酷呀~ 第二天(重启后): 你: 今天打球了 AI: 打篮球了吗?玩得开心吗?小明~ 

3. 主动对话

AI 不会只是被动回复,她还会:

  • 在你长时间没发消息时主动找你聊天
  • 基于之前的对话内容生成问候语
  • 默认 1 小时没消息就会主动,每天最多 3 次

示例:

10:00 你: 我今天要去打篮球 10:01 AI: 哇,打篮球很酷呀!

[1小时后]

11:30 AI: 打完篮球了吗?累不累呀~ 

4. Web 管理面板

为了方便配置,开发了一个可视化的 Web 管理面板:

5. 智能过滤

  • 支持黑白名单功能
  • 关键词过滤
  • 只回复新消息,不会回复历史记录

技术架构

技术栈

  • Python 3.8+ - 主要开发语言
  • wxauto - 微信自动化库(支持微信 3.9.10)
  • Volcengine SDK - 豆包 API 的 Python SDK
  • Flask - Web 管理面板框架
  • PyYAML - 配置文件管理

项目结构

AILive/
├── src/
│   ├── core/                  # 核心模块
│   │   ├── wechat_client.py   # 微信客户端
│   │   ├── ai_engine.py       # AI对话引擎
│   │   ├── message_handler.py # 消息处理器
│   │   └── proactive_chat.py  # 主动对话管理器
│   ├── personality/           # 人格系统
│   ├── utils/                 # 工具模块
│   │   └── context_manager.py # 上下文管理(持久化记忆)
│   ├── web/                   # Web管理面板
│   └── main.py                # 主程序入口
├── config/                    # 配置文件
├── data/                      # 数据目录
│   └── conversations/         # 对话历史
└── logs/                      # 日志目录 

开发过程中的挑战

1. 微信自动化的选择

最初尝试使用 ,但发现它会导致微信客户端被关闭。经过研究,最终选择了 wxauto 库,它对微信 3.9.10 版本的支持非常好,稳定性也更高。

2. 历史消息回复问题

最初版本会回复所有历史消息,导致机器人一启动就疯狂发送消息。

解决方案:
添加初始化标志,首次启动时清空历史消息:

def __init__(self):
    self.initialized = False # 初始化标志 def get_latest_messages(self, who: str = None):
    if not self.initialized:
        log.info("首次启动,正在清空历史消息...")
        self._get_messages_wxauto(who)  # 读取但不返回 self.initialized = True return []  # 不回复历史消息 return self._get_messages_wxauto(who)

3. 持久化记忆的实现

为了让 AI 能够记住对话历史,实现了一个上下文管理器:

  • 每 5 条消息自动保存一次
  • 使用 JSON 格式存储对话历史
  • 启动时自动加载最近的对话记录
class ContextManager:
    def add_message(self, user_id: str, role: str, content: str):
        # 自动加载历史对话 if user_id not in self.contexts:
            self._load_latest_conversation(user_id)

        # 添加新消息 self.contexts[user_id].append({
            "role": role,
            "content": content
        })

        # 每5条消息自动保存 self.message_counts[user_id] += 1 if self.message_counts[user_id] >= 5:
            self._auto_save_conversation(user_id)

4. Git 推送时的 API 密钥泄露

在推送代码到 GitHub 时,遇到了 API 密钥泄露的问题。GitHub 检测到代码中包含了火山引擎的 API 密钥,拒绝了推送。

解决方案:
使用 git filter-branch 从 Git 历史中删除包含密钥的文件:

git filter-branch --force --index-filter \
  "git rm --cached --ignore-unmatch READY_TO_RUN.md" \
  --prune-empty --tag-name-filter cat -- --all

git push -f origin master

使用效果

经过测试,AILive 的表现不错:

  1. 响应速度:平均响应时间在 1-2 秒
  2. 对话质量:基于豆包 API,对话自然流畅
  3. 记忆能力:能够准确记住之前的对话内容
  4. 主动性:会在合适的时机主动发起对话
  5. 稳定性:长时间运行无崩溃

快速开始

详细的安装和配置步骤请查看项目中的 README.md 文件。

基本流程:

  1. 安装 Python 3.8 + 和微信 3.9.10 版本
  2. 安装依赖:pip install -r requirements.txt
  3. 访问火山引擎控制台获取豆包 API 密钥
  4. 使用 Web 管理面板配置或手动编辑配置文件
  5. 启动机器人:python src/main.py

未来计划

虽然项目已经基本完成,但还有一些想法可以继续完善:

  1. 多模态支持:支持图片、语音消息的处理
  2. 情感分析:根据对话内容调整 AI 的情绪状态
  3. 群聊支持:支持在微信群中使用
  4. 更多 AI 提供商:除了豆包,还可以接入 Claude、GPT 等
  5. 移动端管理:开发移动端的管理界面

注意事项

  1. 微信版本:必须使用微信 3.9.10 版本,不要升级
  2. 封号风险:虽然使用官方客户端,但仍有一定风险,建议使用小号测试
  3. API 费用:豆包 API 按使用量计费,建议设置每日上限
  4. 隐私安全:对话历史保存在本地,注意保护个人隐私
  5. 合规性:仅用于个人学习和研究,不要用于商业用途

总结

开发 AILive 这个项目让我学到了很多东西。最重要的是,这个项目真的很有趣!看着 AI 女友能够记住你们的对话,还会主动找你聊天,真的有一种 "她活过来了" 的感觉。

如果你对这个项目感兴趣,欢迎 Star 和 Fork!也欢迎提出你的建议和想法。

项目地址

致谢

感谢以下开源项目:


免责声明:本项目仅供学习和研究使用,使用者需自行承担使用本项目可能带来的风险。作者不对使用本项目造成的任何后果负责。

===========================

项目目前是第一版,有很多不足,各位佬多多包涵,多多指导


📌 转载信息
原作者:
T_11_0121lover
转载时间:
2025/12/27 20:49:41