Skip to content

Ai一键 创作并发布公众号:好文章的 80% 在于选题。Hunter AI 自动从 GitHub Trending、Twitter、HackerNews 等平台采集热点,用 AI 判断哪些值得写,自动生成文章和插图。

Notifications You must be signed in to change notification settings

gpboyer2/hunter-ai-content-factory

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hunter AI 内容工厂

🎯 内容生产也可以像写代码一样,有输入、有输出、有质量保证

QQ群 访问量 Stars

萌萌计数器

QQ 交流群:794834282


你是否也有过这样的经历?

盯着空白的编辑器,想破脑袋也写不出像样的公众号文章?

或者,好不容易憋出一篇,阅读量却惨淡得让人怀疑人生?

这不是创作,这是赌博。

传统模式 问题
选题靠灵感 今天有感觉就写,没感觉就摆烂
写作靠硬撑 从第一个字开始就不知道该写什么
标题靠运气 发出去才知道这篇到底行不行

我认为,内容生产应该像工厂流水线一样运转——每个环节有明确的输入、输出和质量标准。

这就是「Skill 架构」的核心理念:把内容生产拆解成 6 个独立的技能模块,每个模块专注做好一件事。


💡 核心理念:Skill 架构

┌─────────────────────────────────────────────────────────────────────────┐
│                       Hunter AI 6-Skill 数据流                           │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│   ┌──────────┐    ┌──────────┐    ┌──────────┐                         │
│   │  Topic   │ → │ Research │ → │ Structure│                          │
│   │ 选题判断  │    │ 深度调研  │    │ 结构设计  │                          │
│   └──────────┘    └──────────┘    └──────────┘                         │
│        ↓               ↓               ↓                               │
│   主题、角度      核心洞察、数据     开篇钩子、章节                        │
│   目标读者        来源列表          结尾设计                              │
│        ↓               ↓               ↓                               │
│   ┌──────────┐    ┌──────────┐    ┌──────────┐                         │
│   │  Write   │ → │ Package  │ → │ Publish  │                          │
│   │ 内容写作  │    │ 封装优化  │    │ 发布推送  │                          │
│   └──────────┘    └──────────┘    └──────────┘                         │
│        ↓               ↓               ↓                               │
│   完整文章        最终标题、摘要     推送状态                              │
│   可读性评分      封面图提示词       消息ID                               │
│                                                                         │
│   关键设计原则:完整传递 + 层级聚合(避免信息断层)                         │
└─────────────────────────────────────────────────────────────────────────┘

每个 Skill 的核心职责

Skill 一句话概括 输出物
Topic 找到值得写的爆款选题 主题、角度、目标读者、标题候选
Research 收集高质量素材 核心洞察、事实数据、来源列表
Structure 设计节奏明快的大纲 开篇钩子、章节列表、结尾设计
Write 撰写有人味的初稿 完整文章、字数统计、可读性评分
Package 打造高点击率包装 最终标题、摘要、封面图提示词
Publish 一键推送到微信 推送状态、消息 ID

🔥 为什么这套架构有效?

Skill 1-2:选题 + 研究(决定 80% 的胜负)

坦白说,一篇文章能不能火,80% 在动笔之前就决定了。

选题三维模型

  • 用户价值:解决了什么痛点?提供了什么爽点?
  • 差异化:是否有反共识或细分垂直的角度?
  • 传播性:读者愿意转发到朋友圈吗?

Hunter AI 自动从 GitHub Trending、Twitter、HackerNews、Reddit、小红书 采集热点,用 AI 判断哪些值得写。

Skill 3-4:结构 + 写作(去 AI 味的关键)

很多 AI 写的文章一看就是机器写的,「正确的废话」一堆。

去 AI 味三原则

  • 明确观点:敢说「我认为」「这个方法不行」
  • 真实经验:用「我踩过的坑」代替「最佳实践列表」
  • 可操作:读者看完这段,明天能开始做什么?

手机阅读适配

  • 开头 3 秒抓注意力,不要用「大家好」
  • 每段 3-5 行,超过就换段
  • 小标题作路标,方便跳读式阅读

Skill 5-6:封装 + 发布(临门一脚)

标题优化 4 种公式

  1. 数字型:「我用 3 个方法,解决了 XX 问题」
  2. 对比型:「为什么 A 不行,B 才是正解」
  3. 悬念型:「关于 XX,大多数人都搞错了」
  4. 故事型:「我花了 X 时间踩的坑,希望你别重走」
  • 图片来源于信息源采集(GitHub 项目卡片、小红书笔记封面、Reddit 缩略图)
  • 一键推送到微信
  • Markdown 格式,直接复制到公众号

⚡ 30 秒快速体验

🚀 零配置启动(推荐)

空白电脑也能运行,自动下载 Python + 所有依赖!

# Mac / Linux
bash run.sh

# Windows(双击运行)
run.bat

脚本会自动完成:

  • ✅ 下载 uv 包管理器(到项目本地目录)
  • ✅ 下载 Python 3.12(由 uv 管理)
  • ✅ 安装所有项目依赖
  • ✅ 安装 Playwright 浏览器驱动
  • ✅ 启动 Gradio Web UI 并自动打开浏览器

首次运行需要下载环境约 3-5 分钟,之后秒启动。

📝 配置 API Key

方式一:Web UI 配置(推荐)

启动后在浏览器页面的「⚙️ 配置」Tab 中填入 Gemini API Key,点击保存即可。

方式二:手动编辑配置文件

# config.yaml
gemini:
  api_key: "你的 Gemini API Key"  # 从 Google AI Studio 获取

🔧 高级用法(已有 uv 环境)

# 1. 安装依赖
curl -LsSf https://astral.sh/uv/install.sh | sh && uv sync

# 2. 配置
cp config.example.yaml config.yaml
# 编辑 config.yaml,填入你的 API Key

# 3. CLI 启动(不启动 Web UI)
uv run hunter run

输出效果

output/2026-01-22/这3个开源AI项目绝了/
├── article.md          # 2000字公众号文章
└── metadata.json       # 文章元数据

🎯 适合谁用?

人群 使用场景 推荐模板
技术博主 每周推荐 AI/开源项目 github
产品经理 挖掘用户痛点,生成需求报告 pain
科技媒体 每日 AI 资讯速递 news
生活博主 小红书热门内容二创 xhs
全栈创作者 全自动 5 平台采集 + 生成 auto

📖 详细文档

以下是完整的技术文档,包含安装指南、模板详解、配置说明等。


项目概览

核心架构

┌─────────────────────────────────────────────────────────────────────────┐
│                        Hunter AI 内容工厂                                │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│    ┌──────────────┐      ┌──────────────┐      ┌──────────────┐        │
│    │   数据采集    │  →   │   AI 分析    │  →   │   内容生成   │  →  推送 │
│    │   Intel      │      │   Gemini     │      │   Factory    │        │
│    └──────────────┘      └──────────────┘      └──────────────┘        │
│                                                                         │
│    数据源:                分析能力:              输出格式:               │
│    • GitHub Trending     • 选题判断              • 公众号文章 (MD)       │
│    • Twitter/X           • 痛点诊断              • 微信推送              │
│    • HackerNews          • 内容提炼                                     │
│    • Reddit              • 结构化写作                                   │
│    • 小红书                                                             │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

五种内容模板

模板 命令 数据源 输出类型 适用场景
github hunter run -t github GitHub Trending 公众号长文 (2+1格式) AI/开源技术号
pain hunter run -t pain Twitter + Reddit 用户抱怨 诊断报告 (MD) 产品经理/需求挖掘
news hunter run -t news HackerNews + Twitter + Reddit + GitHub + 小红书 资讯快报文章 科技资讯号
xhs hunter run -t xhs 小红书热门笔记 种草/测评文章 生活/消费类号
auto hunter run -t auto 5 平台全量采集 AI 生活黑客文章 (MD) 全栈内容创作

输出类型对比(重要)

不同模板输出的内容类型不同

模板 主要输出 文件格式 存放位置 推送内容
github 公众号长文 .md output/日期/文章标题/ 完整文章
pain 诊断报告 .md output/日期/reports/ 报告摘要
news 资讯快报 .md output/日期/articles/ 完整文章
xhs 种草文章 .md output/日期/articles/ 完整文章
auto AI 生活黑客文章 .md output/日期/文章标题/ 完整文章

注意pain 模板输出的是 Markdown 格式的诊断报告,不是直接可发布的公众号文章。适合产品经理做用户需求分析。

欢迎 star🌟


快速开始

1. 安装依赖

# 安装 UV(如未安装)
curl -LsSf https://astral.sh/uv/install.sh | sh

# 安装项目依赖
uv sync

2. 配置 API

# 复制配置模板
cp config.example.yaml config.yaml

# 编辑配置(至少填写 gemini.api_key)
vim config.yaml

最小配置(只需 Gemini API Key 即可运行 github 模板):

gemini:
  api_key: "你的 Gemini API Key"
  model: "gemini-2.0-flash"

3. 运行

# GitHub 开源推荐(默认)
uv run hunter run

# 指定模板
uv run hunter run -t github    # GitHub 热门项目 → 公众号文章
uv run hunter run -t pain      # Twitter + Reddit 痛点 → MD 诊断报告
uv run hunter run -t news      # 5 平台资讯采集 → 快报文章
uv run hunter run -t xhs       # 小红书采集 → 种草文章
uv run hunter run -t auto      # 全自动 5 平台采集 + AI 生成

# 试运行(不推送)
uv run hunter run --dry-run

各模板详解

1. GitHub 开源推荐 (github) ⭐ 推荐

输出:公众号长文

用途:面向技术公众号,推荐 AI/ML 领域的热门开源项目

执行流程

GitHub Search API → 筛选 AI 项目 → 去重(JSON + ChromaDB 向量)→
AI 生成「2个简介 + 1个深度」文章 → 保存 + 推送

输出示例

output/2026-01-22/这3个YYDS开源AI项目绝了/
├── article.md              # 文章正文(可直接复制到公众号)
└── metadata.json           # 文章元数据

文章结构

  • 开篇引言(100字,吸引眼球)
  • 项目简介 1(300字 + 项目截图)
  • 项目简介 2(300字 + 项目截图)
  • 深度解读(800字,含代码示例)
  • 结尾总结 + 引导关注

去重机制

  • JSON 历史记录:精确匹配项目名,30天冷却期
  • ChromaDB 向量:语义相似度 ≥ 85% 判定为重复

2. 痛点诊断 (pain) 📊

输出:Markdown 格式诊断报告

用途:从 Twitter + Reddit 挖掘用户对 AI 产品的抱怨,生成产品需求洞察报告

执行流程

Twitter + Reddit 搜索(ChatGPT/Claude/DeepSeek 等产品 + 痛点关键词)→
自动推断标签 → 存储到 SQLite + ChromaDB → AI 诊断分析 → 生成报告 → 推送摘要

数据持久化

  • SQLite 结构化存储:所有痛点存入 data/pain_points.db
  • 自动标签推断:产品(ChatGPT/Claude等)、问题类型(性能/准确性/稳定性等)、严重程度
  • 相似痛点合并:语义相似度 ≥ 80% 的痛点自动合并,累加频率
  • 统计分析:按产品、分类、时间维度查询痛点

痛点表结构

字段 说明
content 痛点原文
source 来源平台(Twitter/Weibo等)
platform 相关产品(ChatGPT/Claude等)
tags 标签列表(JSON数组)
category 问题分类(性能/准确性/功能/体验/API/稳定性等)
severity 严重程度(blocker/major/minor)
frequency 出现频率(相似合并时累加)
ai_analysis AI 分析摘要

输出示例

output/2026-01-22/reports/
└── Pain_Report_2026-01-22.md    # Markdown 格式诊断报告

报告内容

  • Top 3 阻断性痛点(Blockers)
  • 技术根因深度分析
  • 解决方案建议
  • 产品机会点挖掘

