基于 RSS 订阅源自动提取热门话题,智能搜索相关文章,生成专业完整的技术博客文档
English | 中文
AutoBlogAgent 是一款基于 AI 的自动化技术博客生成工具。通过订阅多个 AI 技术 RSS 源,自动提取热门话题,然后使用搜索引擎抓取相关文章,利用大语言模型分析识别技术热点,并自动生成结构完整、内容专业的技术博客文章,最终导出为可下载的 PDF 文档。
- 📡 多 RSS 订阅源 - 支持 Infinitum AI 日报、AI Hot 等多个订阅源
- 🔍 智能话题提取 - 自动从 RSS 解析热门关键词和话题
- 🌐 百度搜索 - 基于话题自动搜索相关文章
- 🧠 AI 热点识别 - 使用大语言模型智能分析,识别技术热点话题
- ✍️ 自动博客生成 - 生成结构清晰、内容专业的技术博客文章
- 📄 PDF 文档导出 - 一键生成可分享的 PDF 文档
┌─────────────────────────────────────────────────────────────────────┐
│ AutoBlogAgent 技术博客生成工作流 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ┌────────────────┐ ┌────────────────┐ ┌────────────────┐ │
│ │ RSS 订阅 │───▶│ 文章搜索 │───▶│ 热点分析 │ │
│ │ rss_subscription│ │ article_fetch │ │hot_topic_analysis│ │
│ └────────────────┘ └────────────────┘ └────────────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────┐ ┌────────────────┐ ┌────────────────┐ │
│ │ 文档生成 │◀───│ 博客生成 │◀───│ 话题选择 │ │
│ │document_generation│ │ blog_generation│ │ topic_selection │ │
│ └────────────────┘ └────────────────┘ └────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
| 节点名称 | 类型 | 功能描述 |
|---|---|---|
rss_subscription |
Task | 从多个 RSS 订阅源获取热门话题 |
article_fetch |
Task | 基于话题使用百度搜索抓取相关文章 |
hot_topic_analysis |
Agent | 使用 LLM 分析文章,识别热点话题 |
topic_selection |
Task | 从多个热点中选择最热门的话题 |
blog_generation |
Agent | 基于热点话题生成完整的技术博客 |
document_generation |
Task | 将博客转换为 PDF 文档 |
支持从多个 RSS 订阅源自动获取热门话题:
| 订阅源 | URL | 说明 |
|---|---|---|
| Infinitum AI 日报 | http://infinitum.shawnxie.top/api/daily/rss |
AI 技术每日热点 |
| AI Hot | https://aihot.virxact.com/feed/all.xml |
AI 热点资讯 |
特性:
- 并行获取多个 RSS 源,提升效率
- 智能提取标题和描述中的关键词
- 自动去重和热度排序
- 支持自定义 RSS 订阅源列表
使用百度搜索基于 RSS 话题抓取相关文章:
搜索策略:
- 直接使用 RSS 提取的热门话题作为搜索关键词
- 智能构建搜索查询,确保搜索结果相关性
- 自动去重,保证文章唯一性
- 智能提取文章标题、摘要、发布时间等信息
使用大语言模型对抓取的文章进行深度分析:
输入:20-30 篇技术文章
↓
AI 分析:
- 提取关键技术主题词
- 统计主题出现频次
- 评估话题热度评分
↓
输出:3-5 个热点话题列表
每个话题包含:
- 话题名称
- 话题描述
- 相关文章列表
- 热度评分 (0-10)
- 自动选择热度最高的话题
- 支持按话题生成对应的技术博客
- 保留所有识别的热点话题供参考
生成的技术博客包含完整的文章结构:
# 文章标题
> 自动生成的技术博客 | 基于热点话题分析
---
## 引言
## 话题概述
## 技术细节/核心原理
## 实践应用/案例分析
## 总结与展望
## 参考资料博客特点:
- 中文写作,符合国内开发者阅读习惯
- 结构清晰,逻辑严谨
- 内容专业但不晦涩
- 字数通常在 1500 字以上
- 包含完整的参考资料链接
- 自动将博客转换为专业 PDF 文档
- 支持中文字体
- 自动生成目录结构
- 可直接下载和分享
- 工作流编排: LangGraph
- 大语言模型: 支持多种模型(Coze SDK / OpenAI / 阿里百炼 / DeepSeek / Kimi 等)
- 文章搜索: Web Search API
- 文档生成: PDF Generation API
- 提示词模板: Jinja2
本项目使用统一的 LLM 客户端 (src/utils/llm_client.py),支持多种大语言模型提供商:
| 提供商 | 类型 | 模型示例 | 说明 |
|---|---|---|---|
| Coze SDK | coze |
doubao-seed-2-0-pro | 通过 Coze 平台调用豆包模型 |
| OpenAI | openai |
gpt-4o, gpt-4-turbo | OpenAI 官方 API |
| 阿里百炼 | dashscope |
qwen-plus, qwen-max | 阿里云通义千问系列 |
| DeepSeek | deepseek |
deepseek-chat, deepseek-coder | DeepSeek 模型 |
| Kimi | kimi |
moonshot-v1-8k, moonshot-v1-32k | 月之暗面 Kimi 模型 |
💡 提示: 所有支持的模型列表可参考 LLM Skill 文档
Python >= 3.10
├── langgraph # 工作流编排框架
├── langchain-core # 消息传递和工具定义
├── coze-coding-dev-sdk # 集成 SDK
└── pydantic # 数据验证
├── src/
│ ├── graphs/ # 工作流核心代码
│ │ ├── state.py # 全局状态定义
│ │ ├── graph.py # 主图编排
│ │ └── nodes/ # 节点实现
│ │ ├── article_fetch_node.py
│ │ ├── hot_topic_analysis_node.py
│ │ ├── topic_selection_node.py
│ │ ├── blog_generation_node.py
│ │ └── document_generation_node.py
│ ├── utils/ # 工具模块
│ │ └── llm_client.py # 通用 LLM 客户端(支持多模型)
│ └── main.py # 程序入口
├── config/ # 配置文件
│ ├── hot_topic_analysis_llm_cfg.json
│ ├── blog_generation_llm_cfg.json
│ └── examples/ # 配置示例
│ ├── coze_example.json
│ ├── openai_example.json
│ ├── dashscope_example.json
│ ├── deepseek_example.json
│ └── kimi_example.json
├── tests/ # 测试用例
├── AGENTS.md # 项目规范文档
└── README.md # 项目说明文档
- Python 3.10+
- 网络连接(用于访问搜索 API)
# 使用 uv 安装依赖(推荐)
uv sync
# 或使用 pip
pip install -r requirements.txt# 一键推送到 GitHub
chmod +x scripts/push_to_github.sh
./scripts/push_to_github.sh <你的GitHub_Token> <仓库名称> [仓库描述]
# 示例
./scripts/push_to_github.sh ghp_xxxxxxxxxxxxxxx tech-blog-generator "技术热点追踪与博客生成"
# 获取 GitHub Token:
# 1. 登录 GitHub → Settings → Developer settings
# 2. Personal access tokens → Generate new token
# 3. 勾选 repo 权限 → 生成并复制from src.graphs.graph import main_graph
# 定义工作流输入
input_data = {
"platforms": ["github", "juejin", "csdn", "cnblogs"], # 要抓取的平台
"keywords": ["开源", "AI", "编程", "技术趋势"], # 搜索关键词
"article_count_per_platform": 10 # 每个平台的文章数量
}
# 执行工作流
result = main_graph.invoke(input_data)
# 获取结果
print("识别的热点话题:", result["hot_topics"])
print("生成的博客:", result["blog_content"]["title"])
print("文档下载链接:", result["document_url"])| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
platforms |
List[str] | 否 | ["github", "juejin", "csdn", "cnblogs"] |
要抓取的技术平台 |
keywords |
List[str] | 否 | ["开源", "AI", "编程", "技术趋势"] |
搜索关键词列表 |
article_count_per_platform |
int | 否 | 10 |
每个平台抓取的文章数量 |
{
"hot_topics": [
{
"topic": "AI编程工具与实践",
"description": "介绍AI编程技术发展...",
"related_articles": ["文章1", "文章2", ...],
"heat_score": 9.5
},
...
],
"blog_content": {
"title": "文章标题",
"outline": ["引言", "话题概述", ...],
"content": "# Markdown 格式的文章内容",
"references": ["url1", "url2", ...]
},
"document_url": "https://xxx.pdf"
}快速获取最新技术热点,生成博客草稿,提高创作效率。
定期生成技术趋势报告,帮助团队了解行业动态。
自动化生成技术内容,支持公众号、技术社区等内容分发。
追踪感兴趣的技术领域,生成学习笔记和总结。
本项目采用统一的 LLM 客户端架构,通过配置文件中的 type 字段指定模型类型,支持以下模型提供商:
通过 Coze 平台调用豆包系列模型,适合国内用户:
{
"type": "coze",
"config": {
"model": "doubao-seed-2-0-pro-260215",
"temperature": 0.7,
"max_completion_tokens": 8000
},
"sp": "你是一个专业的技术博客写作助手...",
"up": "根据以下文章内容分析技术热点..."
}适用场景: 国内用户、需要稳定服务的生产环境
使用 OpenAI 官方 API:
{
"type": "openai",
"config": {
"model": "gpt-4o",
"api_key": "your-openai-api-key",
"temperature": 0.7,
"max_tokens": 8000
},
"sp": "You are a professional technical blog writer...",
"up": "Analyze the following articles and identify hot topics..."
}适用场景: 国际化项目、已有 OpenAI API 的团队
使用阿里云百炼平台:
{
"type": "dashscope",
"config": {
"model": "qwen-plus",
"api_key": "your-dashscope-api-key",
"temperature": 0.7,
"max_tokens": 8000
},
"sp": "你是一个专业的技术博客写作助手...",
"up": "根据以下文章内容分析技术热点..."
}适用场景: 阿里云用户、国内企业、对数据安全有要求的场景
使用 DeepSeek 模型:
{
"type": "deepseek",
"config": {
"model": "deepseek-chat",
"api_key": "your-deepseek-api-key",
"temperature": 0.7,
"max_tokens": 8000
},
"sp": "You are a professional technical blog writer...",
"up": "Analyze the following articles and identify hot topics..."
}适用场景: 追求性价比、需要代码能力强的模型
使用月之暗面 Kimi 模型:
{
"type": "kimi",
"config": {
"model": "moonshot-v1-8k",
"api_key": "your-kimi-api-key",
"temperature": 0.7,
"max_tokens": 8000
},
"sp": "你是一个专业的技术博客写作助手...",
"up": "根据以下文章内容分析技术热点..."
}适用场景: 长文本处理、长文档分析场景
配置文件位于 config/ 目录,必须包含以下字段:
{
"type": "coze|openai|dashscope|deepseek|kimi", // 模型类型
"config": {
"model": "model-id", // 模型 ID
"temperature": 0.7, // 温度参数 (0-1)
"max_tokens": 8000 // 最大 token 数
// 其他参数...
},
"sp": "系统提示词",
"up": "用户提示词 (支持 Jinja2 模板)"
}只需修改 config/*.json 中的配置,即可切换不同的模型:
# 使用 Coze SDK
# config: "type": "coze", "model": "doubao-seed-2-0-pro-260215"
# 切换到 OpenAI
# config: "type": "openai", "model": "gpt-4o"
# 切换到阿里百炼
# config: "type": "dashscope", "model": "qwen-plus"在 article_fetch_node.py 中修改 platform_domains:
platform_domains = {
"github": "github.com",
"juejin": "juejin.cn",
"csdn": "csdn.net",
"cnblogs": "cnblogs.com",
# 添加自定义平台
"your_platform": "your-domain.com"
}{
"platforms": ["github", "juejin"],
"keywords": ["AI编程", "开源大模型"],
"article_count_per_platform": 5
}1. AI编程工具与实践 (热度: 9.5)
描述: 介绍AI编程技术发展、各类工具评测与工程化落地实践
2. 开源基础概念与普及 (热度: 8.0)
描述: 讲解开源的定义、优势、常见误区
3. 国产大模型开源 (热度: 7.2)
描述: 介绍国产顶尖大模型的开源进展
4. 开源许可证合规 (热度: 6.5)
描述: 解析主流开源许可证的规则
2023年GitHub Copilot正式商业化的时候,很多人还在吐槽它"经常生成错漏百出的代码",到2024年我们团队做开发效率调研时,已经有超过70%的开发者日常工作中会使用至少一款AI编程工具...
[完整文章已生成并导出为 PDF]
欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'Add amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 创建 Pull Request
本项目采用 MIT 开源协议,详情请参阅 LICENSE 文件。
- LangGraph - 工作流编排框架
- Coze Coding SDK - 集成开发工具包
- 所有开源贡献者
如有问题或建议,欢迎通过以下方式联系:
- 提交 GitHub Issue
- 发送邮件至:your-email@example.com
如果这个项目对你有帮助,请给个 ⭐ Star!
Made with ❤️ by Tech Blog Generator Team