在开始写作流程前,直接询问用户是否已配置好以下环境:
📋 运行前检查
请确认以下环境是否已配置好:
1. ✅ Python 3.x 已安装
└─ 作用:运行所有 API 脚本(获取 Token、上传图片、创建草稿等)
2. ✅ 环境变量 APPID(微信公众号 AppID)
└─ 作用:微信公众号的唯一标识,调用 API 时必需
3. ✅ 环境变量 APPSECRET(微信公众号 AppSecret)
└─ 作用:微信公众号的密钥,用于获取 Access Token(相当于登录密码)
4. ✅ 环境变量 ARK_API_KEY(火山方舟 API Key)
└─ 作用:调用火山方舟豆包 Seedream 模型生成文章配图
5. ✅ 公众号 API IP 白名单已配置(添加你的网络出口 IP)
└─ 作用:微信公众号的安全机制,只允许白名单内的 IP 调用 API
如全部配置好,回复"已配置好"直接开始。
如有未配置的,告诉我哪一项,我会指导你如何获取。
用户回复后的处理:
信息收集原则:
基于收集的信息,向用户展示选题定位建议:
📍 选题定位建议
**核心主题**:{一句话概括主题}
**目标受众**:{读者群体画像}
**文章定位**:
- 类型:{科普/分析/评论/教程}
- 风格:{专业严谨/轻松幽默/深度思考}
- 价值:{读者能获得什么}
**核心观点**:{一句话表达核心立场}
---
请确认这个选题定位是否符合你的预期?
回复"同意"继续,或提出修改意见。
用户确认 → 进入下一步
用户反对 → 重新调整选题定位
生成 3-5 个备选标题(标题不要超过32个字符,中文每个字符计1,英文和数字每个计1):
📝 备选标题(请选择或修改)
1. {标题 1 - 突出冲突/反差}
2. {标题 2 - 突出数据/事实}
3. {标题 3 - 突出悬念/疑问}
4. {标题 4 - 突出价值/收益}
5. {标题 5 - 突出情感/共鸣}
---
请选择一个标题(回复序号),或提出修改意见。
用户选择 → 进入下一步
用户不满意 → 重新生成标题
基于选定的标题,构建文章结构:
📋 文章结构框架
**选定标题**:{用户选择的标题}
**核心观点**:{一句话概括}
**结构大纲**:
├── 引言(约 200 字)
│ └── {开头方式:现象/数据/故事/问题}
├── 分论点 1(约 500 字)
│ ├── 观点:...
│ └── 论据:{数据/案例/引用}
├── 分论点 2(约 500 字)
│ ├── 观点:...
│ └── 论据:{数据/案例/引用}
├── 分论点 3(约 500 字)
│ ├── 观点:...
│ └── 论据:{数据/案例/引用}
└── 总结(约 200 字)
└── {升华观点/引发思考/行动建议}
**配图规划**:
- 封面图:{主题关键词}
- 正文配图 1:{对应分论点 1}
- 正文配图 2:{对应分论点 2}
- 正文配图 3:{对应分论点 3}
---
请确认这个结构框架是否合理?
回复"同意"继续,或提出修改意见。
用户确认 → 进入下一步
用户反对 → 重新调整框架
按照确认的框架撰写全文:
✍️ 文章初稿已完成
**标题**:{选定标题}
**字数**:约{XXX}字
**结构**:引言 + {X}个分论点 + 总结
**配图标记**:{X}处 [IMG:描述]
**文章内容**:
{完整文章 Markdown}
---
请审阅文章初稿:
- 如满意,回复"同意"进入排版配图阶段
- 如需修改,指出具体问题(如:某段落需要调整/论据不足/语气不对等)
用户确认 → 进入第四步(排版与配图)
用户要求修改 → 重新撰写文章(保留框架,调整内容)
references/writing-style.md)
[IMG:描述] 标注
写作质量要求:
Markdown 格式要求(排版必需):
## 段落标题
[SUMMARY] 和 [/SUMMARY] 包裹摘要内容
[IMG:描述] 图片占位符
💡 强调色块
article.md
```bash
python scripts/format_article.py --input article.md --output article.html
```
```bash
# 封面图(3136x1344)
python scripts/generate_image.py --prompt "{详细描述封面图的内容}" --output cover.jpg --type cover
# 正文配图 1(3136x1344)
python scripts/generate_image.py --prompt "{详细描述正文配图的内容}" --output image1.jpg --type content
# 正文配图 2(如需要)
python scripts/generate_image.py --prompt "..." --output image2.jpg --type content
```
```bash
# 上传封面图(获取 thumb_media_id)
python scripts/upload_image.py --thumb cover.jpg
# 上传正文图片(获取 URL)
python scripts/upload_image.py --content image1.jpg
python scripts/upload_image.py --content image2.jpg
```
article.html 预览
排版核心规则(研究院纪要风格):
[SUMMARY] 包裹,渲染为浅灰色摘要区域
## 标题中不要手写 01 / 前缀)
配图规则:
3136x1344
用户确认 → 进入下一步
用户反对 → 重新调整排版
python scripts/add_draft.py --title "标题" --content_file article.html --thumb_media_id "封面 media_id" --author "作者" --digest "摘要"
上传流程注意事项:
| 脚本 | 用途 | 使用方式 |
|------|------|---------|
| scripts/get_token.py | 获取 Access Token(带缓存) | 自动从环境变量读取 APPID/APPSECRET,缓存 2 小时 |
| scripts/generate_image.py | 使用火山方舟生成配图 | --prompt "描述" --output image.jpg --type cover/content(固定尺寸 3136x1344) |
| scripts/upload_image.py | 上传图片素材 | --thumb xxx.jpg(封面)或 --content xxx.jpg(正文) |
| scripts/format_article.py | Markdown 转 HTML 排版 | --input article.md --output article.html |
| scripts/add_draft.py | 新建草稿 | --title "标题" --content_file article.html --thumb_media_id "xxx" 或 --json_file draft_data.json |
| scripts/publish_draft.py | 发布草稿 | --media_id "xxx" 发布已审核的草稿 |
共 4 个版本