zhoujie 4d83c0f4a9
Some checks failed
CI / Lint (ruff) (push) Has been cancelled
CI / Import Check (push) Has been cancelled
feat(scheduler): 新增热点自动采集功能并优化发布路径
- 新增热点自动采集后台线程,支持定时搜索关键词并执行 AI 分析,结果缓存至结构化状态
- 新增热点分析状态管理接口,提供线程安全的 `get_last_analysis` 和 `set_last_analysis` 方法
- 新增热点数据桥接函数 `feed_hotspot_to_engine`,将分析结果注入 TopicEngine 实现热点加权推荐
- 新增热点选题下拉组件,分析完成后自动填充推荐选题,选中后自动写入选题输入框
- 优化 `generate_from_hotspot` 函数,自动获取结构化分析摘要并增强生成上下文
- 新增热点自动采集配置节点,支持通过 `config.json` 管理关键词和采集间隔

♻️ refactor(queue): 实现智能排期引擎并统一发布路径

- 新增智能排期引擎,基于 `AnalyticsService` 的 `time_weights` 自动计算最优发布时段
- 新增 `PublishQueue.suggest_schedule_time` 和 `auto_schedule_item` 方法,支持时段冲突检测和内容分布控制
- 修改 `generate_to_queue` 函数,新增 `auto_schedule` 和 `auto_approve` 参数,支持自动排期和自动审核
- 重构 `_scheduler_loop` 的自动发布分支,改为调用 `generate_to_queue` 通过队列发布,统一发布路径
- 重构 `auto_publish_once` 函数,移除直接发布逻辑,改为生成内容入队并返回队列信息
- 新增队列时段使用情况查询方法 `get_slot_usage`,支持 UI 热力图展示

📝 docs(openspec): 新增内容排期优化和热点探测优化规范文档

- 新增 `smart-schedule-engine` 规范,定义智能排期引擎的功能需求和场景
- 新增 `unified-publish-path` 规范,定义统一发布路径的改造方案
- 新增 `hotspot-analysis-state` 规范,定义热点分析状态存储的线程安全接口
- 新增 `hotspot-auto-collector` 规范,定义定时热点自动采集的任务流程
- 新增 `hotspot-engine-bridge` 规范,定义热点数据注入 TopicEngine 的桥接机制
- 新增 `hotspot-topic-selector` 规范,定义热点选题下拉组件的交互行为
- 更新 `services-queue`、`services-scheduler` 和 `services-hotspot` 规范,反映功能修改和新增参数

🔧 chore(config): 新增热点自动采集默认配置

- 在 `DEFAULT_CONFIG` 中新增 `hotspot_auto_collect` 配置节点,包含 `enabled`、`keywords` 和 `interval_hours` 字段
- 提供默认关键词列表 `["穿搭", "美妆", "好物"]` 和默认采集间隔 4 小时

🐛 fix(llm): 增强 JSON 解析容错能力

- 新增 `_try_fix_truncated_json` 方法,尝试修复被 token 限制截断的 JSON 输出
- 支持多种截断场景的自动补全,包括字符串值、数组和嵌套对象的截断修复
- 提高 LLM 分析热点等返回 JSON 的函数的稳定性

💄 style(ui): 优化队列管理和热点探测界面

- 在队列生成区域新增自动排期复选框,勾选后隐藏手动排期输入框
- 在日历视图旁新增推荐时段 Markdown 面板,展示各时段权重和建议热力图
- 在热点探测 Tab 新增推荐选题下拉组件,分析完成后动态填充选项
- 在热点探测 Tab 新增热点自动采集控制区域,支持启动、停止和配置采集参数
2026-02-28 22:22:27 +08:00

🍒 小红书 AI 爆文生产工坊 V2.5

全自动小红书内容创作 & 智能运营工具
灵感 → 文案 → 绘图 → 排期 → 发布 → 运营 → 学习,全闭环 AI 驱动