适用人群:产品经理、创业者、需求分析师

注意:需要配置 Twitter Cookies 才能运行


3. 资讯快报 (news) 📰

输出:资讯快报文章

用途:汇总 AI 行业热点,生成每日资讯速递

执行流程

HackerNews + Twitter + Reddit + GitHub Trending + 小红书 → AI 筛选分类 → 生成资讯快报 → 保存 + 推送

输出示例

output/2026-01-22/articles/
└── news_2026-01-22.md    # 资讯快报文章

4. 小红书热门 (xhs) 📱

输出:种草/测评文章

用途:采集小红书热门笔记,生成公众号风格的种草文章

执行流程

Playwright 浏览器 / httpx + Cookie 采集小红书 → AI 提炼核心内容 → 生成公众号文章 → 保存 + 推送

首次使用需要配置 Cookie

  1. 浏览器登录小红书 (https://www.xiaohongshu.com)
  2. F12 打开开发者工具 → Application → Cookies
  3. 复制所有 Cookie 到 config.yamlxiaohongshu.cookies 字段

5. 自动创作 (auto) 🤖 NEW

输出:AI 生活黑客风格文章(Markdown)

用途:全自动 5 平台采集,围绕 AI 生成工具的瑕疵和热点生成解决方案文章

执行流程

HackerNews + Twitter + Reddit + GitHub Trending + 小红书
    ↓
全量采集(去重存储到 ChromaDB)
    ↓
AI 分析生成「AI 生活黑客」风格文章
    ↓
保存 MD + 推送微信

输出示例

output/2026-01-22/AI生图手指变形怎么破/
├── article.md        # Markdown 文章
└── metadata.json     # 元数据(含信息源图片链接)

文章结构

  • 💔 崩溃瞬间(生动描述用户遇到的"人工智障"时刻)
  • 🔧 魔法修补(解释为什么 AI 会犯错 + 解决方案)
  • 🎁 咒语交付(可直接复制的 Prompt/指令)

推送机制说明

PushPlus 工作原理

Hunter AI 生成内容 → 调用 PushPlus API → PushPlus 服务器 → 推送到你的微信

重要说明

  1. PushPlus 推送的内容会发送到你个人微信的聊天窗口(PushPlus 公众号对话框)
  2. 不是直接发布到你自己的公众号
  3. 你需要从聊天窗口或 output/ 目录复制文章,手动发布到公众号

如何查看推送的内容

  1. 打开微信
  2. 找到「PushPlus 推送加」公众号
  3. 在聊天窗口查看推送的文章

如何发布到公众号

  1. output/日期/ 目录获取生成的 .md 文件
  2. 复制内容到公众号后台
  3. 自行添加封面图(可从采集的信息源图片中选取)
  4. 发布

关于自动发布到公众号

⚠️ 重要提醒:真正的「自动发布到公众号」需要满足以下条件

要求 说明
企业认证账号 微信公众平台仅对通过企业认证的服务号/订阅号开放发布 API
微信公众平台 API 需要通过 微信公众平台开发文档 接入
AppID + AppSecret 企业认证后获取,用于调用公众号 API
IP 白名单 需在公众平台配置服务器 IP 白名单

为什么本项目使用 PushPlus?

  • 个人公众号(未认证)无法调用微信发布 API
  • PushPlus 是折中方案:先推送到个人微信,再手动复制发布
  • 如果你有企业认证的公众号,可以自行扩展 src/intel/utils.py 中的 push_to_wechat 函数,接入微信公众平台 API 实现真正的自动发布

命令参考

核心命令

# 一键运行
uv run hunter run                    # 默认 github 模板
uv run hunter run -t <模板名>         # 指定模板
uv run hunter run --dry-run          # 试运行,不推送

# 查看模板
uv run hunter templates

工具命令

# 配置管理
uv run hunter config                 # 查看当前配置
uv run hunter validate               # 验证配置

# 内容检查
uv run hunter check article.md       # 检查违禁词
uv run hunter check article.md --fix # 自动修复

# 清理
uv run hunter clean                  # 清理缓存

配置文件

各模板所需配置

配置项 github pain news xhs 说明
gemini.api_key AI 生成必需
github.token 可选 - - - 提高 API 配额
twitter.cookies_path - - Twitter 采集
xiaohongshu.cookies - - - 小红书采集
pushplus.token 推送用 推送用 推送用 推送用 微信推送

完整配置示例

# ══════════════════════════════════════════════════════════════════
# 🤖 AI 大模型配置(必填)
# ══════════════════════════════════════════════════════════════════
gemini:
  api_key: "你的 API Key"
  model: "gemini-2.0-flash"
  # 可选:使用 OpenAI 兼容的第三方服务
  # base_url: "https://api.example.com/v1"

# ══════════════════════════════════════════════════════════════════
# 🐙 GitHub 配置(github 模板)
# ══════════════════════════════════════════════════════════════════
github:
  token: "ghp_xxx"           # 可选,提高配额(60→5000次/小时)
  min_stars: 200

# ══════════════════════════════════════════════════════════════════
# 🐦 Twitter 配置(pain/news 模板)
# ══════════════════════════════════════════════════════════════════
twitter:
  cookies_path: "data/cookies.json"    # Cookie-Editor 导出

# ══════════════════════════════════════════════════════════════════
# 📱 小红书配置(xhs 模板)
# ══════════════════════════════════════════════════════════════════
xiaohongshu:
  cookies: ""                # 浏览器 F12 复制

# ══════════════════════════════════════════════════════════════════
# 📨 PushPlus 推送
# ══════════════════════════════════════════════════════════════════
pushplus:
  token: "你的 Token"
  enabled: true

# ══════════════════════════════════════════════════════════════════
# 📝 公众号人设
# ══════════════════════════════════════════════════════════════════
account:
  name: "AI技术前沿"
  tone: "专业且引人入胜"
  niche: "AI技术"

工程结构

猎手/
├── src/                              # 源代码
│   ├── config.py                     # 统一配置管理
│   ├── main.py                       # CLI 入口
│   │
│   ├── intel/                        # 📡 数据采集层
│   │   ├── github_trending.py        # GitHub Trending 采集
│   │   ├── pain_radar.py             # Twitter + Reddit 痛点雷达
│   │   ├── pain_store.py             # 痛点结构化存储(SQLite)
│   │   ├── reddit_hunter.py          # Reddit 采集器
│   │   ├── auto_publisher.py         # 5 平台全量采集
│   │   ├── xiaohongshu_hunter.py     # 小红书 API 采集
│   │   ├── xiaohongshu_browser.py    # 小红书浏览器采集
│   │   └── utils.py                  # HTTP/重试/ChromaDB 工具
│   │
│   ├── templates/                    # 📋 内容模板
│   │   ├── github_template.py        # GitHub 开源推荐
│   │   ├── pain_template.py          # 痛点诊断报告
│   │   ├── news_template.py          # 资讯快报
│   │   ├── xiaohongshu_template.py   # 小红书热门
│   │   └── auto_template.py          # 自动创作(5 平台全量)
│   │
│   ├── factory/                      # 🏭 内容生产
│   │   ├── workflow.py               # 工作流定义
│   │   ├── executor.py               # 6-Skill 执行器
│   │   └── skills/                   # Skill 提示词
│   │
│   └── utils/                        # 🔧 工具
│       ├── ai_client.py              # AI 客户端
│       └── content_filter.py         # 违禁词过滤
│
├── data/                             # 数据存储
│   ├── chromadb/                     # 向量数据库(去重)
│   ├── pain_points.db                # 痛点 SQLite 数据库
│   ├── cookies.json                  # Twitter Cookies
│   └── recommended_projects.json     # 已推荐项目
│
├── output/                           # 输出目录
│   └── 2026-01-22/                   # 按日期组织
│       ├── 文章标题/                  # github/auto 模板输出
│       │   ├── article.md
│       │   └── metadata.json
│       ├── articles/                 # news/xhs 模板输出
│       └── reports/                  # pain 模板输出
│
├── config.yaml                       # 配置文件(不提交)
└── config.example.yaml               # 配置模板

常见问题

Q: 推送成功但公众号没有文章?

A: PushPlus 推送到的是你个人微信聊天窗口,不是公众号。

查看方法:微信 → 找到「PushPlus 推送加」公众号 → 聊天窗口

发布到公众号:从 output/ 目录复制文章,手动发布

Q: pain 模板输出的是什么?

A: pain 模板输出的是 Markdown 格式的诊断报告.md),不是公众号文章。

