- 更新 CHANGELOG.md,新增 v2.5.0 版本日志,记录人设专属 SD 视觉优化、新增人设及内容排期系统等重大功能 - 更新 CONTRIBUTING.md 项目架构图,补充新增的服务模块(analytics_service.py, publish_queue.py)和核心设计原则 - 全面更新 README.md,将项目标题升级至 V2.5,重构功能特性章节以对应 8 个 Tab,新增人设系统、内容排期、智能学习、反 AI 检测等核心功能的详细说明,并更新配置说明和常见问题解答
3.5 KiB
3.5 KiB
贡献指南
感谢你对本项目的关注!我们欢迎任何形式的贡献,包括但不限于 Bug 报告、功能建议、代码提交和文档改进。
开发环境搭建
# 1. Fork 并克隆项目
git clone https://github.com/your-username/xhs-autobot.git
cd xhs-autobot
# 2. 创建虚拟环境
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS/Linux
source .venv/bin/activate
# 3. 安装依赖
pip install -r requirements.txt
# 4. 复制配置文件
cp config.example.json config.json
# 编辑 config.json 填写你的 API Key
# 5. 启动开发
python main.py
提交规范
本项目使用 Conventional Commits 规范:
<type>(<scope>): <description>
[可选正文]
[可选脚注]
Type 类型
| 类型 | 说明 |
|---|---|
feat |
新功能 |
fix |
Bug 修复 |
docs |
文档更新 |
style |
代码格式调整(不影响逻辑) |
refactor |
重构(非新功能、非修复) |
perf |
性能优化 |
test |
测试相关 |
chore |
构建/工具变更 |
示例
feat(auto): 增加自动收藏功能
fix(llm): 修复 JSON 模式下 400 错误
docs: 更新 README 安装步骤
refactor(mcp): 重构评论解析逻辑
Pull Request 流程
- Fork 本仓库
- 从
main创建特性分支:git checkout -b feature/your-feature - 编写代码并测试
- 确保代码风格一致(建议使用 IDE 自动格式化)
- 提交更改,遵循上述提交规范
- 推送分支:
git push origin feature/your-feature - 在 GitHub 上发起 Pull Request,描述你的更改内容
Bug 报告
提交 Issue 时请包含:
- 环境信息:Python 版本、操作系统、相关服务版本
- 复现步骤:尽可能详细的操作步骤
- 期望行为:你认为应该发生什么
- 实际行为:实际发生了什么
- 日志/截图:如有错误日志或截图请附上
功能建议
欢迎通过 Issue 提交功能建议,请描述:
- 使用场景:你在什么情况下需要这个功能
- 期望功能:你希望它如何工作
- 参考实现:是否有类似的项目/功能可参考
项目架构
main.py # 主程序:Gradio UI (8 Tabs) + 业务逻辑 + 自动化调度
├─ config_manager.py # 配置管理:单例模式,多 LLM 提供商
├─ llm_service.py # LLM 封装:文案生成、热点分析、评论回复、SD Prompt 指南
├─ sd_service.py # SD 封装:3 模型适配 + 9 人设视觉方案 + 换脸 + 反AI后处理
├─ mcp_client.py # MCP 客户端:小红书搜索、发布、评论、点赞
├─ analytics_service.py # 笔记数据分析 & 权重学习服务
└─ publish_queue.py # 内容排期队列(SQLite + 后台 Publisher)
核心设计原则
- 模块解耦 — 各服务独立封装,通过配置管理器共享状态
- MCP 协议 — 通过 JSON-RPC 与小红书 MCP 服务通信,不直接操作浏览器
- LLM 无关 — 支持所有 OpenAI 兼容 API,不绑定特定提供商
- UI 逻辑分离 — 业务函数与 Gradio UI 组件分开定义
- 人设驱动 — 从文案风格到图片视觉,人设参数贯穿全链路
- 防风控 — 每日操作限额、随机间隔、错误冷却、反 AI 检测多重保护
代码风格
- Python 3.10+ 语法
- 函数和类使用中文 docstring
- 日志使用
logging模块,不使用print - 配置通过
ConfigManager单例管理,不硬编码
感谢
感谢每一位贡献者!🙏