Skip to content

caden1225/Wechat2Notion

Repository files navigation

微信公众号文章分析助手

一个通过微信公众号接收文章链接,使用LLM分析文章内容,并保存到Notion的Python应用。

🎯 功能特性

  • ✅ 接收微信公众号消息
  • ✅ 自动识别文章链接
  • ✅ 提取文章内容
  • ✅ 使用LangGraph实现工作流编排
  • ✅ 支持多种LLM模型(OpenRouter、智谱AI)
  • ✅ 自动保存到Notion数据库
  • ✅ 异步任务队列(Redis)
  • ✅ 文档持久化存储(MongoDB)
  • ✅ 动态配置管理(API)
  • ✅ Docker一键部署
  • ✅ 内网穿透支持(Cpolar)

🚀 快速开始

方式1:Docker部署(推荐)

最简单的部署方式,无需手动安装依赖。

# 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部署指南

方式2:本地部署

传统部署方式

1. 安装依赖

# 使用conda环境(推荐)
conda activate 312
pip install -r requirements.txt

2. 配置环境变量

复制 .env.example.env 并填写配置:

cp .env.example .env

需要配置的内容:

微信公众号配置

  1. 登录微信公众平台
  2. 进入 开发基本配置
  3. 获取以下信息:
    • WECHAT_TOKEN: 自定义Token(用于服务器验证)
    • WECHAT_APPID: 公众号AppID
    • WECHAT_APPSECRET: 公众号AppSecret
    • WECHAT_ENCODING_AES_KEY: 消息加解密密钥(可选,如果使用明文模式可以不填)

OpenRouter配置(LLM提供商)

  1. 注册OpenRouter账号并获取API密钥
  2. 配置以下环境变量:
    • 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配置

  1. Notion创建一个数据库
  2. 创建以下字段:
    • 标题 (Title类型)
    • 链接 (URL类型)
  3. 获取:
    • NOTION_API_KEY: Notion集成Token(创建Notion Integration获取)
    • NOTION_DATABASE_ID: 数据库ID(从数据库URL中获取)

3. 配置微信公众号服务器

步骤1:部署应用

你可以使用以下方式部署:

本地测试(使用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>

步骤2:在微信公众平台配置

  1. 登录微信公众平台
  2. 进入 开发基本配置
  3. 点击 修改配置
  4. 填写:
    • URL: https://yourdomain.com/wechat (你的服务器地址 + /wechat)
    • Token: 与 .env 中的 WECHAT_TOKEN 保持一致
    • EncodingAESKey: 点击"随机生成"或手动输入(与 .env 中的保持一致)
    • 消息加解密方式:
      • 选择 安全模式(推荐,需要配置 WECHAT_ENCODING_AES_KEY
      • 或选择 明文模式(开发测试用,不需要 WECHAT_ENCODING_AES_KEY
  5. 点击 提交
  6. 如果配置正确,会显示"配置成功"

4. 运行应用

python app.py

应用将在 http://0.0.0.0:5000 启动。

5. 测试

  1. 关注你的微信公众号
  2. 向公众号发送一个文章链接(如:https://example.com/article
  3. 公众号会自动处理并回复分析结果

项目结构

Wechat_Assistant/
├── app.py                      # Flask主应用
├── requirements.txt            # Python依赖
├── .env.example               # 环境变量示例(已创建)
├── .env                       # 环境变量配置(需自行创建)
├── README.md                  # 项目说明
└── services/
    ├── __init__.py
    ├── article_processor.py   # 文章提取和LLM分析服务
    └── notion_service.py      # Notion保存服务

使用说明

发送消息格式

用户可以通过以下方式发送文章链接:

  1. 直接发送链接https://example.com/article
  2. 发送链接消息:在微信中分享文章链接

处理流程

  1. 用户发送文章链接到公众号
  2. 应用接收消息并提取链接
  3. 爬取文章内容(标题、正文)
  4. 使用OpenAI GPT分析文章
  5. 将文章和分析结果保存到Notion
  6. 向用户回复处理结果

常见问题

Q: 如何获取Notion Database ID?

A: 打开你的Notion数据库,URL格式为:

https://www.notion.so/workspace/DATABASE_ID?v=...

其中 DATABASE_ID 就是数据库ID(32位字符串,可能包含连字符)。

Q: 如何创建Notion Integration?

A:

  1. 访问 https://www.notion.so/my-integrations
  2. 点击 "New integration"
  3. 填写名称和选择工作区
  4. 复制 "Internal Integration Token"
  5. 在数据库页面,点击右上角 "..." → "Connections" → 添加你的Integration

Q: 服务器验证失败怎么办?

A:

  • 检查Token是否与微信公众平台配置一致
  • 确保服务器可以公网访问
  • 检查URL是否正确(必须是HTTPS)
  • 查看应用日志中的错误信息

Q: 如何查看日志?

A: 应用运行时会输出日志到控制台,包括:

  • 接收到的消息
  • 处理过程中的错误
  • API调用结果

开发计划

  • 支持更多文章网站
  • 添加文章分类功能
  • 支持批量处理
  • 添加用户管理
  • 优化错误处理

许可证

MIT License

About

Crawl the document form links to Notion~

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors