感谢您考虑为 Hunter AI 内容工厂贡献代码!🚀
本文档提供贡献指南和说明。我们欢迎所有形式的贡献,无论是修复漏洞、添加新功能、改进文档还是翻译。
- Python 3.12+
- uv 包管理器
- Git
# 1. Fork 并克隆仓库
git clone https://github.com/你的用户名/hunter-ai-content-factory.git
cd hunter-ai-content-factory
# 2. 安装依赖
uv sync
# 3. 复制配置文件
cp config.example.yaml config.yaml
# 4. 启动开发服务器
uv run python -m src.gradio_launcher在提交 Issue 前,请先搜索是否已有相关问题。
请包含以下信息:
- 环境信息:操作系统、Python 版本
- 复现步骤:详细描述如何触发问题
- 期望行为:你认为应该发生什么
- 实际行为:实际发生了什么
- 日志输出:相关的错误日志
请描述:
- 使用场景:你想解决什么问题?
- 期望方案:你希望如何实现?
- 替代方案:是否考虑过其他方案?
| 工具 | 用途 |
|---|---|
| VS Code / Cursor | IDE |
| Ruff | 代码格式化 & Lint |
| Pytest | 单元测试 |
# 安装依赖
uv sync
# 格式化代码
uv run ruff format .
# 代码检查
uv run ruff check .
# 运行测试
uv run pytest
# 启动 Web UI
uv run python -m src.gradio_launcher- 遵循 PEP 8 规范
- 使用 Ruff 进行格式化
- 函数和类需要添加 docstring
- 变量命名使用 snake_case
- 类命名使用 PascalCase
- 文件头:说明文件功能
- 函数:说明参数、返回值、用途
- 复杂逻辑:行内注释解释原因
- 语言:使用简体中文
"""
GitHub Trending 数据采集模块
功能:
- 从 GitHub Search API 获取热门项目
- 按 Star 数排序筛选
- 支持关键词扩展搜索
"""
from dataclasses import dataclass
@dataclass
class GitHubProject:
"""GitHub 项目数据结构"""
name: str # 项目名称
url: str # 项目地址
stars: int # Star 数量
description: str # 项目描述
def fetch_trending_projects(keyword: str, min_stars: int = 100) -> list[GitHubProject]:
"""
获取热门 GitHub 项目
Args:
keyword: 搜索关键词
min_stars: 最小 Star 数,默认 100
Returns:
符合条件的项目列表
"""
...| 类型 | 格式 | 示例 |
|---|---|---|
| 功能 | feat/描述 |
feat/add-twitter-collector |
| 修复 | fix/描述 |
fix/api-timeout-issue |
| 文档 | docs/描述 |
docs/update-readme |
| 重构 | refactor/描述 |
refactor/ai-client |
使用 Conventional Commits 格式:
<type>: <description>
[optional body]
Type 类型:
feat: 新功能fix: Bug 修复docs: 文档更新style: 代码格式(不影响功能)refactor: 重构(不新增功能也不修复 bug)perf: 性能优化test: 测试相关chore: 构建/工具变更
示例:
feat: 添加小红书热门笔记采集功能
- 支持 Cookie 登录态采集
- 自动提取笔记标题、正文、图片
- 集成到 xhs 模板- Fork 本仓库
- 创建功能分支:
git checkout -b feat/my-feature - 提交更改:
git commit -m "feat: 添加新功能" - 推送分支:
git push origin feat/my-feature - 创建 Pull Request
- 代码通过
ruff check检查 - 添加了必要的注释
- 更新了相关文档(如有需要)
- 本地测试通过
hunter-ai-content-factory/
├── src/ # 源代码
│ ├── config.py # 配置管理
│ ├── main.py # CLI 入口
│ ├── gradio_launcher.py # Web UI 入口
│ │
│ ├── intel/ # 📡 数据采集层
│ │ ├── github_trending.py # GitHub 采集
│ │ ├── pain_radar.py # 痛点雷达
│ │ └── ...
│ │
│ ├── templates/ # 📋 内容模板
│ │ ├── github_template.py # GitHub 模板
│ │ ├── pain_template.py # 痛点诊断
│ │ └── ...
│ │
│ ├── factory/ # 🏭 内容生产
│ │ ├── workflow.py # 工作流
│ │ └── skills/ # AI Skill
│ │
│ └── utils/ # 🔧 工具函数
│ ├── ai_client.py # AI 客户端
│ └── content_filter.py # 内容过滤
│
├── data/ # 数据存储
├── output/ # 输出目录
├── config.yaml # 配置文件
└── pyproject.toml # 项目配置
感谢您的贡献!🎉