功能特性快速开始使用指南配置说明人设系统FAQ贡献

Python License: MIT CI


功能特性

📝 内容创作Tab 1

  • AI 文案生成 — 输入主题即可生成小红书爆款标题、正文、话题标签
  • AI 绘图 — 集成 Stable Diffusion WebUI支持 3 款模型智能适配
  • 人设视觉优化 — 9 种人设专属视觉方案,自动注入风格提示词
  • ReActor 换脸 — 上传头像一键换脸,保持角色一致性
  • 质量模式 — 快速/标准/精细三档,灵活平衡速度与画质
  • 反 AI 检测 — 8 层文案人格化 + 7 步图片后处理,绕过 AI 内容检测
  • 一键导出 — 文案 + 图片打包导出到本地文件夹

🔥 热点探测Tab 2

  • 关键词搜索 — 搜索小红书热门笔记,支持多维度排序
  • AI 趋势分析 — 分析热门标题套路、内容结构,给出模仿建议
  • 一键借鉴创作 — 参考热门笔记风格生成原创内容

💬 评论管家Tab 3

  • 主动评论引流 — 浏览笔记 → AI 智能生成评论 → 一键发送
  • 自动回复粉丝 — 加载笔记评论 → AI 生成回复 → 发送

🔐 账号管理Tab 4

  • 扫码登录 — 小红书二维码登录,自动获取 Token
  • 多 LLM 提供商 — 支持 DeepSeek、OpenAI、通义千问等所有兼容接口

📊 数据看板Tab 5

  • 账号概览 — 粉丝数、获赞数等核心指标可视化
  • 笔记排行 — 点赞排行图表分析
  • 笔记详情 — 全部笔记数据明细表

🧠 智能学习Tab 6

  • 数据采集 — 自动采集已发布笔记的互动数据(点赞、评论、收藏)
  • 多维权重 — 主题权重、风格权重、标签权重、标题模式权重
  • AI 深度分析 — LLM 分析笔记表现规律,生成内容策略建议
  • 定时学习 — 后台自动采集 + 分析1-48 小时可配置)
  • 加权发布 — 自动发布时根据笔记表现权重智能选择高互动主题

🤖 自动运营Tab 7无人值守

  • 一键评论 — 自动搜索高赞笔记 + AI 生成评论 + 发送
  • 一键点赞 — 批量随机点赞,提升账号活跃度
  • 一键回复 — 自动扫描我的笔记 + AI 回复粉丝评论
  • 一键发布 — 自动生成文案 + SD 生图 + 发布到小红书
  • 随机定时 — 评论/点赞/回复/发布全自动定时执行,随机间隔模拟真人
  • 每日限额 — 评论/点赞/收藏/发布/回复独立限额,防封号
  • 错误冷却 — 连续错误自动暂停,避免异常操作

📅 内容排期Tab 8

  • 批量生成 — 一键批量生成多篇内容(文案 + 图片)加入队列
  • 队列管理 — 草稿 → 审核 → 排期 → 发布,全流程状态管理
  • 定时发布 — SQLite 队列 + 后台 Publisher 线程自动定时发布
  • 队列处理器 — 启动/停止后台自动发布引擎

📸 截图预览

启动后在浏览器中打开 http://127.0.0.1:7860


🚀 快速开始

环境要求

