Skip to content

Latest commit

 

History

History
260 lines (186 loc) · 5.67 KB

File metadata and controls

260 lines (186 loc) · 5.67 KB

为 Hunter AI 内容工厂做出贡献

感谢您考虑为 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 前,请先搜索是否已有相关问题。

Bug 报告

请包含以下信息:

  • 环境信息:操作系统、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

代码规范

Python 风格

  • 遵循 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:
        符合条件的项目列表
    """
    ...

提交 Pull Request

分支命名

类型 格式 示例
功能 feat/描述 feat/add-twitter-collector
修复 fix/描述 fix/api-timeout-issue
文档 docs/描述 docs/update-readme
重构 refactor/描述 refactor/ai-client

Commit 规范

使用 Conventional Commits 格式:

<type>: <description>

[optional body]

Type 类型

  • feat: 新功能
  • fix: Bug 修复
  • docs: 文档更新
  • style: 代码格式(不影响功能)
  • refactor: 重构(不新增功能也不修复 bug)
  • perf: 性能优化
  • test: 测试相关
  • chore: 构建/工具变更

示例

feat: 添加小红书热门笔记采集功能

- 支持 Cookie 登录态采集
- 自动提取笔记标题、正文、图片
- 集成到 xhs 模板

PR 流程

  1. Fork 本仓库
  2. 创建功能分支:git checkout -b feat/my-feature
  3. 提交更改:git commit -m "feat: 添加新功能"
  4. 推送分支:git push origin feat/my-feature
  5. 创建 Pull Request

PR 检查清单

  • 代码通过 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                # 项目配置

需要帮助?

  • 📖 查看 README 了解项目详情
  • 💬 加入 QQ 群 794834282 交流讨论
  • 🐛 提交 Issue 反馈问题

感谢您的贡献!🎉