# workflow-automation **Repository Path**: hwt66ba/workflow-automation ## Basic Information - **Project Name**: workflow-automation - **Description**: 自动化博客工作流系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-02 - **Last Updated**: 2026-05-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Workflow Automation - 自动化博客工作流系统 一个功能强大的自动化博客生成系统,支持从 RSS 数据源自动收集资讯,通过 AI 生成类人化博客文章,并以精美的公众号风格排版发送到邮箱。 ## ✨ 核心特性 ### 🤖 AI 内容生成 - **类人化写作**:使用第一人称,像真实博主一样自然流畅 - **多种人设**:程序员、理财爱好者、新闻观察者、综合博主 - **智能去重**:自动过滤已处理的新闻,避免重复内容 - **质量评估**:多维度评估内容质量(0-1 分制) ### 📰 多领域支持 - **科技博客**:22 个科技 RSS 源,技术深度分析 - **财经观察**:11 个财经 RSS 源,市场投资建议 - **时政分析**:12 个时政国际 RSS 源,理性客观观察 - **综合资讯**:全部 45 个 RSS 源,跨领域综合分析 ### 🎨 精美排版 - **公众号风格**:专业的 HTML 排版,美观易读 - **阅读统计**:自动计算字数和阅读时间 - **多主题支持**:不同领域使用不同配色方案 - **响应式设计**:适配各种设备屏幕 ### 📧 自动通知 - **邮件推送**:自动生成并发送 HTML 邮件 - **附件支持**:附带 Markdown 和 HTML 文件 - **定时任务**:支持 Cron 表达式定时执行 ## 🚀 快速部署 ### 方式一:GitHub Actions(推荐) #### 1. Fork 或创建仓库 ```bash git clone https://github.com/YOUR_USERNAME/workflow-automation.git cd workflow-automation ``` #### 2. 配置 GitHub Secrets 在仓库 **Settings > Secrets and variables > Actions** 中添加: | Secret 名称 | 说明 | 示例值 | |------------|------|--------| | `CODING_API_KEY` | AIHubMix API 密钥 | `sk-3moLs7w...` | | `EMAIL_HOST` | SMTP 服务器 | `smtp.qq.com` | | `EMAIL_PORT` | SMTP 端口 | `587` | | `EMAIL_USER` | 邮箱地址 | `3444203102@qq.com` | | `EMAIL_PASS` | 邮箱授权码 | `zvxbqcxhgsdvcjhc` | 详细配置说明见 [SECRETS.md](./SECRETS.md) #### 3. 推送代码 ```bash git add . git commit -m "Initial deployment" git push origin main ``` #### 4. 验证部署 - 进入仓库 **Actions** 标签页 - 点击 **Run workflow** 手动触发测试 - 检查邮件是否收到生成的文章 详细部署说明见 [GITHUB_ACTIONS_SETUP.md](./GITHUB_ACTIONS_SETUP.md) ## 📋 工作流类型 ### 1. 科技博客 - **触发时间**: 每天 9:00 - **数据源**: 22 个科技 RSS 源 - **人设**: 大二程序员 - **文件**: `workflows/enhanced-tech-blogger-workflow.json` ### 2. 财经观察 - **触发时间**: 工作日 8:00 - **数据源**: 11 个财经 RSS 源 - **人设**: 理财爱好者 - **文件**: `workflows/enhanced-finance-blogger-workflow.json` ### 3. 时政分析 - **触发时间**: 每天 7:00 和 19:00 - **数据源**: 12 个时政国际 RSS 源 - **人设**: 新闻观察者 - **文件**: `workflows/enhanced-politics-blogger-workflow.json` ### 4. 综合资讯 - **触发方式**: 仅手动触发 - **数据源**: 全部 45 个 RSS 源 - **人设**: 综合博主 - **文件**: `workflows/enhanced-comprehensive-blogger-workflow.json` ## 📊 数据源统计 ``` 📡 RSS 数据源分布 ├── 科技类 (tech): 22 个源 │ ├── 国内: 36氪、钛媒体、IT之家、机器之心、掘金等 │ └── 国外: Wired、Hacker News、Dev.to、GitHub Blog等 ├── 财经类 (finance): 11 个源 │ ├── 国内: 财新网、华尔街见闻 │ └── 国外: CNBC、MarketWatch、Forbes等 ├── 国内时政 (politics): 2 个源 │ └── 人民网、澎湃新闻 └── 国际新闻 (world): 10 个源 └── France 24、The Hill、Axios、NPR News等 ``` ## 🔧 本地开发 ### 安装依赖 ```bash npm install ``` ### 编译项目 ```bash npm run build ``` ### 本地测试 ```bash # 设置环境变量(Windows PowerShell) $env:CODING_API_KEY="your-api-key" $env:EMAIL_HOST="smtp.qq.com" $env:EMAIL_PORT="587" $env:EMAIL_USER="your-email@qq.com" $env:EMAIL_PASS="your-auth-code" # 运行工作流 node dist/run-workflow.js workflows/enhanced-tech-blogger-workflow.json ``` ## 📁 项目结构 ``` workflow-automation/ ├── .github/ │ └── workflows/ │ └── enhanced-blogger.yml # GitHub Actions 配置 ├── src/ │ ├── core/ │ │ ├── workflow-engine.ts # 工作流引擎 │ │ └── logger.ts # 日志系统 │ ├── steps/ │ │ ├── content-generation-step.ts # AI 内容生成 │ │ ├── rss-step.ts # RSS 数据获取 │ │ ├── report-step.ts # 报告生成 │ │ └── notify-step.ts # 邮件通知 │ ├── utils/ │ │ ├── wechat-renderer.ts # 公众号风格渲染 │ │ └── content-quality.ts # 内容质量评估 │ ├── datasources/ │ │ └── rss-feeds.ts # RSS 源配置 │ └── run-workflow.ts # 工作流运行脚本 ├── workflows/ # 工作流配置文件 │ ├── enhanced-tech-blogger-workflow.json │ ├── enhanced-finance-blogger-workflow.json │ ├── enhanced-politics-blogger-workflow.json │ └── enhanced-comprehensive-blogger-workflow.json ├── output/ # 输出目录 │ └── enhanced/ │ ├── tech-blog-post.md │ └── tech-blog-post.html ├── GITHUB_ACTIONS_SETUP.md # GitHub Actions 部署指南 ├── SECRETS.md # Secrets 配置参数 └── README.md # 本文档 ``` ## 📝 配置说明 ### 工作流配置结构 ```json { "name": "工作流名称", "description": "工作流描述", "schedule": "0 9 * * *", "enabled": true, "aiConfig": { "provider": "coding", "apiKey": "${CODING_API_KEY}", "model": "coding-minimax-m2.5-free", "baseUrl": "https://aihubmix.com" }, "steps": [ { "id": "fetch-news", "type": "rss", "config": { "category": "tech", "maxItemsPerFeed": 5 } }, { "id": "generate-content", "type": "content-generation", "config": { "persona": "tech-enthusiast", "prompt": "生成博客文章的提示词" } } ] } ``` ### 人设类型 | 人设 | 描述 | 适用场景 | |------|------|----------| | `tech-enthusiast` | 大二程序员 | 科技博客 | | `finance-analyst` | 理财爱好者 | 财经观察 | | `news-observer` | 新闻观察者 | 时政分析 | | `general-blogger` | 综合博主 | 综合资讯 | ## 🎨 自定义配置 ### 修改执行时间 编辑 `.github/workflows/enhanced-blogger.yml`: ```yaml on: schedule: - cron: '0 9 * * *' # 每天 9:00 (UTC) ``` 注意:GitHub Actions 使用 UTC 时间,北京时间 = UTC + 8 小时 ### 修改 RSS 源 编辑 `src/datasources/rss-feeds.ts`: ```typescript export const techRSSFeeds: RSSFeed[] = [ { name: '你的RSS源', url: 'https://example.com/rss', category: 'tech', language: 'zh', enabled: true } ]; ``` ### 修改邮件主题 编辑对应的工作流配置文件: ```json { "email": { "subject": "【自定义标题】{{date}} 内容" } } ``` ## 🐛 故障排查 ### 工作流运行失败 1. **检查 Secrets 配置** - 确认所有 Secrets 已正确添加 - 确认 Secret 名称拼写正确(区分大小写) 2. **查看执行日志** - 进入 Actions 页面 - 点击失败的工作流运行 - 查看具体步骤的日志输出 3. **常见问题** **API Key 无效** ``` 错误: AI configuration not found 解决: 检查 CODING_API_KEY 是否正确 ``` **邮件发送失败** ``` 错误: Invalid login 解决: 检查 EMAIL_USER 和 EMAIL_PASS 是否正确 ``` **RSS 获取失败** ``` 警告: 部分 RSS 源获取失败 解决: 正常现象,系统会继续处理可用的源 ``` ## 📚 相关文档 - [GitHub Actions 部署指南](./GITHUB_ACTIONS_SETUP.md) - 详细部署步骤 - [Secrets 配置参数](./SECRETS.md) - 配置参数说明 - [RSS 数据源](./src/datasources/rss-feeds.ts) - RSS 源配置 ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! ## 📄 许可证 MIT License