# 公众号推送 **Repository Path**: rr84/Filter-WeChat-Content ## Basic Information - **Project Name**: 公众号推送 - **Description**: 基于开源项目WeRss(自动抓取订阅的公众号文章),AI 按标签分类提取关键信息,推送到飞书 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-25 - **Last Updated**: 2026-07-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 公众号订阅 + AI 整理 抓取已订阅的微信公众号文章,本地 Python 进程用 AI 分类和提取关键信息,再推送到飞书/钉钉/企微。 ## 前提 - Docker Desktop - Python 3.13+ - LLM API Key - 飞书/钉钉/企微机器人 Webhook - 已注册的微信公众平台账号 ## 部署 ### 1. 配置环境变量 ```powershell copy .env.example .env ``` 编辑 `.env`,至少填写: ```env LLM_API_KEY=sk-xxx PUSH_WEBHOOK_URL=https://open.feishu.cn/open-apis/bot/v2/hook/xxx ``` ### 2. 启动 WeRSS 在项目根目录执行: ```powershell docker run -d --name we-rss -p 8001:8001 -v "%cd%/we-rss-data:/app/data" -e DB=sqlite:////app/data/db.db -e ENABLE_JOB=true docker.1ms.run/rachelos/we-mp-rss:latest ``` ### 3. 扫码授权 浏览器打开: ```text http://localhost:8001 ``` 扫码登录微信公众平台账号,然后在 WeRSS 页面添加需要订阅的公众号。 ### 4. 安装 Python 依赖 项目使用 EasyOCR 提取图片文字,需要 PyTorch GPU 版。先检测 GPU: ```powershell nvidia-smi ``` #### 有 GPU(推荐) 先安装 CUDA 版 PyTorch,再安装其他依赖: ```powershell pip install torch torchvision --index-url https://download.pytorch.org/whl/cu118 cd ai-processor pip install -r requirements.txt ``` > PyPI 默认的 `torch` 是 CPU-only。CUDA 版必须指定官方索引,否则装不上 GPU 或 DLL 加载失败。 > > 如果网络不稳定(2.8GB),可用 curl 续传: > ```powershell > curl -L -C - -o torch_cu118.whl "https://mirrors.aliyun.com/pytorch-wheels/cu118/torch-2.7.1%2Bcu118-cp311-cp311-win_amd64.whl" --retry 999 --retry-delay 5 > mv torch_cu118.whl torch-2.7.1+cu118-cp311-cp311-win_amd64.whl > pip install torch-2.7.1+cu118-cp311-cp311-win_amd64.whl > pip install torchvision --index-url https://download.pytorch.org/whl/cu118 > ``` #### 无 GPU(CPU-only,需确认降级) ```powershell cd ai-processor pip install -r requirements.txt ``` ### 5. 验证环境 安装完成后,确认全链路可用: ```powershell python -c "import torch; print('CUDA:', torch.cuda.is_available()); import easyocr; r = easyocr.Reader(['ch_sim','en'], gpu=torch.cuda.is_available()); print('EasyOCR OK, device:', r.device)" ``` - 输出 `CUDA: True` — GPU 可用 - 输出 `EasyOCR OK, device: cuda` — 模型已下载、OCR 就绪 - 首次运行会自动下载中文/英文识别模型到 `~/.EasyOCR/model/`(约 500MB) ### 6. 启动 AI 处理器 ```powershell cd ai-processor python main.py ``` 启动后,新文章会按轮询间隔处理并推送。 ## 微信授权提醒 微信授权有效期约 3 天。AI 处理器会读取: ```text we-rss-data/wx.lic ``` 根据其中的授权过期时间,在过期前 12 小时进入提醒窗口,并只在 `09:00-21:00` 之间推送提醒。授权已过期时会推送过期提醒,并跳过本轮文章同步。 如果修改了 WeRSS 数据目录位置,需要同步修改 `.env` 中的: ```env WERSS_AUTH_STATE_PATH=../we-rss-data/wx.lic ``` ## 配置项 | 环境变量 | 必填 | 默认值 | 说明 | |----------|------|--------|------| | `LLM_API_KEY` | 是 | — | LLM API Key | | `PUSH_WEBHOOK_URL` | 是 | — | 飞书/钉钉/企微机器人 Webhook | | `LLM_MODEL` | 否 | `claude-sonnet-4-6` | LLM 模型名称 | | `LLM_BASE_URL` | 否 | `https://api.anthropic.com` | LLM API 地址 | | `PUSH_TYPE` | 否 | `feishu` | `feishu` / `dingtalk` / `wecom` | | `POLL_INTERVAL_MINUTES` | 否 | `30` | 轮询间隔,单位分钟 | | `WERSS_BASE_URL` | 否 | `http://localhost:8001` | WeRSS 地址 | | `WERSS_USERNAME` | 否 | `admin` | WeRSS API 用户名 | | `WERSS_PASSWORD` | 否 | `admin@123` | WeRSS API 密码 | | `WERSS_AUTH_STATE_PATH` | 否 | `../we-rss-data/wx.lic` | WeRSS 微信授权状态文件路径 |