依赖 要求 说明
Python >= 3.10 推荐 3.11+
xiaohongshu-mcp 运行中 小红书 MCP 服务(默认端口 18060
Stable Diffusion WebUI 可选 本地 AI 绘图(默认端口 7860
LLM API 必须 任意 OpenAI 兼容接口

安装步骤

# 1. 克隆项目
git clone https://github.com/<your-github-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. 复制配置文件并填写你的 API Key
cp config/config.example.json config/config.json
# 编辑 config/config.json填写 api_key、base_url 等

# 5. 启动!
python main.py

启动后会自动打开浏览器,访问 http://127.0.0.1:7860

🐳 Docker 部署(推荐)

使用 Docker Compose 一键启动所有服务,无需手动安装 Python 环境:

# 1. 克隆项目
git clone https://github.com/<your-github-username>/xhs-autobot.git
cd xhs-autobot

# 2. 准备配置文件
cp config/config.example.json config/config.json
# 编辑 config/config.json填写 api_key、base_url 等
# ⚠️ mcp_url 改为容器网络地址:
#    "mcp_url": "http://xhs-mcp:18060/mcp"

# 3. 一键启动
docker compose up -d

# 4. 查看日志
docker compose logs -f xhs-autobot

启动后访问 http://localhost:7860

Docker 服务说明

服务 容器名 端口 说明
xhs-autobot xhs-autobot 7860 主应用Gradio UI
xhs-mcp xhs-mcp 18060 小红书 MCP 服务
sd-webui sd-webui 7861 SD WebUI可选需 GPU

常用命令

# 停止所有服务
docker compose down

# 重新构建(代码更新后)
docker compose up -d --build

# 查看运行状态
docker compose ps

# 进入主容器调试
docker compose exec xhs-autobot bash

启用 Stable Diffusion需要 NVIDIA GPU

编辑 docker-compose.yml,取消 sd-webui 部分的注释,并将 config/config.json 中的 sd_url 改为:

"sd_url": "http://sd-webui:7860"

前置服务

xiaohongshu-mcp必须

本项目通过 xiaohongshu-mcp 与小红书交互(搜索、发布、评论等),请先启动 MCP 服务:

# 按照 xiaohongshu-mcp 文档启动,默认端口 18060
npx xiaohongshu-mcp

Stable Diffusion WebUI可选用于 AI 绘图)

推荐使用 AUTOMATIC1111/stable-diffusion-webui,启动时开启 API

python launch.py --api

推荐模型:

模型 架构 风格 推荐场景
JuggernautXL SDXL 电影大片风 通用首选,高质量写真
majicmixRealistic SD 1.5 东亚网红风 亚洲博主、日韩风
Realistic Vision SD 1.5 纪实摄影风 生活场景、街拍

📖 使用指南

首次使用流程

  1. 配置 LLM — 切换到「⚙️ 配置」 Tab添加 LLM 提供商API Key + Base URL点击「连接 LLM」
  2. 连接 SD(可选)— 在「⚙️ 配置」 Tab 填写 SD WebUI URL点击「连接 SD」
  3. 检查 MCP — 点击「检查 MCP」确认小红书服务正常
  4. 登录小红书 — 切换到「🔐 账号登录」 Tab扫码登录
  5. 选择人设 — 在「⚙️ 配置」 Tab 的人设下拉框选择博主人设(影响文案风格 + 图片视觉)
  6. 开始创作 — 切换到「 内容创作」Tab输入主题一键生成

自动化运营

切换到「🤖 自动运营」Tab

  • 一键操作 — 手动触发单次评论/点赞/回复/发布
  • 定时调度 — 勾选需要的功能,设置间隔时间,点击「▶️ 启动定时」
  • 查看日志 — 点击「🔄 刷新日志」查看实时执行记录
  • 每日统计 — 自动跟踪今日操作量,超限自动暂停

内容排期

切换到「📅 内容排期」Tab

  1. 批量生成 — 点击「📋 批量生成 → 加入队列」,自动生成多篇内容存入队列
  2. 审核内容 — 在队列列表中预览、编辑或驳回草稿
  3. 设定时间 — 为已审核内容设置发布时间
  4. 启动发布 — 点击「▶ 启动队列处理」,后台自动在预定时间发布

智能学习

切换到「🧠 智能学习」Tab

  1. 采集数据 — 点击「📊 立即采集」收集笔记互动数据
  2. 分析权重 — 系统自动计算主题/风格/标签权重
  3. 启用加权 — 开启后自动发布时优先选择高互动主题
  4. 定时学习 — 设置自动采集间隔,持续优化内容策略

⚙️ 配置说明

配置文件 config/config.json 会在运行时自动创建和保存。首次使用请从 config/config.example.json 复制:

{
    "api_key": "你的LLM API Key",
    "base_url": "https://api.deepseek.com/v1",
    "sd_url": "http://127.0.0.1:7860",
    "mcp_url": "http://localhost:18060/mcp",
    "model": "deepseek-chat",
    "persona": "赛博AI虚拟博主住在2077年的数码女孩...",
    "my_user_id": "你的小红书userId(24位)"
}
字段 说明 必填
api_key LLM API 密钥
base_url LLM API 地址OpenAI 兼容)
sd_url Stable Diffusion WebUI 地址 绘图需要
mcp_url xiaohongshu-mcp 服务地址
model 默认使用的 LLM 模型名
persona 博主人设(影响文案风格 + SD 视觉风格) 可选
my_user_id 你的小红书 userId24 位十六进制) 数据看板/自动回复需要
llm_providers 多 LLM 提供商配置数组 通过 UI 管理

