Files
yu-zhi-ran/PROJECT_UPGRADE.md
T
lt cf5103bbca feat: 全面升级项目架构 - PostgreSQL迁移 + 配置化改造
主要变更:
- 数据库: SQLite → PostgreSQL (yzr_nr)
- 选题系统: 硬编码字段 → 配置化 (TopicField/TopicConfigField/TopicStatusConfig)
- 新增模型: ContentCalendar, ContentMetrics, MediaAsset, PlatformConfig, ContentTask
- 新增 API: topic-config, calendar, metrics, assets, tasks, platform-config
- 数据迁移: 现有选题数据迁移到新 schema (field_id/tags/custom_data/scoring_data)
- 初始化数据: 10个领域, 5种状态, 3个平台配置

服务运行: http://localhost:8001
默认账号: admin / admin123
2026-05-08 18:26:01 +08:00

10 KiB
Raw Blame History

宇之然内容平台 - 项目升级规划

从"可持续生活垂直工具" → "通用内容运营全流程平台" Phase 1: 自用验证 → Phase 2: SaaS 产品化 最后更新: 2026-05-08


一、项目定位

目标: 构建覆盖"选题→创作→审核→发布→搜集→反馈"全链路的内容运营工具。 当前阶段: 自用验证(Own Use),同时为 SaaS 产品化预留架构。

核心原则:

  • 所有业务逻辑不写死领域/行业相关字段
  • 选题系统完全配置化(评分字段/状态/标签/分类均可自定义)
  • 数据库迁移到 PostgreSQL,支持后续多租户扩展

二、当前进度

已完成

模块 状态 说明
数据库迁移 完成 SQLite → PostgreSQL (yzr_nr),所有表已创建/同步
选题配置化 完成 TopicField + TopicConfigField + TopicStatusConfig 模型,灵活领域/评分字段
选题 CRUD 完成 支持 field_id/status/tags 过滤,批量操作,评分计算
内容日历 API 完成 创建/更新/删除排期,按年月查询,状态管理
数据追踪 API 完成 ContentMetrics 模型,仪表盘/趋势/多平台汇总
素材库 API 完成 上传/管理/标签/搜索,usage_count 统计
创作任务 API 完成 ContentTask 异步任务,状态/进度/结果管理
平台配置 API 完成 知乎/微信/小红书 平台配置,含合规规则
初始化数据 完成 默认领域(10个)、状态(5种)、平台(3个)、管理员
服务器运行 运行中 http://localhost:8001

⚠️ 待前端适配

以下新 API 已完成后端,但前端页面尚未适配:

模块 API 前端文件
选题配置 /api/topic-config/* topics.html 需改版
内容日历 /api/calendar/* 需新建 calendar.html
数据分析 /api/metrics/* 需新建 metrics.html
素材库 /api/assets/* 需新建 assets.html
创作任务 /api/tasks/* 需新建 tasks.html
平台配置 /api/platform-config/* 需新建 platforms.html

未实现功能

优先级 模块 功能点 说明
P0 内容日历前端 日历视图、拖拽排期、提醒设置 API 已就绪,需前端
P0 数据看板前端 趋势图、平台对比、选题推荐 API 已就绪,需前端
P0 素材库前端 图片上传/管理/预览 API 已就绪,需前端
P0 创作任务前端 实时进度条、任务列表、取消 API 已就绪,需前端
P1 多平台适配 一篇长文 → 知乎/小红书/微信各格式 核心差异化功能
P1 热点采集 跨平台热搜、趋势追踪 有 collector 脚本待集成
P1 选题推荐 基于历史数据推荐选题 API 已就绪 (recommend-topics)
P2 内容复用 长文 → 短笔记 → 回答 → 朋友圈文案 自动化脚本
P2 通知系统 企业微信/飞书推送 有 wecom_notifier.py 待集成
P2 定时任务 APScheduler 自动执行流水线 core/scheduler.py 已有
P3 多租户 租户隔离、团队协作 SaaS 预留
P3 支付订阅 免费/专业版分级、用量统计 SaaS 预留

三、技术架构

3.1 技术栈

层次 技术 说明
后端 FastAPI 0.104+ ASGI 异步框架
ORM SQLAlchemy 2.0+ PostgreSQL + psycopg2
前端 Vue 3 (CDN) + Element Plus SPA 单页应用
数据库 PostgreSQL 15 自用阶段单租户,SaaS 预留多租户
认证 JWT (python-jose) + bcrypt Bearer Token
定时 APScheduler 内容日历/定时任务

3.2 数据库连接

环境变量:
  USE_POSTGRES=true
  PG_HOST=127.0.0.1
  PG_PORT=5432
  PG_DATABASE=yzr_nr
  PG_USER=yzr_nr
  PG_PASSWORD=aTX3WKKnPfRnM5PC

3.3 项目结构(后端)

platform/backend/app/
├── api/                    # REST API 路由
│   ├── auth.py            # 认证
│   ├── topics.py          # 选题 CRUD [重构]
│   ├── articles.py        # 文章管理
│   ├── publishing.py      # 发布记录
│   ├── calendar.py        # 内容日历 [NEW]
│   ├── metrics.py         # 数据分析 [NEW]
│   ├── assets.py          # 素材库 [NEW]
│   ├── tasks.py           # 创作任务 [NEW]
│   ├── platform_config.py  # 平台配置 [NEW]
│   ├── topic_config.py    # 选题配置 [NEW]
│   └── admin/             # 管理后台
├── core/                  # 业务逻辑
├── models.py              # SQLAlchemy 模型 [重构]
├── schemas.py             # Pydantic 验证 [重构]
├── database.py            # 数据库连接 [重构]
├── initial_data.py        # 初始化数据 [重构]
└── main.py                # FastAPI 入口 [更新]

platform/frontend/
├── index.html             # 主仪表盘
├── topics.html            # 选题管理
├── calendar.html          # 内容日历 [待建]
├── metrics.html           # 数据分析 [待建]
├── assets.html            # 素材库 [待建]
├── login.html
├── admin.html
└── ...

四、数据模型

4.1 选题系统(配置化)

TopicField(领域/分类)
  id, name, icon, color, description, parent_id, sort_order, is_active

TopicConfigField(选题评分字段配置)
  id, field_id → TopicField, name, key, field_type, weight, options, min/max, is_required, sort_order

TopicStatusConfig(状态配置)
  id, status, label, color, icon, sort_order, is_default

Topic(选题,主表)
  id, field_id → TopicField, field_name, title, status, priority_score, total_score,
  format, core_concept, audience_pain, unique_angle, priority,
  tags(JSON), custom_data(JSON), scoring_data(JSON),
  cases(JSON), source_file, lock_by, lock_at,
  created_at, updated_at, generated_at, ready_at, published_at,
  compliance_score, platform_urls(JSON)

4.2 新增模型

模型 用途
ContentCalendar 内容日历/排期管理
ContentMetrics 文章数据追踪(阅读/点赞/评论等)
MediaAsset 素材库(图片/视频/文档)
PlatformConfig 平台配置(知乎/微信/小红书格式规则)
ContentTask 创作任务(异步流水线状态)

五、API 清单

选题配置

GET    /api/topic-config/fields
POST   /api/topic-config/fields
PUT    /api/topic-config/fields/{field_id}
DELETE /api/topic-config/fields/{field_id}
GET    /api/topic-config/fields/{field_id}/scoring
POST   /api/topic-config/fields/{field_id}/scoring
PUT    /api/topic-config/scoring/{config_id}
DELETE /api/topic-config/scoring/{config_id}
POST   /api/topic-config/fields/{field_id}/scoring/batch

选题

GET    /api/topics?field_id=&status=&tag=&search=&limit=&offset=
POST   /api/topics
GET    /api/topics/stats
GET    /api/topics/{topic_id}
PUT    /api/topics/{topic_id}
DELETE /api/topics/{topic_id}
POST   /api/topics/{topic_id}/score
POST   /api/topics/{topic_id}/publish
POST   /api/topics/{topic_id}/lock
POST   /api/topics/{topic_id}/unlock
GET    /api/topics/{topic_id}/articles
GET    /api/topics/{topic_id}/metrics
POST   /api/topics/batch-update-status
GET    /api/topics/field-distribution

内容日历

GET    /api/calendar?year=&month=
GET    /api/calendar/entries?start_date=&end_date=&status=&platform=
POST   /api/calendar/entries
PUT    /api/calendar/entries/{entry_id}
DELETE /api/calendar/entries/{entry_id}
POST   /api/calendar/entries/bind-topic
POST   /api/calendar/entries/from-topic?topic_id=&platform=
GET    /api/calendar/stats?year=&month=

数据分析

GET    /api/metrics/dashboard?days=
GET    /api/metrics/trend?days=&group_by=
GET    /api/metrics/entries?topic_id=&platform=
POST   /api/metrics/entries
PUT    /api/metrics/entries/{metric_id}
DELETE /api/metrics/entries/{metric_id}
GET    /api/metrics/topics/{topic_id}
GET    /api/metrics/by-platform
GET    /api/metrics/recommend-topics?limit=

素材库

GET    /api/assets?file_type=&tag=&topic_id=&search=&limit=&offset=
GET    /api/assets/tags
GET    /api/assets/counts
POST   /api/assets/upload
PUT    /api/assets/{asset_id}
DELETE /api/assets/{asset_id}
POST   /api/assets/{asset_id}/use

创作任务

GET    /api/tasks?status=&topic_id=&stage=&limit=
GET    /api/tasks/active
POST   /api/tasks
GET    /api/tasks/{task_id}
PUT    /api/tasks/{task_id}/start
PUT    /api/tasks/{task_id}/progress
PUT    /api/tasks/{task_id}/complete
PUT    /api/tasks/{task_id}/fail
DELETE /api/tasks/{task_id}
POST   /api/tasks/run-creator

平台配置

GET    /api/platform-config?active_only=
POST   /api/platform-config
GET    /api/platform-config/{platform}
PUT    /api/platform-config/{platform}
DELETE /api/platform-config/{platform}

六、实施计划

Phase 1(当前):自用验证

目标: 2个月内完成全链路闭环,自己稳定产出10-20篇文章

已完成:

  • 数据库迁移 PostgreSQL
  • 选题系统配置化
  • 所有新模型 + API 后端完成
  • 服务运行中

进行中:

  • 前端适配(新页面)

待开发:

  • 前端: 内容日历/数据分析/素材库/创作任务 页面
  • 前端: 选题管理改版(适配配置化)
  • 集成: 热点采集脚本 → API
  • 集成: 企微通知 → API
  • 集成: 多平台格式适配

Phase 2SaaS 产品化(待定)


七、启动方式

cd /root/openclaw-workspace/projects/yu-zhi-ran/platform/backend

# 环境变量(.env 已配置)
USE_POSTGRES=true PG_HOST=127.0.0.1 PG_PORT=5432 \
PG_DATABASE=yzr_nr PG_USER=yzr_nr PG_PASSWORD=aTX3WKKnPfRnM5PC \
python3 -m uvicorn app.main:app --host 0.0.0.0 --port 8001 --reload

# 默认管理员: admin / admin123
# API 文档: http://localhost:8001/docs

八、数据库当前状态

领域: 10 个(未来工作方式、AI与效率、可持续生活、数字游民、个人成长、科技人文、个人知识工厂、科技人文交叉、可持续生活系统、测试)
选题: 26 个
状态分布: 待处理20 / 待审查2 / 待发布3 / 已发布1
平台: 3 个(知乎/微信公众号/小红书)

文档版本: v0.2 更新时间: 2026-05-08