WeChatMPCopilot 是一个自动化工具,旨在帮助用户通过微信公众平台 API 自动发布文章。该工具支持从关键词或标题生成文章内容,并通过 AI 模型(如 GPT)生成高质量的文章。此外,它还集成了图片上传、草稿保存和文章发布的完整流程。
主要功能包括:
关键词提取:基于 KeyBERT 和 TextRank 算法提取文章关键词。
AI 内容生成:通过 OpenAI 或其他大模型生成文章标题和内容。
微信公众号集成:自动上传图片、保存草稿并发布文章。
多语言支持:支持中文和英文内容生成。
SEO 优化:生成的内容符合 SEO 最佳实践,提升文章曝光率。
安装
uv工具(如果尚未安装):pip install uv
使用
uv添加依赖包:uv add httpx[http2,http3] keybert scikit-learn jieba nltk fuzzywuzzy python-Levenshtein markdown pygments pymdown-extensions markdownify openai pandas
或者使用
requirements.txt安装依赖:uv pip install -r requirements.txt
导出依赖包:
uv pip freeze | uv pip compile - -o requirements.txt
你也可以手动安装所有依赖包:
pip install httpx[http2,http3] keybert scikit-learn jieba nltk fuzzywuzzy python-Levenshtein markdown pygments pymdown-extensions markdownify openai pandasconfig.json 文件包含项目的全局配置信息,包括微信公众号 API 的凭据、GPT 模型的配置以及文章生成的相关参数。以下是一个示例配置:
{"gpts": [{"baseurl": "http://127.0.0.1:11434/v1",//API接口地址,/chat/completions 前部分"apikey": ["EMPTY"],"models": ["deepseek-r1:latest"// GPT模型,列表引入,可以多个]}],"stopk": {"cn": "ChineseStopWords.txt",// 停用词文件路径"en": "EnglishStopWords.txt"// 停用词文件路径},"mps": [{"name": "吴罗平",// 公众号名称"appid": "",// 公众号 AppID"secret": "",// 公众号 AppSecret"baseurl": "https://api.weixin.qq.com",// 微信公众号 API 接口地址"lang": "中文",// 文章语言类型"aitags": true,// 是否使用GPT生成标签"aiexcerpt": true,// 是否使用GPT生成摘要"draft": false,// 是否上传草稿"publish": false,// 是否发布文章"keys": "keywords.txt",// 关键词文件路径// reqkeys: 核心关键词列表(影响分词结果,不是必须)"reqkeys": ["SEO","网站建设","网络营销","网站优化","网站推广","网站流量","网站运营","微信公众号"],"number": 3,// 每次最多生成文章数量"source_url": "",// 阅读原文 链接"author": "lopins",// 文章作者// 图片素材,从微信公众号素材库上传的图片素材ID(需要自己获取,本项目不提供:因为不是所有人都需要,关键词:素材ID)"media_ids": {"睡眠障碍(失眠)": "noV6uipu7YVLwbb16HbFYSJcwovsmrtAZjWhdKD_C1iCmv93lLTq6R7SdX3nOGN4","尿毒症": "noV6uipu7YVLwbb16HbFYYhQUy0at2Acn1ht3318BxHkwLmRrbuQuDu8Lzr59ERI","夫妻生活(两性)": "noV6uipu7YVLwbb16HbFYQVpJtBLVwJKybqkKFpo96Os5RohFpI5rCPeKELn_o1S","糖尿病(胰岛素)": "noV6uipu7YVLwbb16HbFYe9djnLaHk18OCw4cknHNsJ0VbRar092a4bIPwUc0f7w","美容抗衰 (国内)": "noV6uipu7YVLwbb16HbFYQzLytsMtfsdzQyCjZpNcVEs0WiB7Lo1v32QdzgbMnKc","关节炎(膝关节)": "noV6uipu7YVLwbb16HbFYey40BtXdboB-AMCY676hm03DHYL75xQZRgkoyUG05sZ","肝硬化": "noV6uipu7YVLwbb16HbFYT7zdck2-QW976rR7GOf8SrdtKgrmYYA9sQXoxoAdSvJ","肺(慢阻肺)": "noV6uipu7YVLwbb16HbFYWCcrIMhAqoJy5rI8E1cPfNLKxkipA_UKuJXuDcG00AF","干细胞VS免疫细胞": "noV6uipu7YVLwbb16HbFYWG-pc3sXRiIfHbob7hOL_AKHzEy5KTRYWxz1rXK9mT7","糖尿病": "noV6uipu7YVLwbb16HbFYaPeSVbgF2YVuNkmlANgjfNuEtg6kAk-O1Y4Si1UEAMx","癌症": "noV6uipu7YVLwbb16HbFYXKd9m8rHIRJDmZypQ7vtLIAz_hBgVKY8QRLRwHax9Wv","肺病": "noV6uipu7YVLwbb16HbFYcgFYLcRdkb3qhzX3QLVCrYdFNfvXDGFSiFLIbLRWNhH","干细胞": "noV6uipu7YVLwbb16HbFYXtLjpxmeESofvTgSA9NuT223w2qciBmsIV0rnue5XsF","好孕、怀孕、备孕": "noV6uipu7YVLwbb16HbFYelF4g4clOcXSvhh0_DD1Mku_-aDB7g0Ry7zGJtrisa3","医院": "noV6uipu7YVLwbb16HbFYSUwXbLJ_IaR3SMK1SrOEdD4LF5O9TEKV6SyE2U4EKcN"},"service_ad": "",// 服务广告(HTML源码:注意转义防止json识别报错)"contact_us": "",// 联系我们(HTML源码:注意转义防止json识别报错)"bottom_ad_top": "",// 底部广告(HTML源码:注意转义防止json识别报错)"bottom_ad_bottom": "",// 底部广告(HTML源码:注意转义防止json识别报错)"followme": ""// 公众号关注Banner(HTML源码:从公众号编辑器F12方式获取,注意转义防止json识别报错)}]}gpts: 包含 GPT 模型的配置,如 API 地址、密钥、模型列表等。mps: 包含微信公众平台的配置,如 AppID、AppSecret、媒体 ID 映射等。stopk: 停用词文件路径,用于分词和关键词提取。
确保已安装所有依赖。
配置
config.json文件,填写正确的微信公众平台凭据和 GPT 模型信息。运行脚本:
python main.py
日志信息将输出到控制台,方便调试和监控程序运行状态。
通过微信公众平台 API 获取 Access Token,用于后续的草稿上传和文章发布操作。
token_status, token=wechat.get_wechatmp_token() ifnottoken_status: logging.error("获取 Access Token 失败")将本地图片上传至微信公众平台,并返回媒体 ID。
image_status, media_id=upload_wechatmp_image(token, "path/to/image.jpg") ifnotimage_status: logging.error("图片上传失败")通过 AI 模型生成文章标题和内容,并提取 SEO 关键词。
title=Extensions.get_gpt_generation(keyword="人工智能", lang="zh", mode="title") content=Extensions.get_gpt_generation(keyword=title, lang="zh", mode="body") tags=Extensions.extract_keywords(content, require_words=["人工智能", "机器学习"])将生成的文章保存为微信公众平台的草稿。
draft_status, draft_id=wechat.get_wechatmp_draft(articles) ifnotdraft_status: logging.error("保存草稿失败")将草稿发布为正式文章。
publish_status, publish_id=wechat.get_wechatmp_publish(draft_id) ifnotpublish_status: logging.error("文章发布失败")WeChatMP-AutoPost/ ├── main.py # 主程序入口 ├── config.json # 配置文件 ├── ChineseStopWords.txt # 中文停用词文件 ├── EnglishStopWords.txt # 英文停用词文件 ├── keywords.txt # 关键词列表 ├── required_keywords.txt # 必要关键词列表 └── article/ # 生成的文章备份目录 A: 编辑 config.json 文件,在 gpts 字段中添加新的模型配置。例如:
{"baseurl": "https://new-model-provider.com/api", "apikey": ["new-api-key"], "models": [], "fee_type": "free", "from_type": "text", "to_type": "text", "min_tokens": 4096 }后四个参数为非必填项,可自行添加。
A: 脚本会自动上传图片并返回媒体 ID。确保图片路径正确,或者在 config.json 中配置媒体 ID 映射(从微信公众平台通过API获取)。
A: 修改 Extensions.get_gpt_generation 方法中的提示模板(prompts),以适应不同的写作风格和需求。
Fork 项目到你的 GitHub 账户。
Clone 你的 Fork 到本地:
git clone https://github.com/yourusername/WeChatMP-AutoPost.git cd WeChatMP-AutoPost创建 一个新的分支:
git checkout -b feature/your-feature
提交 你的更改:
git add . git commit -m "Add your feature"
Push 到你的分支:
git push origin feature/your-feature
打开一个 Pull Request 到
main分支。
本项目采用 MIT 许可证。
希望这个 README.md 文档能够帮助用户更好地理解和使用你的项目!如果有任何补充或修改需求,请随时告知。
