- 新增 `get_secure()` 和 `set_secure()` 方法,优先从环境变量或系统 keyring 读取敏感配置,`config.json` 中仅存储占位符 - 将 `save()` 方法改为使用临时文件 + `os.replace()` 的原子写入,防止进程中断导致配置文件损坏 - 在 `add_llm_provider()` 和 `get_active_llm()` 中集成安全配置读写,自动迁移旧版明文 API Key ♻️ refactor(analytics): 实现分析数据原子写 - 将 `_save_analytics()` 和 `_save_weights()` 方法改为使用临时文件 + `os.replace()` 的原子写入 - 确保在写入过程中进程被终止时,原始数据文件保持完整 ♻️ refactor(main): 增强发布功能健壮性与代码模块化 - 在 `publish_to_xhs()` 中增加发布前输入校验【标题长度、图片数量、文件存在性】并在 `finally` 块中自动清理本次生成的临时图片文件 - 为全局笔记列表缓存 `_cached_proactive_entries` 和 `_cached_my_note_entries` 引入 `threading.RLock` 保护,新增 `_set_cache()` 和 `_get_cache()` 线程安全操作函数 - 将「内容创作」Tab 的 UI 构建代码拆分至 `ui/tab_create.py` 模块,主文件通过 `build_tab()` 函数调用并组装 - 将 Gradio 应用的 CSS 和主题配置提取为模块级变量,提升可维护性 📦 build(deps): 新增 keyring 依赖 - 在 `requirements.txt` 中添加 `keyring>=24.0.0` 以支持系统凭证管理 📝 docs(openspec): 新增生产就绪审计文档 - 在 `openspec/changes/archive/2026-02-24-production-readiness-audit/` 下新增设计文档、提案、任务清单及各功能规格说明 - 将核心功能规格同步至 `openspec/specs/` 目录
🍒 小红书 AI 爆文生产工坊 V2.5
全自动小红书内容创作 & 智能运营工具
灵感 → 文案 → 绘图 → 排期 → 发布 → 运营 → 学习,全闭环 AI 驱动
功能特性 • 快速开始 • 使用指南 • 配置说明 • 人设系统 • FAQ • 贡献
✨ 功能特性
📝 内容创作(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-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.example.json config.json
# 编辑 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-username/xhs-autobot.git
cd xhs-autobot
# 2. 准备配置文件
cp config.example.json config.json
# 编辑 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.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 | 纪实摄影风 | 生活场景、街拍 |
📖 使用指南
首次使用流程
- 配置 LLM — 展开「⚙️ 全局设置」,添加 LLM 提供商(API Key + Base URL),点击「连接 LLM」
- 连接 SD(可选)— 填写 SD WebUI URL,点击「连接 SD」
- 检查 MCP — 点击「检查 MCP」确认小红书服务正常
- 登录小红书 — 切换到「🔐 账号登录」Tab,扫码登录
- 选择人设 — 在人设下拉框选择博主人设(影响文案风格 + 图片视觉)
- 开始创作 — 切换到「✨ 内容创作」Tab,输入主题,一键生成
自动化运营
切换到「🤖 自动运营」Tab:
- 一键操作 — 手动触发单次评论/点赞/回复/发布
- 定时调度 — 勾选需要的功能,设置间隔时间,点击「▶️ 启动定时」
- 查看日志 — 点击「🔄 刷新日志」查看实时执行记录
- 每日统计 — 自动跟踪今日操作量,超限自动暂停
内容排期
切换到「📅 内容排期」Tab:
- 批量生成 — 点击「📋 批量生成 → 加入队列」,自动生成多篇内容存入队列
- 审核内容 — 在队列列表中预览、编辑或驳回草稿
- 设定时间 — 为已审核内容设置发布时间
- 启动发布 — 点击「▶ 启动队列处理」,后台自动在预定时间发布
智能学习
切换到「🧠 智能学习」Tab:
- 采集数据 — 点击「📊 立即采集」收集笔记互动数据
- 分析权重 — 系统自动计算主题/风格/标签权重
- 启用加权 — 开启后自动发布时优先选择高互动主题
- 定时学习 — 设置自动采集间隔,持续优化内容策略
⚙️ 配置说明
配置文件 config.json 会在运行时自动创建和保存。首次使用请从 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 |
你的小红书 userId(24 位十六进制) | 数据看板/自动回复需要 |
llm_providers |
多 LLM 提供商配置数组 | 通过 UI 管理 |
获取 userId
- 浏览器打开你的小红书主页
- 网址格式为
xiaohongshu.com/user/profile/xxxxxxxx profile/后面的就是 userId
📁 项目结构
xhs-autobot/
├── main.py # 主程序入口 (Gradio UI + 业务逻辑 + 8 个 Tab)
├── config_manager.py # 配置管理模块 (单例、自动保存)
├── llm_service.py # LLM 服务封装 (文案生成、热点分析、评论回复、SD Prompt 指南)
├── sd_service.py # Stable Diffusion 服务封装 (3 模型适配、9 人设视觉方案)
├── mcp_client.py # 小红书 MCP 客户端 (搜索、发布、评论、点赞)
├── analytics_service.py # 笔记数据分析 & 权重学习服务
├── publish_queue.py # 内容排期队列 (SQLite + 后台 Publisher)
├── config.json # 运行时配置 (gitignore)
├── config.example.json # 配置模板
├── requirements.txt # Python 依赖
├── Dockerfile # Docker 镜像构建
├── docker-compose.yml # Docker Compose 编排
├── .dockerignore # Docker 构建排除规则
├── xhs_workspace/ # 导出的文案和图片 (gitignore)
│ ├── publish_queue.db # 排期队列数据库
│ ├── analytics_data.json # 笔记表现数据
│ └── content_weights.json # 内容权重数据
└── autobot.log # 运行日志 (gitignore)
🎭 人设系统
项目内置 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: 如何添加自定义人设?
在人设下拉框中直接输入自定义人设描述即可(支持自由输入)。如需配套主题池和关键词,需在 main.py 的 PERSONA_POOL_MAP 中添加对应条目。如需配套 SD 视觉方案,需在 sd_service.py 的 PERSONA_SD_PROFILES 中添加。
Q: 支持哪些 SD 模型?
内置适配 3 款模型:majicmixRealistic(SD 1.5)、Realistic Vision(SD 1.5)、Juggernaut XL(SDXL)。系统会自动检测当前模型并匹配最佳参数。未知模型自动回退到 SDXL 默认档案。
🤝 贡献指南
欢迎贡献代码!请查看 CONTRIBUTING.md 了解详情。
简要流程:
- Fork 本项目
- 创建特性分支 (
git checkout -b feature/amazing-feature) - 提交更改 (
git commit -m 'feat: add amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 发起 Pull Request
📋 更新日志
详见 CHANGELOG.md。
⚠️ 免责声明
- 本项目仅供学习和研究目的,请遵守小红书平台的使用规范和服务条款
- 过度使用自动化功能可能导致账号被限制,请合理设置操作间隔
- 用户需为自己发布的内容和使用行为承担全部责任
- 本项目不保存、不传输任何用户的账号密码信息
📄 许可证
本项目使用 MIT License 开源。
🌟 Star History
如果这个项目对你有帮助,请点亮 ⭐ Star!