# 宇之然内容创作平台 一个轻量级的管理平台,用于监控和操作内容生产流水线。 ## 快速开始 ### 1. 环境准备 ```bash cd /root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran/platform # 创建虚拟环境(推荐) backend/venv/bin/python -m venv backend/venv # 若不存在 source backend/venv/bin/activate # 安装依赖 pip install -r backend/requirements.txt ``` ### 2. 启动服务 ```bash # 方式一:使用启动脚本(推荐) ./run.sh 8000 # 方式二:手动启动 cd backend python -m uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload ``` ### 3. 访问 - **界面**: http://localhost:8000/ - **API文档**: http://localhost:8000/docs - **系统状态**: http://localhost:8000/api/system/status ## 核心功能 | 功能 | 描述 | |------|------| | 📊 仪表盘 | 选题总数、待发布数、今日生成 | | 🔄 流水线控制 | 触发创作、合规优化、状态监控 | | 📝 选题管理 | 列表、筛选、预览、发布 | | 📦 发布包管理 | 生成多平台HTML发布包、复制 | | 📋 日志查看 | creator/optimizer/collector 日志 | ## 与自动化流水线的集成 本平台位于 `platform/`,不修改原有 `automation/scripts/` 脚本。 **集成方式**: - `backend/app/core/generator.py` 调用 `scripts/creator.py` - `backend/app/core/optimizer.py` 调用 `scripts/compliance_optimizer.py` - `backend/app/api/publisher.py` 调用 `scripts/publisher.py` - 数据存储:`automation/data/` 为唯一数据源 - 同步:`sync.py` 将 JSON 选题同步到 SQLite 数据库供前端查询 **目录结构关系**: ``` yu-zhi-ran/ ├── platform/ # 管理平台(本目录) │ ├── backend/app/ │ │ ├── core/generator.py → 调用 ../scripts/creator.py │ │ ├── core/optimizer.py → 调用 ../scripts/compliance_optimizer.py │ │ └── api/publisher.py → 调用 ../scripts/publisher.py │ └── frontend/index.html # UI ├── automation/ │ ├── data/ ← 数据源(JSON) │ │ ├── sustainability_topics.json │ │ ├── drafts/ │ │ └── releases/ │ └── logs/ ← 日志(creator, optimizer, publisher) └── scripts/ ├── creator.py ← 被调用 ├── compliance_optimizer.py └── publisher.py ``` ## 配置 环境变量(可选): | 变量 | 说明 | 默认 | |------|------|------| | `PROJECT_ROOT` | 项目根目录 | 自动推导 | | `DATA_DIR` | 平台数据库目录 | `platform/data` | | `LOG_LEVEL` | 日志级别 | `INFO` | | `ALLOWED_ORIGINS` | CORS允许的源 | `*` | 示例: ```bash export PROJECT_ROOT=/path/to/yu-zhi-ran ./run.sh 8000 ``` ## 开发调试 ```bash # 检查依赖和环境 python check.py # 查看 API 日志 tail -f automation/logs/creator_$(date +%Y-%m-%d).log # 数据库初始化(首次) cd backend python -c "from app.database import init_db; init_db()" # 手动同步数据(测试) curl -X POST http://localhost:8000/api/system/sync/run ``` ## 故障排查 | 症状 | 检查点 | |------|--------| | 前端显示无选题 | 1. `automation/data/sustainability_topics.json` 是否存在且包含 `status: \"待处理\"` 的数据
2. 点击"全量刷新"按钮 | | 创作任务失败 | 1. 查看 `automation/logs/creator_*.log`
2. 确认 `scripts/creator.py` 可执行 | | 发布包为空 | 1. 确认 `automation/data/releases/YYYY-MM-DD/` 下有对应平台的 HTML
2. 点击发布Tab → "重新生成" | | 端口8000占用 | 停止其他 uvicorn 进程或 `./run.sh 8080` 改用其他端口 | ## 部署清单 - [x] FastAPI 后端(无 Docker,直接运行) - [x] Vue 3 前端(CDN依赖,无需构建) - [x] SQLite 数据库(`platform/data/yzr.db`) - [x] 自动化流水线集成(subprocess 调用) - [x] 数据同步模块(JSON ↔ SQLite) - [x] 流水线状态监控面板 - [x] 日志查看功能 - [ ] 反向代理(Nginx)配置(如需外网访问) - [ ] HTTPS(Let's Encrypt) - [ ] 系统服务(systemd) 如需外网访问,建议配置 Nginx 反向代理和 HTTPS。 ## 技术栈 - **后端**: FastAPI 0.115.0 + Uvicorn - **前端**: Vue 3 + Element Plus - **数据库**: SQLite 3 - **脚本**: Python 3 (subprocess) - **样式**: Tailwind CSS (CDN) ## 文档 - 详细架构设计: `PORTFOLIO.md` - 使用说明: 本文档 - API 文档: http://localhost:8000/docs (运行后) --- **版本**: 0.1.0 **更新**: 2026-04-19 **维护**: 宇之然 AI 助手