用途是帮助产品经理分析用户痛点,挖掘需求。

Q: GitHub API 返回 403?

A: API 限流,解决方案:

  • 配置 github.token 提高配额
  • 或等待后重试

Q: Twitter 采集失败?

A: 检查 data/cookies.json

  • 使用 Cookie-Editor 插件重新导出
  • 确保 JSON 是数组格式(支持自动转换)

Q: 小红书采集失败?

A: 需要配置 Cookie:

  1. 浏览器登录小红书
  2. F12 → Application → Cookies
  3. 复制到 config.yamlxiaohongshu.cookies

双层存储架构

项目采用 SQLite + ChromaDB 双层存储,各司其职:

┌─────────────────────────────────────────────────────────────┐
│                      数据存储架构                            │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   ┌─────────────────┐      ┌─────────────────┐             │
│   │    SQLite       │      │    ChromaDB     │             │
│   │  结构化存储      │      │   向量存储       │             │
│   └────────┬────────┘      └────────┬────────┘             │
│            │                        │                       │
│   • 标签/分类查询          • 语义相似度搜索                  │
│   • 频率统计 (GROUP BY)    • 内容去重 (85%阈值)              │
│   • 原子更新 (frequency++)  • 模糊匹配                       │
│   • Excel 导出             • 向量索引                       │
│                                                             │
└─────────────────────────────────────────────────────────────┘

