Files
ai-shiliu/README.md
figmar 3a545e391a docs: 添加项目 README
包含功能介绍、技术栈、目录结构、快速开始、环境变量配置、工作原理说明。

🤖 Generated with [Qoder][https://qoder.com]
2026-05-30 15:30:36 +08:00

5.2 KiB
Raw Permalink Blame History

识流 AI 助手

基于截图 + OCR 的微信自动回复机器人,支持关键词规则匹配和 AI 智能回复。

仅支持 Windows,需要桌面端微信同时运行。


功能特性

  • 自动监听未读消息:通过截图 + OCR 识别微信会话列表中的未读消息
  • 关键词规则回复:支持「包含匹配」和「精确匹配」两种规则类型
  • AI 智能回复:支持接入 OpenAI / DeepSeek / Dify无规则命中时自动调用 AI 回复
  • 消息记录:所有收发消息入库存储,支持查询历史记录
  • 管理界面:内置 Web 控制台,可管理规则、查看消息、查看运行日志
  • 可视化日志:结构化日志系统,支持按模块、级别、关键词筛选

技术栈

层次 技术
桌面 GUI PySide6 (Qt6) + QWebEngineView
后端服务 Python / Flask
前端界面 Vue 3 + Vite
数据库 SQLite本地存储
OCR 引擎 RapidOCR + ONNX RuntimePP-OCRv4
AI 接入 OpenAI / DeepSeek / Dify可配置
桌面打包 Tauri备选方案

目录结构

├── main.py                  # 桌面 GUI 启动入口
├── backend_main.py          # Flask 后端启动入口
├── requirements.txt         # Python 依赖
├── app/
│   ├── application/         # 应用层配置、Bot 控制器
│   ├── infrastructure/
│   │   ├── backend.py       # Flask 服务启动
│   │   ├── router/          # API 路由rules / messages / bot
│   │   ├── service/
│   │   │   ├── backend/     # AI 调用、数据库、配置读取
│   │   │   ├── wechat/      # 截图、OCR、会话分析、聊天快照
│   │   │   └── logging/     # 结构化日志服务
│   │   └── wechat_multi_chat_bot.py  # Bot 主循环
│   ├── presentation/        # GUI 主窗口、加载窗口
│   └── resources/
│       └── ocr_models/      # OCR 模型文件(需单独下载)
├── frontend/
│   ├── src/                 # Vue 3 前端源码
│   └── dist/                # 构建产物(随代码附带)
├── vendor/
│   └── paddleocr/           # PaddleOCR 模型(需单独下载)
└── legacy/                  # 旧版 PHP 实现(已弃用,仅供参考)

快速开始

环境要求

  • Windows 10 / 1164位
  • Python 3.11+
  • 桌面端微信(已登录)

安装依赖

# 创建虚拟环境
python -m venv .venv
.venv\Scripts\activate

# 安装依赖
pip install -r requirements.txt

配置环境变量

在项目根目录创建 .env 文件:

# 服务地址(默认即可)
APP_HOST=127.0.0.1
APP_PORT=5000

# AI 提供商openai / deepseek / dify / mock
AI_PROVIDER=deepseek

# DeepSeek
DEEPSEEK_API_KEY=your_api_key
DEEPSEEK_API_BASE=https://api.deepseek.com/v1
DEEPSEEK_MODEL=deepseek-chat

# OpenAI使用 openai 时填写)
# OPENAI_API_KEY=your_api_key
# OPENAI_API_BASE=https://api.openai.com/v1
# OPENAI_MODEL=gpt-4o-mini

# Dify使用 dify 时填写)
# DIFY_API_KEY=your_api_key
# DIFY_API_BASE=https://api.dify.ai/v1
# DIFY_USER=user

# 微信窗口位置(可根据实际屏幕分辨率调整)
WECHAT_WINDOW_TARGET_WIDTH=1080
WECHAT_WINDOW_TARGET_HEIGHT=820
WECHAT_WINDOW_TARGET_LEFT=120
WECHAT_WINDOW_TARGET_TOP=80

下载 OCR 模型

OCR 模型文件体积较大,不纳入版本控制,需手动放置:

app/resources/ocr_models/
├── ch_PP-OCRv4_det.onnx     # 文字检测模型
├── ch_PP-OCRv4_rec.onnx     # 文字识别模型
└── ch_ppocr_mobile_v2.0_cls.onnx  # 方向分类模型

可从 PaddleOCR 官方 或项目发布页下载。

启动应用

# 启动桌面 GUI自动拉起后端服务
python main.py

# 或单独启动后端服务
python backend_main.py

启动后浏览器访问 http://127.0.0.1:5000 可打开管理控制台。


管理控制台

页面 功能
控制面板 启动/停止监听、开关自动回复、开关全自动 AI 回复
回复规则 新增/编辑/删除关键词规则,支持包含/精确两种匹配
消息记录 查看所有收发消息,含 OCR 置信度、回复策略等信息
运行日志 查看结构化运行日志,支持按模块和级别过滤

工作原理

Bot 主循环
  ↓ 每隔 3 秒
截图微信会话列表 → OCR 识别 → 找到未读会话
  ↓ 点击会话
截图聊天区域 → 提取最新一条消息文本(对方发送)
  ↓ POST /api/messages/receive
关键词规则匹配
  ├─ 命中 → 直接回复规则内容
  └─ 未命中 + 全自动开启 → 调用 AI 生成回复
  ↓ should_reply = true
pyautogui 模拟输入 → 剪贴板粘贴 → 回车发送

注意事项

  • 运行期间请勿手动操作微信窗口,避免与 Bot 产生冲突
  • 建议在专用电脑或虚拟机上运行,避免影响日常使用
  • 数据库文件存储在 %LOCALAPPDATA%\AiShiliu\ai_shiliu.sqlite3
  • AI_PROVIDER=mock 可用于本地测试,不调用真实 AI 接口