一个通过微信公众号接收文章链接,使用LLM分析文章内容,并保存到Notion的Python应用。
- ✅ 接收微信公众号消息
- ✅ 自动识别文章链接
- ✅ 提取文章内容
- ✅ 使用LangGraph实现工作流编排
- ✅ 支持多种LLM模型(OpenRouter、智谱AI)
- ✅ 自动保存到Notion数据库
- ✅ 异步任务队列(Redis)
- ✅ 文档持久化存储(MongoDB)
- ✅ 动态配置管理(API)
- ✅ Docker一键部署
- ✅ 内网穿透支持(Cpolar)
最简单的部署方式,无需手动安装依赖。
# 1. 克隆项目
git clone <repository_url>
cd Wechat_Assistant
# 2. 初始化配置
./docker.sh init
# 3. 编辑配置文件
vim .env # 配置微信公众号、LLM等
vim cpolar.yml # 配置内网穿透(可选)
# 4. 启动服务
./docker.sh start
# 5. 查看状态
./docker.sh status
# 6. 查看日志
./docker.sh logs详细文档:Docker部署指南
# 使用conda环境(推荐)
conda activate 312
pip install -r requirements.txt复制 .env.example 为 .env 并填写配置:
cp .env.example .env需要配置的内容:
- 登录微信公众平台
- 进入 开发 → 基本配置
- 获取以下信息:
WECHAT_TOKEN: 自定义Token(用于服务器验证)WECHAT_APPID: 公众号AppIDWECHAT_APPSECRET: 公众号AppSecretWECHAT_ENCODING_AES_KEY: 消息加解密密钥(可选,如果使用明文模式可以不填)
- 注册OpenRouter账号并获取API密钥
- 配置以下环境变量:
OPENROUTER_API_KEY: 你的OpenRouter API密钥(必需)OPENROUTER_MODEL: 使用的模型(默认:openai/gpt-4-turbo)- 可选模型示例:
openai/gpt-4-turbo,anthropic/claude-3-opus,google/gemini-pro等
- 可选模型示例:
OPENROUTER_BASE_URL: API基础URL(默认:https://openrouter.ai/api/v1)OPENROUTER_TEMPERATURE: 温度参数(默认:0.7)OPENROUTER_MAX_TOKENS: 最大token数(默认:2000)OPENROUTER_HTTP_REFERER: HTTP Referer(可选)OPENROUTER_X_TITLE: 应用标题(默认:Wechat Assistant)
- 在Notion创建一个数据库
- 创建以下字段:
标题(Title类型)链接(URL类型)
- 获取:
NOTION_API_KEY: Notion集成Token(创建Notion Integration获取)NOTION_DATABASE_ID: 数据库ID(从数据库URL中获取)
你可以使用以下方式部署:
本地测试(使用cpolar):
# 安装cpolar
# Mac: brew install cpolar
# Linux: curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
# 启动应用
python app.py
# 在另一个终端启动cpolar
cpolar http 5000
# 复制cpolar提供的HTTPS URL,例如:https://abc123.cpolar.cn生产环境(使用Apache):
- 部署到云服务器(如阿里云、腾讯云)
- 使用Apache作为反向代理服务器
- 配置域名和HTTPS证书
Apache配置示例(/etc/apache2/sites-available/wechat-assistant.conf):
<VirtualHost *:80>
ServerName yourdomain.com
Redirect permanent / https://yourdomain.com/
</VirtualHost>
<VirtualHost *:443>
ServerName yourdomain.com
SSLEngine on
SSCertificateFile /path/to/cert.pem
SSLCertificateKeyFile /path/to/key.pem
ProxyPreserveHost On
ProxyPass /wechat http://localhost:5000/wechat
ProxyPassReverse /wechat http://localhost:5000/wechat
</VirtualHost>- 登录微信公众平台
- 进入 开发 → 基本配置
- 点击 修改配置
- 填写:
- URL:
https://yourdomain.com/wechat(你的服务器地址 + /wechat) - Token: 与
.env中的WECHAT_TOKEN保持一致 - EncodingAESKey: 点击"随机生成"或手动输入(与
.env中的保持一致) - 消息加解密方式:
- 选择 安全模式(推荐,需要配置
WECHAT_ENCODING_AES_KEY) - 或选择 明文模式(开发测试用,不需要
WECHAT_ENCODING_AES_KEY)
- 选择 安全模式(推荐,需要配置
- URL:
- 点击 提交
- 如果配置正确,会显示"配置成功"
python app.py应用将在 http://0.0.0.0:5000 启动。
- 关注你的微信公众号
- 向公众号发送一个文章链接(如:
https://example.com/article) - 公众号会自动处理并回复分析结果
Wechat_Assistant/
├── app.py # Flask主应用
├── requirements.txt # Python依赖
├── .env.example # 环境变量示例(已创建)
├── .env # 环境变量配置(需自行创建)
├── README.md # 项目说明
└── services/
├── __init__.py
├── article_processor.py # 文章提取和LLM分析服务
└── notion_service.py # Notion保存服务
用户可以通过以下方式发送文章链接:
- 直接发送链接:
https://example.com/article - 发送链接消息:在微信中分享文章链接
- 用户发送文章链接到公众号
- 应用接收消息并提取链接
- 爬取文章内容(标题、正文)
- 使用OpenAI GPT分析文章
- 将文章和分析结果保存到Notion
- 向用户回复处理结果
A: 打开你的Notion数据库,URL格式为:
https://www.notion.so/workspace/DATABASE_ID?v=...
其中 DATABASE_ID 就是数据库ID(32位字符串,可能包含连字符)。
A:
- 访问 https://www.notion.so/my-integrations
- 点击 "New integration"
- 填写名称和选择工作区
- 复制 "Internal Integration Token"
- 在数据库页面,点击右上角 "..." → "Connections" → 添加你的Integration
A:
- 检查Token是否与微信公众平台配置一致
- 确保服务器可以公网访问
- 检查URL是否正确(必须是HTTPS)
- 查看应用日志中的错误信息
A: 应用运行时会输出日志到控制台,包括:
- 接收到的消息
- 处理过程中的错误
- API调用结果
- 支持更多文章网站
- 添加文章分类功能
- 支持批量处理
- 添加用户管理
- 优化错误处理
MIT License