为什么需要双层?

需求 SQLite ChromaDB 选择
按产品统计痛点数量 GROUP BY ❌ 不支持 SQLite
相似内容合并时累加频率 UPDATE +1 ❌ 无原子更新 SQLite
检测"意思相近"的重复内容 ❌ 只能精确匹配 ✅ 向量相似度 ChromaDB
导出 Excel 报表 ✅ 直接查询 ⚠️ 需 Python 转换 SQLite
按标签/分类筛选 WHERE where={} 都行

数据流向

新痛点 → ChromaDB 相似度检测 → 相似?
                                  ├─ 是 → SQLite 合并 (frequency++)
                                  └─ 否 → SQLite 新增 + ChromaDB 存储

单独使用 ChromaDB 的场景

如果你的需求只是:

  • 存储内容 + 相似搜索
  • 不需要统计分析
  • 不需要频率累加

可以只用 ChromaDB,通过 Python 导出 Excel:

import pandas as pd
data = collection.get(include=["documents", "metadatas"])
df = pd.DataFrame({"content": data["documents"], **{...}})
df.to_excel("export.xlsx")

技术栈

组件 选型 说明
HTTP 客户端 httpx 支持异步
浏览器自动化 Playwright 小红书采集
AI 模型 Gemini 2.0 Flash 速度快、成本低
向量数据库 ChromaDB 本地部署、语义去重
关系数据库 SQLite + SQLAlchemy 痛点结构化存储
CLI 框架 click 简洁易用
包管理 UV 比 pip 快 10 倍

开源引用

用途
httpx HTTP 客户端
chromadb 向量数据库
sqlalchemy ORM 框架
google-genai Gemini SDK
twikit Twitter 采集
click CLI 框架
rich 终端美化
tenacity 重试机制

⭐ Star 趋势

Star History Chart


License

MIT License

About

Ai一键 创作并发布公众号:好文章的 80% 在于选题。Hunter AI 自动从 GitHub Trending、Twitter、HackerNews 等平台采集热点,用 AI 判断哪些值得写,自动生成文章和插图。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 90.5%
  • Shell 5.4%
  • Batchfile 4.1%