Initial commit: yu-zhi-ran platform with automation integration

This commit is contained in:
lt
2026-04-19 14:05:09 +08:00
commit 3cb2df51c8
209 changed files with 80379 additions and 0 deletions
+262
View File
@@ -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 |
| 最新运行 | A0205: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