获取 userId

  1. 浏览器打开你的小红书主页
  2. 网址格式为 xiaohongshu.com/user/profile/xxxxxxxx
  3. profile/ 后面的就是 userId

📁 项目结构

xhs-autobot/
├── main.py              # 主程序入口 (Gradio UI + 事件绑定)
├── config/              # 配置文件目录
│   ├── config.json          # 运行时配置 (gitignore)
│   └── config.example.json  # 配置模板
├── logs/                # 运行日志 (gitignore)
│   └── autobot.log
├── docs/                # 参考文档
│   └── mcp.md               # xiaohongshu-mcp 参考文档
├── scripts/             # 运行时生成的启动脚本 (gitignore)
│   ├── _autostart.bat
│   └── _autostart.vbs
├── requirements.txt     # Python 依赖
├── requirements-dev.txt # 开发工具依赖 (ruff 等)
├── Dockerfile           # Docker 镜像构建
├── docker-compose.yml   # Docker Compose 编排
├── services/            # 业务逻辑层
│   ├── config_manager.py    # 配置管理模块 (单例、自动保存)
│   ├── llm_service.py       # LLM 服务封装 (文案生成、热点分析等)
│   ├── sd_service.py        # Stable Diffusion 服务封装 (3 模型适配、9 人设视觉方案)
│   ├── mcp_client.py        # 小红书 MCP 客户端 (搜索、发布、评论、点赞)
│   ├── analytics_service.py # 笔记数据分析 & 权重学习服务
│   ├── publish_queue.py     # 内容排期队列 (SQLite + 后台 Publisher)
│   ├── scheduler.py         # 自动化运营调度器
│   ├── content.py           # 文案生成、图片生成、导出、发布
│   ├── hotspot.py           # 热点探测、热点生成、笔记缓存
│   ├── engagement.py        # 评论管家:手动评论、回复、互动
│   ├── profile.py           # 小红书账号 Profile 解析与可视化
│   ├── persona.py           # 人设管理:常量、关键词池、主题池
│   ├── connection.py        # LLM/SD/MCP/XHS 连接管理
│   ├── queue_ops.py         # 发布队列操作
│   ├── rate_limiter.py      # 频率控制、每日限额、冷却管理
│   └── autostart.py         # Windows 开机自启管理
├── ui/                  # Gradio UI 层
│   ├── app.py               # 主界面构建函数(全部 Tab UI + 事件绑定)
│   └── tab_create.py        # Tab 1「✨ 内容创作」组件定义
├── assets/
│   └── faces/               # 头像文件目录 (gitignore)
└── xhs_workspace/       # 导出的文案和图片 (gitignore)
    ├── publish_queue.db     # 排期队列数据库
    ├── analytics_data.json  # 笔记表现数据
    └── content_weights.json # 内容权重数据

🎭 人设系统

