Files
yu-zhi-ran/README_NEW.md
T

6.6 KiB
Raw Permalink Blame History

宇之然内容管理平台

自动化内容生产 + 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️⃣ 启动管理平台(推荐)

cd /root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran
./start-platform.sh 8001

访问:

2️⃣ 测试自动化流水线

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️⃣ 查看当前状态

# 选题库统计
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 界面:平台 → "运行创作任务" 按钮

或命令行

python scripts/creator.py --topic-id A03

生成发布包

Web 界面:选题 → 发布 → "重新生成"

或命令行

python scripts/publisher.py --topic-id A01

发布包位置:

content/published/A01/手动发布/
├── 知乎/文章.html
└── 小红书/文章.html

标记为已发布

在 Web 界面"发布管理"中填写各平台链接 → "确认发布"

这会更新选题状态为"已发布"并保存链接。


⚙️ 配置

数据源(automation/config/sources.yaml

sources:
  - name: "新华网-环保频道"
    type: "rss"
    url: "http://..."

  - name: "本地案例库"
    type: "local_markdown"
    path: "automation/data/cases.md"

环境变量(platform/.env,可选)

PROJECT_ROOT=/root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran
LOG_LEVEL=INFO

📝 开发调试

# 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