Initial commit: yu-zhi-ran platform with automation integration
This commit is contained in:
+262
@@ -0,0 +1,262 @@
|
||||
# 宇之然内容管理平台
|
||||
|
||||
> 自动化内容生产 + Web 管理界面
|
||||
|
||||
一个可持续、可管理的内容创业系统,实现从选题采集到多平台发布的全流程自动化。
|
||||
|
||||
---
|
||||
|
||||
## 🎯 核心能力
|
||||
|
||||
- ✅ **全自动流水线**:采集 → 创作 → 合规 → 发布准备(每日凌晨运行)
|
||||
- ✅ **Web 管理界面**:一键控制、实时监控、可视化发布包管理
|
||||
- ✅ **降级策略**:外部源失效时自动切换本地案例库,保证稳定产出
|
||||
- ✅ **多平台支持**:知乎、小红书、微信公众号(HTML 发布包)
|
||||
- ✅ **风控设计**:半自动发布(生成 HTML + 人工复制),避免平台封号
|
||||
|
||||
---
|
||||
|
||||
## 📦 项目结构(简洁版)
|
||||
|
||||
```
|
||||
yu-zhi-ran/
|
||||
├── platform/ # Web 管理平台(FastAPI + Vue 3)
|
||||
│ ├── backend/ # API 服务
|
||||
│ └── frontend/ # 管理界面
|
||||
├── automation/ # 自动化数据 + 日志
|
||||
│ ├── data/ # JSON 选题库、草稿、发布包
|
||||
│ ├── logs/ # 运行日志
|
||||
│ └── scripts/ → ../scripts/ # 软链到 scripts/
|
||||
├── scripts/ # CLI 脚本(collector, creator, optimizer...)
|
||||
├── content/ # 已发布内容存储
|
||||
├── config/ # 配置文件(RSS源、机器人)
|
||||
├── start-platform.sh # 快速启动管理平台
|
||||
└── README_NEW.md # 本文档
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 快速开始
|
||||
|
||||
### 1️⃣ 启动管理平台(推荐)
|
||||
|
||||
```bash
|
||||
cd /root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran
|
||||
./start-platform.sh 8001
|
||||
```
|
||||
|
||||
访问:
|
||||
- 界面:http://localhost:8001/
|
||||
- API 文档:http://localhost:8001/docs
|
||||
|
||||
### 2️⃣ 测试自动化流水线
|
||||
|
||||
```bash
|
||||
cd /root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran
|
||||
python test_full_pipeline.py --topic-id A01
|
||||
```
|
||||
|
||||
预期输出:
|
||||
- 生成 `automation/data/drafts/2026-04-19/A01_*.md`
|
||||
- 生成 `automation/data/releases/2026-04-19/*/A01_*.html`
|
||||
- 合规自动通过
|
||||
|
||||
### 3️⃣ 查看当前状态
|
||||
|
||||
```bash
|
||||
# 选题库统计
|
||||
python -c "import json; d=json.load(open('automation/data/sustainability_topics.json')); print(f'总{len(d)} 待处理:{sum(1 for t in d if t.get(\"status\")==\"待处理\")} 待发布:{sum(1 for t in d if t.get(\"status\")==\"待发布\")}')"
|
||||
|
||||
# 日志(今日)
|
||||
tail -f automation/logs/creator_$(date +%Y-%m-%d).log
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔄 系统架构
|
||||
|
||||
```
|
||||
定时任务 (cron)
|
||||
│
|
||||
├─▶ 05:00 collector.py → automation/data/sustainability_topics.json(选题)
|
||||
├─▶ 05:30 creator.py → drafts/ + releases/(HTML)
|
||||
├─▶ 05:45 optimizer.py → 合规报告
|
||||
└─▶ 06:00 publisher.py → content/published/(发布包)
|
||||
|
||||
Web 平台(可选控制)
|
||||
│
|
||||
├─▶ 一键触发创作/优化
|
||||
├─▶ 查看选题列表和详情
|
||||
├─▶ 生成发布包、预览HTML、复制
|
||||
└─▶ 查看实时流水线状态
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 当前运行状态(2026-04-19)
|
||||
|
||||
| 指标 | 数值 |
|
||||
|------|------|
|
||||
| 总选题数 | 22 |
|
||||
| 待处理 | 20 |
|
||||
| 待发布 | 2 (A01, A02) |
|
||||
| 自动运行 | ✅ 正常(05:00-06:00) |
|
||||
| 最新运行 | A02(05:30 完成,8秒) |
|
||||
| 合规通过率 | 100%(3/3) |
|
||||
|
||||
待发布内容已就绪,可手动发布到知乎/小红书。
|
||||
|
||||
---
|
||||
|
||||
## 🎮 主要操作指南
|
||||
|
||||
### 触发创作任务
|
||||
|
||||
**Web 界面**:平台 → "运行创作任务" 按钮
|
||||
|
||||
**或命令行**:
|
||||
```bash
|
||||
python scripts/creator.py --topic-id A03
|
||||
```
|
||||
|
||||
### 生成发布包
|
||||
|
||||
**Web 界面**:选题 → 发布 → "重新生成"
|
||||
|
||||
**或命令行**:
|
||||
```bash
|
||||
python scripts/publisher.py --topic-id A01
|
||||
```
|
||||
|
||||
发布包位置:
|
||||
```
|
||||
content/published/A01/手动发布/
|
||||
├── 知乎/文章.html
|
||||
└── 小红书/文章.html
|
||||
```
|
||||
|
||||
### 标记为已发布
|
||||
|
||||
在 Web 界面"发布管理"中填写各平台链接 → "确认发布"
|
||||
|
||||
这会更新选题状态为"已发布"并保存链接。
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ 配置
|
||||
|
||||
### 数据源(automation/config/sources.yaml)
|
||||
|
||||
```yaml
|
||||
sources:
|
||||
- name: "新华网-环保频道"
|
||||
type: "rss"
|
||||
url: "http://..."
|
||||
|
||||
- name: "本地案例库"
|
||||
type: "local_markdown"
|
||||
path: "automation/data/cases.md"
|
||||
```
|
||||
|
||||
### 环境变量(platform/.env,可选)
|
||||
|
||||
```bash
|
||||
PROJECT_ROOT=/root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran
|
||||
LOG_LEVEL=INFO
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📝 开发调试
|
||||
|
||||
```bash
|
||||
# 1. 检查环境
|
||||
cd platform
|
||||
python check.py
|
||||
|
||||
# 2. 启动服务(开发模式)
|
||||
./run.sh 8000
|
||||
|
||||
# 3. 查看 API 日志(新终端)
|
||||
tail -f automation/logs/creator_$(date +%Y-%m-%d).log
|
||||
|
||||
# 4. 重置数据库(如需)
|
||||
rm -f data/yzr.db
|
||||
cd platform/backend
|
||||
python -c "from app.database import init_db; init_db(); from app.initial_data import import_topics_from_json; import_topics_from_json()"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚧 注意事项
|
||||
|
||||
### 路径规范
|
||||
|
||||
所有 `platform/backend/app/**/*.py` 必须使用相对路径计算 `PROJECT_ROOT`:
|
||||
|
||||
- `app/database.py`, `initial_data.py`: `Path(__file__).resolve().parents[3]`
|
||||
- `app/api/*.py`, `app/core/*.py`: `Path(__file__).resolve().parents[4]`
|
||||
|
||||
禁止使用硬编码绝对路径!
|
||||
|
||||
### 软链接
|
||||
|
||||
```
|
||||
platform/data → ../data
|
||||
platform/logs → ../logs
|
||||
automation/scripts → ../scripts/
|
||||
```
|
||||
|
||||
这些链接确保平台和自动化模块共享数据。
|
||||
|
||||
### 数据流向
|
||||
|
||||
**唯一真理源**:`automation/data/sustainability_topics.json`
|
||||
|
||||
- 所有状态更新(待处理 → 待发布 → 已发布)都应写入此 JSON
|
||||
- `platform` 通过 `sync.py` 同步到 SQLite 供前端快速查询
|
||||
- 不要直接修改数据库而不更新 JSON!
|
||||
|
||||
---
|
||||
|
||||
## 📚 详细文档
|
||||
|
||||
- `YUZHIRAN_PLATFORM.md` - 完整项目文档(架构、API、扩展)
|
||||
- `platform/PORTFOLIO.md` - 平台架构详解
|
||||
- `platform/README.md` - 平台使用说明
|
||||
- `PROJECT_STRUCTURE.md` - 目录结构说明
|
||||
|
||||
---
|
||||
|
||||
## 🐛 故障排查
|
||||
|
||||
| 问题 | 检查点 | 命令 |
|
||||
|------|--------|------|
|
||||
| Web 界面无数据 | JSON 是否同步? | `curl http://localhost:8000/api/system/status` |
|
||||
| 创作失败 | creator 日志 | `tail -n 50 automation/logs/creator_*.log` |
|
||||
| 发布包缺失 | releases 目录 | `ls automation/data/releases/$(date +%Y-%m-%d)/` |
|
||||
| 端口占用 | 8000 被谁用? | `lsof -i:8000` |
|
||||
|
||||
---
|
||||
|
||||
## 🎉 现状总结
|
||||
|
||||
昨天(4月18日)完成:
|
||||
- 数据源切换(新华网+人民网)
|
||||
- 降级策略(本地案例库保底)
|
||||
- 锁机制(2小时超时)
|
||||
- publisher 发布包系统
|
||||
- 前端管理界面
|
||||
|
||||
今天(4月19日):
|
||||
- 统一项目结构,整合 platform + automation
|
||||
- 修正所有路径计算
|
||||
- 添加软链接统一数据目录
|
||||
- 创建启动脚本和文档
|
||||
|
||||
**状态**:✅ 系统稳定运行,每日自动产出内容,Web 平台就绪。
|
||||
|
||||
---
|
||||
|
||||
**维护**: AI 助手小然
|
||||
**更新**: 2026-04-19
|
||||
Reference in New Issue
Block a user