项目内置 28 种博主人设,每种人设拥有:

  • 专属主题池 — 匹配人设的内容方向(如健身博主自动抽健身主题)
  • 评论关键词 — 搜索和评论时使用与人设相关的关键词
  • SD 视觉方案 — 9 种人设拥有专属视觉优化prompt_boost + 风格词 + 负面词)
  • LLM 指导词 — LLM 生成 SD Prompt 时收到人设专属的视觉风格引导

内置人设视觉方案

人设 视觉风格
赛博AI虚拟博主 科幻/赛博朋克,发光特效,极致完美面容
性感福利主播 暖金色调,闺房/泳池,魅力摄影
身材管理健身美女 健身房/运动场,活力运动风
温柔知性时尚博主 法式优雅,时装杂志质感
文艺青年摄影师 胶片颗粒Kodak Portra 怀旧色调
二次元coser 动漫灵感Cosplay鲜艳色彩
汉服爱好者 水墨画风,丝绸流动,古典意境
独居女孩 温馨烛光Hygge 风格
资深美妆博主 环形灯棚拍,完美妆容特写

选择「🎲 随机人设」可每次自动切换,增加账号内容多样性。


常见问题

Q: LLM API 报错 400 json_object

某些 API 在使用 response_format: json_object 时要求消息中包含 "json" 一词。本项目已自动处理,如仍遇到请升级到最新版本。

Q: 评论发送成功但 App 上看不到

小红书有内容审核机制,评论可能需要 1-5 分钟显示。部分评论可能被风控(仅自己可见)。查看自动化日志中的 MCP 响应可排查。

Q: SD WebUI 连接失败

确保启动 SD WebUI 时加了 --api 参数,且端口匹配。本项目默认连接 http://127.0.0.1:7860

Q: xiaohongshu-mcp 是什么?怎么启动?

这是一个开源的小红书 MCP 服务端,提供搜索、发布、评论等 API。详见 xiaohongshu-mcp 项目

Q: 支持哪些 LLM

支持所有 OpenAI 兼容接口包括但不限于DeepSeek、GPT-4o、通义千问、Gemini通过中转、Claude通过中转等。

Q: 反 AI 检测是怎么实现的?

文案层面8 层人格化口语化改写、插入不完美表达、随机错别字、方言词汇、不规律标点、emoji 混入、段落长度随机化、句式打乱。

图片层面7 步后处理微旋转裁剪、轻微色偏、随机噪点、JPEG 二次压缩(质量 82-92、EXIF 清除、局部模糊/锐化、微位移。

Q: 如何添加自定义人设?

在人设下拉框中直接输入自定义人设描述即可(支持自由输入)。如需配套主题池和关键词,需在 services/persona.pyPERSONA_POOL_MAP 中添加对应条目。如需配套 SD 视觉方案,需在 services/sd_service.pyPERSONA_SD_PROFILES 中添加。

Q: 支持哪些 SD 模型?

内置适配 3 款模型majicmixRealisticSD 1.5、Realistic VisionSD 1.5、Juggernaut XLSDXL。系统会自动检测当前模型并匹配最佳参数。未知模型自动回退到 SDXL 默认档案。


🤝 贡献指南

欢迎贡献代码!请查看 CONTRIBUTING.md 了解详情。

简要流程:

  1. Fork 本项目
  2. 创建特性分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'feat: add amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 发起 Pull Request

📋 更新日志

详见 CHANGELOG.md


⚠️ 免责声明

  • 本项目仅供学习和研究目的,请遵守小红书平台的使用规范和服务条款
  • 过度使用自动化功能可能导致账号被限制,请合理设置操作间隔
  • 用户需为自己发布的内容和使用行为承担全部责任
  • 本项目不保存、不传输任何用户的账号密码信息

📄 许可证

本项目使用 MIT License 开源。


🌟 Star History

如果这个项目对你有帮助,请点亮 Star

Description
No description provided
Readme MIT 19 MiB
Languages
Python 99.7%
Dockerfile 0.3%