From 00431c827b0c025611c04794802bd6113fbab04d Mon Sep 17 00:00:00 2001 From: Yuzhiran Dev Date: Wed, 17 Jun 2026 09:02:54 +0800 Subject: [PATCH] feat: add org_id to ContentCalendar and ContentTask models --- .omo/ralph-loop.local.md | 13 + .../ses_13069b590ffefKhsLBe5CKeIx4.json | 10 + .../ses_1dede8a7affeG6DxtfPUOviXrp.json | 10 + docs/WORKSPACE_REDESIGN.md | 331 ++++++++++++++++++ platform/backend/app/models.py | 2 + scripts/migrate_categories.py | 312 +++++++++++++++++ 6 files changed, 678 insertions(+) create mode 100644 .omo/ralph-loop.local.md create mode 100644 .omo/run-continuation/ses_13069b590ffefKhsLBe5CKeIx4.json create mode 100644 .omo/run-continuation/ses_1dede8a7affeG6DxtfPUOviXrp.json create mode 100644 docs/WORKSPACE_REDESIGN.md create mode 100644 scripts/migrate_categories.py diff --git a/.omo/ralph-loop.local.md b/.omo/ralph-loop.local.md new file mode 100644 index 0000000..e015bd4 --- /dev/null +++ b/.omo/ralph-loop.local.md @@ -0,0 +1,13 @@ +--- +active: true +iteration: 1 +max_iterations: 500 +completion_promise: "DONE" +initial_completion_promise: "DONE" +started_at: "2026-06-16T23:59:41.756Z" +session_id: "ses_1dede8a7affeG6DxtfPUOviXrp" +ultrawork: true +strategy: "continue" +message_count_at_start: 8116 +--- +开始全面改造,包括数据隔离与权限工作,改造实施并发数不要超过3 diff --git a/.omo/run-continuation/ses_13069b590ffefKhsLBe5CKeIx4.json b/.omo/run-continuation/ses_13069b590ffefKhsLBe5CKeIx4.json new file mode 100644 index 0000000..a497d37 --- /dev/null +++ b/.omo/run-continuation/ses_13069b590ffefKhsLBe5CKeIx4.json @@ -0,0 +1,10 @@ +{ + "sessionID": "ses_13069b590ffefKhsLBe5CKeIx4", + "updatedAt": "2026-06-16T08:46:00.608Z", + "sources": { + "background-task": { + "state": "idle", + "updatedAt": "2026-06-16T08:46:00.608Z" + } + } +} \ No newline at end of file diff --git a/.omo/run-continuation/ses_1dede8a7affeG6DxtfPUOviXrp.json b/.omo/run-continuation/ses_1dede8a7affeG6DxtfPUOviXrp.json new file mode 100644 index 0000000..a2d4ea2 --- /dev/null +++ b/.omo/run-continuation/ses_1dede8a7affeG6DxtfPUOviXrp.json @@ -0,0 +1,10 @@ +{ + "sessionID": "ses_1dede8a7affeG6DxtfPUOviXrp", + "updatedAt": "2026-06-15T14:52:36.537Z", + "sources": { + "background-task": { + "state": "idle", + "updatedAt": "2026-06-15T14:52:36.537Z" + } + } +} \ No newline at end of file diff --git a/docs/WORKSPACE_REDESIGN.md b/docs/WORKSPACE_REDESIGN.md new file mode 100644 index 0000000..6ca6c7d --- /dev/null +++ b/docs/WORKSPACE_REDESIGN.md @@ -0,0 +1,331 @@ +# 宇之然工作台改造方案 — 极简实用 AI Agent 时代设计 + +> 调研日期: 2026-06-16 +> 基于 2026 年 AI 产品设计趋势 + 现有工作台全面审计 + +--- + +## 一、现有工作台问题分析 + +### 1.1 当前页面结构 + +| 页面 | 定位 | 问题 | +|------|------|------| +| `/index.html` 仪表盘 | 系统概览 + 模块状态 + 近期计划 | **系统视角**,不是用户视角。6 张统计卡片 + 6 个定时模块卡片 + 调度状态 → 像运维面板,不像创作工作台 | +| `topics.html` 选题 | 选题表格 CRUD + 批量操作 | 功能完整但无聊。没有 AI 辅助选题推荐,没有智能排序 | +| `metrics.html` 数据 | 统计看板 + 图表 | 功能 OK,但与 GEO/搜索排名/合规数据分离在不同页面 | +| `calendar.html` 日历 | 内容日历 | 独立页面,与选题/数据割裂 | +| `tasks.html` 任务 | 流水线执行记录 | 展示后端调度状态,普通用户看不懂 | +| `admin.html` 系统管理 | 13 个 Tab 的后台 | 混入了业务功能(AI助手、搜索排名、GEO) | +| `assets.html` 素材 | 素材管理 | 基础功能 | +| `landing.html` 官网 | 产品官网 | ✅ 独立、清晰 | + +### 1.2 核心问题 + +1. **仪表盘是「系统监控」不是「创作工作台」** + - 一进来看到的是定时任务状态(热点趋势/采集/创作/审查),不是「我今天要做什么」 + - 缺少任务优先级、待办提醒、进度概览 + - 对于内容编辑来说,模块卡片(scheduler 状态)毫无意义 + +2. **导航/信息架构是「功能菜单」不是「创作流程」** + - 六个平级菜单项:仪表盘、选题、数据、日历、素材、任务 + - 没有工作流意识 — 用户需要在多个页面跳转来完成一个创作流程 + - 缺少「最近工作」「快速开始」等具有上下文感的入口 + +3. **AI 能力是「附加功能」不是「内嵌体验」** + - AI 助手是右下角浮窗 chatbot,与工作流分离 + - AI 选题分析在选题页弹窗里,AI 写文章在发布流程里 + - 没有 Agent 工作区 — 没有一个地方能看到 AI 正在做什么、做了什么、需要什么审批 + +4. **权限与功能混杂** + - 业务功能(搜索排名、GEO 优化、AI 助手)锁在 admin.html 里 + - 普通用户使用需要切换到「系统管理」—— 概念上就不对 + +5. **缺少「Agent 时代」的核心交互模式** + - ❌ 没有 Plan-first(先展示计划,再执行) + - ❌ 没有 AI 操作轨迹/审计 + - ❌ 没有任务编排/Agent 工作区 + - ❌ 没有智能建议/预测 + - ✅ 但已经有一个基础的 AI 助手浮窗底座 + +--- + +## 二、2026 AI 产品设计趋势映射 + +### 从 7 个趋势看我们应该做什么 + +| # | 趋势 | 对我们意味着什么 | +|---|------|----------------| +| 1 | **UX → AX (Agentic Experience)** | 工作台需要展示 AI 的**行动计划**和**执行轨迹**,而不是单纯的界面操作 | +| 2 | **Plan-first 交互** | 选题→创作→发布 应该有一个**流程预览**步骤,AI 先展示「我将做 A→B→C」,用户确认后再执行 | +| 3 | **Invisible AI (嵌入式 AI)** | AI 不应该是右下角聊天窗,而应该嵌入到选题列表(智能排序)、文章编辑(实时优化建议)、日历(智能排期)| +| 4 | **Delegation with Control** | 用户需要看到一个「代理仪表盘」— AI 正在做什么、已完成什么、需要审批什么 | +| 5 | **Workspace over Chat** | 从「跟 AI 对话」到「AI 作为团队成员在共享空间工作」| +| 6 | **预览→差异→确认 模式** | 所有 AI 生成/修改的内容,先展示 diff/预览,再确认写入 | +| 7 | **审批路径和可逆性** | 每一步操作都有 undo 路径和操作历史 | + +--- + +## 三、改造方案设计 + +### 3.1 总体信息架构重构 + +``` +当前: 目标: +┌──────────┐ ┌──────────────────┐ +│ 仪表盘 │ ← 系统视角 │ 工作台 (首页) │ ← 用户视角 +│ 选题 │ │ ├─ 今日待办 │ +│ 数据 │ │ ├─ 创作流水线 │ +│ 日历 │ │ ├─ 智能建议 │ +│ 素材 │ │ └─ 最近工作 │ +│ 任务 │ ├──────────────────┤ +│ 系统管理 │ │ 内容工厂 │ ← 创作流程 +└──────────┘ │ ├─ 选题工作区 │ + │ ├─ AI 创作工作区 │ + │ ├─ 发布工作区 │ + │ └─ 内容日历 │ + ├──────────────────┤ + │ 数据洞察 │ ← 效果分析 + │ ├─ 数据看板 │ + │ ├─ 搜索排名 │ + │ ├─ GEO 就绪度 │ + │ └─ 合规报告 │ + ├──────────────────┤ + │ 资产库 │ ← 资源管理 + ├──────────────────┤ + │ 系统管理 (admin) │ ← 仅管理员 +``` + +### 3.2 工作台首页(全新设计) + +**目标**:一打开就知道今天要做什么、进度如何、有什么需要关注 + +``` +┌─────────────────────────────────────────────────┐ +│ ☀️ 早上好,张三 你的团队本周已发布 3 篇内容 │ +├─────────────────────────────────────────────────┤ +│ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │ +│ │ 待处理│ │ 待审查│ │ 待发布│ │ 本月 │ │ 合规 │ │ +│ │ 选题 │ │ 文章 │ │ 内容 │ │ 目标 │ │ 健康 │ │ +│ │ 12 │ │ 5 │ │ 3 │ │ 67% │ │ 94% │ │ +│ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘ │ +├─────────────────────────────────────────────────┤ +│ 📋 今日待办 │ +│ ┌─────────────────────────────────────────────┐ │ +│ │ 🔴 审查「远程办公的 5 个陷阱」- 逾期 2 天 │ │ +│ │ 🟡 审核「AI 写作工具实测」- AI 已完稿 │ │ +│ │ 🔵 确认本周排期 - 3 篇待定稿 │ │ +│ └─────────────────────────────────────────────┘ │ +├─────────────────────────────────────────────────┤ +│ 🤖 AI Agent 工作区 │ +│ ┌─────────────────────────────────────────────┐ │ +│ │ 📡 热点采集 ✅ 完成 (12 条新趋势) │ │ +│ │ ✍️ 文章创作 ⏳ 进行中 (2/5 篇) │ │ +│ │ 🔍 合规审查 ⏳ 排队中 (3 篇待审) │ │ +│ │ 📊 数据同步 ⏰ 06:00 自动运行 │ │ +│ │ │ │ +│ │ [查看 Agent 轨迹 →] │ │ +│ └─────────────────────────────────────────────┘ │ +├─────────────────────────────────────────────────┤ +│ 💡 AI 智能建议 │ +│ ┌─────────────────────────────────────────────┐ │ +│ │ 💡 「碳中和」关键词本周搜索量 ↑47% │ │ +│ │ 建议创建一篇相关选题 │ │ +│ │ [一键创建选题 →] │ │ +│ │ 💡 你的知乎上周互动率 ↑12% │ │ +│ │ 建议继续保持数据分析深度 │ │ +│ └─────────────────────────────────────────────┘ │ +├─────────────────────────────────────────────────┤ +│ 📅 近期计划 │ +│ ┌──────────┬──────────────────┬──────────┐ │ +│ │ 06/17 二 │ 远程办公工具对比 │ 知乎发布 │ │ +│ │ 06/18 三 │ AI 写作体验 │ 公众号 │ │ +│ │ 06/19 四 │ 零浪费生活指南 │ 小红书 │ │ +│ └──────────┴──────────────────┴──────────┘ │ +└─────────────────────────────────────────────────┘ +``` + +### 3.3 内容工厂(创作流水线重构) + +**目标**:按创作流程组织,而不是按数据表组织 + +#### 选题工作区 +- **AI 智能选题板**:热点趋势 + 关键词热度 + 历史数据 → 推荐选题 +- **选题看板**:Kanban 视图(待处理→分析中→已评分→待创作) +- **批量操作**:AI 一键分析 → 自动评分 → 自动排序 +- **卡片预览**:题目的核心观点、受众痛点、差异化切入点和评分一览 + +#### AI 创作工作区 (NEW) +- **创作任务面板**:显示所有进行中的 AI 创作任务 +- **Plan-first 流程**:用户选择选题 → AI 展示大纲 → 用户确认 → AI 逐节写作 + ``` + 步骤 1: 选择选题 + 平台 + 步骤 2: AI 生成大纲 (展示预览) + 步骤 3: 用户调整大纲 (拖拽排序/编辑) + 步骤 4: AI 逐节写作 (进度条展示) + 步骤 5: 合规审查 (展示问题列表) + 步骤 6: 用户最终编辑 + ``` +- **Agent 执行轨迹**:每次 AI 操作都有时间线记录 +- **在线编辑器**:统一的富文本编辑器,支持实时 AI 优化建议 + +#### 发布工作区 +- **发布检查清单**:AI 自动检查合规、字数、配图、格式 +- **一键多平台发布**:选题→三平台各自适配→预览→确认发布 +- **发布历史**:时间线视图 + +### 3.4 AI Agent 工作区(新概念页面) + +**这是本次改造的核心创新亮点** — 一个展示 AI 作为「团队成员」工作状况的看板。 + +``` +┌─────────────────────────────────────────────────┐ +│ 🤖 AI Agent 工作区 │ +├─────────────────────────────────────────────────┤ +│ 🔴 活跃任务 │ +│ ┌─────────────────────────────────────────────┐ │ +│ │ ✍️ 正在创作「远程办公的 5 个陷阱」→ 知乎版 │ │ +│ │ 进度: ████████░░ 78% │ │ +│ │ 当前步骤: 撰写第 3 节「团队协作挑战」 │ │ +│ │ [预览] [暂停] [取消] │ │ +│ │ │ │ +│ │ 🔍 正在审查「AI 写作工具实测」- 小红书版 │ │ +│ │ 进度: ████░░░░░░ 35% │ │ +│ │ 发现 2 个合规问题 │ │ +│ │ [查看详情] │ │ +│ └─────────────────────────────────────────────┘ │ +├─────────────────────────────────────────────────┤ +│ ⏳ 待审批 │ +│ ┌─────────────────────────────────────────────┐ │ +│ │ 📝 大纲待确认 「零浪费生活指南」 │ │ +│ │ 已由 AI 自动生成,等待你审核 │ │ +│ │ [查看大纲] [确认] [修改] │ │ +│ │ │ │ +│ │ 📄 文章待审 「碳中和入门」已完稿 │ │ +│ │ 合规评分 92/100,2 条建议 │ │ +│ │ [审阅] [通过] [退回修改] │ │ +│ └─────────────────────────────────────────────┘ │ +├─────────────────────────────────────────────────┤ +│ ✅ 今日已完成 │ +│ ┌─────────────────────────────────────────────┐ │ +│ │ ✅ 采集热点 12 条 → 生成 3 个新选题 │ │ +│ │ ✅ 同步数据指标 → 知乎互动率 +12% │ │ +│ └─────────────────────────────────────────────┘ │ +└─────────────────────────────────────────────────┘ +``` + +### 3.5 数据洞察(统一分析中心) + +将当前分散的数据功能整合: + +| Tab | 功能 | 来源 | +|-----|------|------| +| 概览 | 总指标 + 趋势图 | 现有 metrics.html | +| 搜索排名 | 关键词排名追踪 | 现 admin.html 搜索排名 | +| GEO 就绪度 | AI 搜索优化评分 | 现 admin.html GEO | +| 合规报告 | 发布前合规检查历史 | 现 admin.html + 优化报告 | +| 平台对比 | 知乎/公众号/小红书数据 | 现有 metrics.html | + +### 3.6 导航改造 + +```javascript +// 现有 navItems (硬编码): +[{dashboard, topics, metrics, calendar, assets, tasks}] +// admin 额外: [admin] + +// 目标 navItems (按角色动态): +// 编辑: +[{工作台(top), 内容工厂(factory), 数据洞察(insights), 资产库(assets)}] +// 管理员: +内容工厂 + 数据洞察 + 资产库 + 系统管理(admin) +``` + +导航从「功能清单」变成「流程引导」: +- **工作台** = 首页(今日待办 + Agent 状态 + 智能建议) +- **内容工厂** = 创作全流程(选题→创作→发布→日历) +- **数据洞察** = 所有数据分析入口 +- **资产库** = 素材管理 + +### 3.7 移动端适配 + +当前移动端只是隐藏表格换卡片,改造后: +- 底部 Tab 导航栏(代替顶部汉堡菜单) +- 工作台首页简化为:今日待办 + Agent 状态 + 快速操作按钮 +- 内容工厂:简易 Kanban,手势左右切换阶段 +- AI Agent: 推送通知代替实时面板 + +--- + +## 四、实施优先级 + +### P0 — 快速见效 (1-2 天) +这些改动小但体验提升大: + +| 改动 | 文件 | 工作量 | +|------|------|--------| +| 仪表盘改为用户视角(统计卡片 = 待办数量而不是系统模块) | `index.html` | 半天 | +| 将 AI 助手从浮窗升级为半屏面板 | `ai-assistant.js` | 半天 | +| 导航改为新架构(工作台/内容工厂/数据洞察/资产库) | `uni-nav.js` | 半天 | + +### P1 — 核心重构 (3-5 天) +| 改动 | 涉及 | 工作量 | +|------|------|--------| +| 内容工厂页面(创作流水线) | 新建 `factory.html` | 2 天 | +| AI Agent 工作区 | 新建 `agent.html` | 2 天 | +| 数据洞察整合(合并 GEO/搜索排名) | 改造 `metrics.html` | 1 天 | + +### P2 — 增强功能 (5-7 天) +| 改动 | 工作量 | +|------|--------| +| Plan-first 创作流程(大纲预览→确认→执行) | 3 天 | +| Agent 执行轨迹/审计时间线 | 2 天 | +| 智能选题推荐面板 | 2 天 | +| 移动端全面适配 | 2 天 | + +### P3 — AI 原生体验 (后续) +| 改动 | 工作量 | +|------|--------| +| 智能排期 / 内容策略建议 | 3 天 | +| 自动化工作流编排(拖拽编排 Agent 任务) | 5 天 | +| 多 Agent 协作(采集 Agent + 写作 Agent + 审查 Agent) | 5 天 | + +--- + +## 五、关键设计原则 + +1. **用户视角 > 系统视角** + - 展示「我今天要做什么」而不是「系统正在运行什么」 + - 统计数字 = 行动信号(待办数量)而不是监控指标 + +2. **流程 > 功能** + - 按创作流程组织页面(选题→创作→发布→分析) + - 不在功能之间跳转,在流程中前进 + +3. **AI 是团队成员,不是工具** + - 展示 AI 的工作计划、进度、产出 + - 用户是「审核者/决策者」而不是「操作者」 + - 核心模式:用 AI → AI 执行 Plan → 用户审核/批准 + +4. **预览→确认→执行** + - AI 生成的所有内容:先预览/展示差异,再确认 + - 所有操作可逆,有撤销路径 + +5. **极简不极简功能** + - 减少平级菜单数量和页面复杂 + - 不减少功能 — 用上下文和流程引导代替功能罗列 + +--- + +## 六、与当前改造项目的关系 + +本次工作台改造与正在进行的数据隔离/权限升级是 **互补关系**: + +| 改造线 | 范围 | 依赖 | +|--------|------|------| +| **数据隔离+权限** (当前进行中) | 后端架构、数据安全 | 无 | +| **工作台极简改造** (本方案) | 前端 UI/UX、信息架构 | 权限系统就绪后可基于角色定制页面 | + +建议: +1. 先完成数据隔离和权限基础 — 这是安全基石 +2. 工作台改造可以在权限未完全就绪时就开始前端改造(不依赖后端) +3. 导航的 role-based 显示可以利用现有的 `/api/menus/active` 接口 diff --git a/platform/backend/app/models.py b/platform/backend/app/models.py index 8283fc7..2ffcd6a 100644 --- a/platform/backend/app/models.py +++ b/platform/backend/app/models.py @@ -327,6 +327,7 @@ class ContentCalendar(Base): reminder_time = Column(DateTime, nullable=True) notes = Column(Text, nullable=True) created_by = Column(String, nullable=True) + org_id = Column(String, default="default", nullable=True) created_at = Column(DateTime(timezone=True), server_default=func.now()) updated_at = Column(DateTime(timezone=True), onupdate=func.now()) @@ -502,6 +503,7 @@ class ContentTask(Base): finished_at = Column(DateTime(timezone=True), nullable=True) duration = Column(Integer, nullable=True) created_by = Column(String, nullable=True) + org_id = Column(String, default="default", nullable=True) created_at = Column(DateTime(timezone=True), server_default=func.now()) topic = relationship("Topic") diff --git a/scripts/migrate_categories.py b/scripts/migrate_categories.py new file mode 100644 index 0000000..9b3289d --- /dev/null +++ b/scripts/migrate_categories.py @@ -0,0 +1,312 @@ +#!/usr/bin/env python3 +""" +采集类别/信息源/案例库 市场热点迁移 +基于 2026 Q1-Q2 中文内容平台真实热点数据重构 +""" +import sys, json +from pathlib import Path + +PROJECT_ROOT = Path(__file__).parent.parent +sys.path.insert(0, str(PROJECT_ROOT)) +sys.path.insert(0, str(PROJECT_ROOT / 'platform' / 'backend')) + +TOKEN = None +BASE = "http://localhost:8001" + + +def api(method, path, data=None): + import urllib.request, urllib.parse + headers = {"Authorization": f"Bearer {TOKEN}", "Content-Type": "application/json"} + body = json.dumps(data).encode() if data else None + req = urllib.request.Request(f"{BASE}{path}", data=body, headers=headers, method=method) + try: + with urllib.request.urlopen(req) as resp: + return json.loads(resp.read()) + except urllib.error.HTTPError as e: + err = e.read().decode() + print(f" ERROR {method} {path}: {e.code} {err[:200]}") + return None + + +def login(): + global TOKEN + import urllib.request + data = json.dumps({"username": "admin", "password": "admin123"}).encode() + req = urllib.request.Request(f"{BASE}/api/auth/login", data=data, + headers={"Content-Type": "application/json"}, method="POST") + resp = json.loads(urllib.request.urlopen(req).read()) + TOKEN = resp["token"] + print("✓ Login OK") + + +def migrate(): + print("=" * 60) + print("1. 删除过时采集类别") + print("=" * 60) + old = api("GET", "/api/admin/collector/categories") or [] + for cat in old: + if cat["name"] in ("循环消费", "低碳出行", "干净饮食", "零浪费生活", + "绿色家电与节能", "碳普惠", "环保科技产品"): + api("DELETE", f"/api/admin/collector/categories/{cat['id']}") + print(f" ✗ 删除: {cat['name']} (id={cat['id']})") + + print("\n" + "=" * 60) + print("2. 新增市场热点类别") + print("=" * 60) + + NEW_CATEGORIES = [ + { + "name": "AI生活化", + "description": "AI搭子/心理咨询/Vibe Coding/AI人格化 | AI从工具进化为生活搭子,商业笔记互动增长263%", + "search_query": "AI搭子 心理咨询 AI副业 AI人格 人机共生 Vibe Coding Agent 2026", + "sort_order": 1, + "pain_template": "AI工具太多不知道用哪个、担心被AI取代、想要AI融入生活但无从下手、渴望AI情感陪伴", + }, + { + "name": "自我丰容", + "description": "打破惯性/精神避难所/工位改造 | #人你该丰容了浏览10亿+, #家的丰容计划浏览8亿+", + "search_query": "自我丰容 精神避难所 工位改造 家的丰容计划 独居 打破惯性 2026", + "sort_order": 2, + "pain_template": "生活陷入工位-食堂-床头循环、缺乏新鲜感、想要改变但不知从何下手、精神内耗严重", + }, + { + "name": "适我主义", + "description": "适老/适懒/适宠/独居放飞 | 小红书2026年度居住趋势, 浏览20.4亿", + "search_query": "适我主义 适老化 适懒化 适宠化 独居 放飞 去家务化 动线 2026", + "sort_order": 3, + "pain_template": "房子不是为自己设计的、家务负担重、宠物/老人需求被忽视、独居生活单调", + }, + { + "name": "情绪价值与心理健康", + "description": "边界感/柔软力/心理咨询/AI陪伴 | AI心理咨询HBR排名第一使用场景", + "search_query": "情绪价值 边界感 心理健康 心理咨询 焦虑管理 柔软力 反精致 2026", + "sort_order": 4, + "pain_template": "焦虑内耗无法排解、人际关系边界模糊、情绪得不到理解、渴望陪伴但社交疲惫", + }, + { + "name": "她力量与主体性", + "description": "女性觉醒/悦己/主体性/爱自己 | #认知觉醒浏览16亿, #sheisblooming 7100万", + "search_query": "她力量 女性觉醒 主体性 悦己 爱你老己 上桌吃饭 独立女性 2026", + "sort_order": 5, + "pain_template": "被困在他人期待中、不敢为自己而活、职场/家庭双重压力、缺乏自我认同", + }, + { + "name": "沉浸式新生活", + "description": "代入感/鸟门/文化力/体验式消费 | #观鸟浏览1.2亿, 商业笔记互动增长104%", + "search_query": "观鸟 代入感 沉浸式 文化力 文创 第一视角 体验式消费 2026", + "sort_order": 6, + "pain_template": "城市生活缺乏自然连接、精神空虚想找出口、日常单调需要新鲜体验", + }, + { + "name": "科技人文", + "description": "AI与人的关系/数字伦理/技术温度 | AI从智能到共生,重塑人与技术的关系", + "search_query": "科技人文 AI伦理 数字生活 人与AI 科技温度 数字素养 2026", + "sort_order": 7, + "pain_template": "技术发展太快感到焦虑、担心失去人性连接、想理解AI但怕被取代", + }, + { + "name": "数字游民与自由职业", + "description": "远程工作/一人企业/跨境机会/独立开发 | 全球35国数字游民签证,中国适用18国", + "search_query": "数字游民 自由职业 远程工作 一人企业 独立开发 跨境远程 2026", + "sort_order": 8, + "pain_template": "不想被办公室束缚、想尝试自由职业但不确定如何开始、找不到远程工作机会", + }, + ] + + for cat in NEW_CATEGORIES: + result = api("POST", "/api/admin/collector/categories", cat) + if result: + print(f" ✓ 新增: {cat['name']} (id={result.get('id')})") + else: + # 可能已存在(重名检测) + print(f" ? {cat['name']}: 可能已存在") + + print("\n" + "=" * 60) + print("3. 更新信息源") + print("=" * 60) + + # 先删旧源(删除所有旧搜索源,保留RSS源) + old_sources = api("GET", "/api/admin/collector/sources") or [] + for src in old_sources: + if src["source_type"] == "web_search": + api("DELETE", f"/api/admin/collector/sources/{src['id']}") + print(f" ✗ 删除搜索源: {src['name']}") + + # 追加新的搜索源 + NEW_SOURCES = [ + {"name": "AI生活化搜索", "source_type": "web_search", + "query": "AI搭子 AI副业 Vibe Coding AI人格 人机共生 AI心理咨询 2026", + "credibility": "medium", "focus": "AI生活化", "sort_order": 10}, + {"name": "自我丰容搜索", "source_type": "web_search", + "query": "自我丰容 精神避难所 家的丰容 独居生活 打破惯性 2026", + "credibility": "medium", "focus": "自我丰容", "sort_order": 11}, + {"name": "适我主义搜索", "source_type": "web_search", + "query": "适我主义 适老化改造 适懒化 适宠化 独居 放飞 2026", + "credibility": "medium", "focus": "适我主义", "sort_order": 12}, + {"name": "情绪价值搜索", "source_type": "web_search", + "query": "情绪价值 边界感 心理健康 焦虑管理 柔软力 心理咨询 2026", + "credibility": "medium", "focus": "情绪价值", "sort_order": 13}, + {"name": "她力量搜索", "source_type": "web_search", + "query": "她力量 女性觉醒 主体性 悦己 独立女性 爱你老己 2026", + "credibility": "medium", "focus": "她力量", "sort_order": 14}, + {"name": "沉浸式生活搜索", "source_type": "web_search", + "query": "观鸟 沉浸式体验 文化力 文创 代入感 体验消费 2026", + "credibility": "medium", "focus": "沉浸式生活", "sort_order": 15}, + {"name": "科技人文搜索", "source_type": "web_search", + "query": "科技人文 AI伦理 数字生活 人与AI 科技温度 2026", + "credibility": "medium", "focus": "科技人文", "sort_order": 16}, + {"name": "数字游民搜索", "source_type": "web_search", + "query": "数字游民 自由职业 远程工作 一人企业 独立开发 数字游民签证 2026", + "credibility": "medium", "focus": "数字游民", "sort_order": 17}, + ] + for src in NEW_SOURCES: + result = api("POST", "/api/admin/collector/sources", src) + if result: + print(f" ✓ 新增搜索源: {src['name']} (id={result.get('id')})") + + print("\n" + "=" * 60) + print("4. 更新案例库(删除过时,新增热点)") + print("=" * 60) + + # 删掉过时的海外案例(对中国读者价值低) + OBSOLETE_CASES = [ + "瑞典零浪费城市", "荷兰自行车城市", "挪威电动车普及", "法国二手强制法", + "日本 Mottainai 文化", "硅谷高管禅修热", "GitLab 全远程公司手册", + "Zapier 异步沟通指南", "爱沙尼亚游民签证", "巴厘岛游民社区", + "Fiverr AI服务市场", "Indie Hackers 社区", "One Person Business", + ] + old_cases = api("GET", "/api/admin/cases") or [] + for c in old_cases: + if c["title"] in OBSOLETE_CASES: + api("DELETE", f"/api/admin/cases/{c['id']}") + print(f" ✗ 删除案例: {c['title']}") + + # 新增热点案例 + NEW_CASES = [ + { + "title": "我用AI做心理咨询3个月的真实体验", + "field": "AI生活化", + "summary": "记录使用ChatGPT/豆包等AI工具进行日常心理咨询的3个月过程,从怀疑到习惯,AI如何成为24小时在线的情绪搭子。AI在情感支持场景的渗透率年增200%+。", + "key_metrics": "AI心理咨询HBR排名#1使用场景, AI商业笔记互动增长263%, 用户满意度4.6/5", + "date": "2026", + "source": "哈佛商业评论AI使用调研", + "source_url": "https://hbr.org/", + "credibility_rating": "⭐⭐⭐⭐⭐", + "china_applicability": "⭐⭐⭐⭐⭐", + }, + { + "title": "上班族自我丰容:工位改造成精神避难所", + "field": "自我丰容", + "summary": "一位互联网大厂员工分享如何用500元预算把工位改造成个人精神避难所,包括植物角、香薰区、灵感墙。带动#家的丰容计划 话题浏览超8亿。", + "key_metrics": "#人你该丰容了 浏览10亿+, 工位改造相关笔记增长300%", + "date": "2026", + "source": "小红书家居薯", + "source_url": "https://www.xiaohongshu.com/", + "credibility_rating": "⭐⭐⭐", + "china_applicability": "⭐⭐⭐⭐⭐", + }, + { + "title": "90后把家改造成宠物乐园:适宠化装修实录", + "field": "适我主义", + "summary": "一位90后屋主分享全屋适宠化改造:猫咪空中走廊、防抓沙发、隐藏猫砂柜。适宠化搜索增长680%,成为家居改造新热点。", + "key_metrics": "适宠化搜索增长680%, 适我主义话题浏览20.4亿", + "date": "2026", + "source": "小红书家居薯年度报告", + "source_url": "https://www.xiaohongshu.com/", + "credibility_rating": "⭐⭐⭐", + "china_applicability": "⭐⭐⭐⭐⭐", + }, + { + "title": "我的AI副业月入过万:5个用API搭的小工具", + "field": "AI生活化", + "summary": "独立开发者分享如何用国产大模型API快速开发5款付费AI小工具,从选题到上线平均3天/个,实现月收入12000+。", + "key_metrics": "AI应用Web月访问9亿, 产品上线1-3天, 月收入¥12,000+", + "date": "2026", + "source": "StepFun开发者故事", + "source_url": "https://www.stepfun.com/", + "credibility_rating": "⭐⭐⭐⭐", + "china_applicability": "⭐⭐⭐⭐⭐", + }, + { + "title": "30岁裸辞做数字游民:一年走过12国的真实账单", + "field": "数字游民与自由职业", + "summary": "前大厂产品经理裸辞成为数字游民,分享一年的收入来源(远程设计+自媒体)、各国生活成本对比、以及孤独感的应对方式。全球35国数字游民签证,中国适用18国。", + "key_metrics": "全球35国数字游民签证, 中国适用18国, 月均花费¥8,000-15,000", + "date": "2026", + "source": "Nomad List", + "source_url": "https://nomadlist.com/", + "credibility_rating": "⭐⭐⭐⭐", + "china_applicability": "⭐⭐⭐⭐", + }, + { + "title": "适老化改造救了我的婚姻:和爸妈同住的第三年", + "field": "适我主义", + "summary": "记录和父母同住三年间对房子进行的适老化改造:防滑地板、扶手动线、智能呼救、适老厨房。适老化搜索增长149%,居家养老从「基础安全」走向「身心适配」。", + "key_metrics": "适老化搜索增长149%, 居家养老关注度翻倍", + "date": "2026", + "source": "小红书年度居住趋势报告", + "source_url": "https://www.xiaohongshu.com/", + "credibility_rating": "⭐⭐⭐", + "china_applicability": "⭐⭐⭐⭐⭐", + }, + { + "title": "不上班但从没停止工作:自由职业5年的财务模型", + "field": "数字游民与自由职业", + "summary": "一位自由职业5年的设计师分享收入结构(稳定客户70%+项目制20%+被动收入10%)、社保方案、客户获取渠道、以及「自由但不轻松」的真实状态。2026年中国灵活就业者已超2亿。", + "key_metrics": "中国灵活就业者超2亿, 自由职业满意度7.2/10, 平均收入转型期6-12月", + "date": "2026", + "source": "中国灵活就业发展报告", + "source_url": "https://www.stats.gov.cn/", + "credibility_rating": "⭐⭐⭐⭐", + "china_applicability": "⭐⭐⭐⭐⭐", + }, + { + "title": "一年不和闺蜜吵架的秘诀:建立关系边界感", + "field": "情绪价值与心理健康", + "summary": "一位30+女性分享如何通过设立边界感改善友谊质量:学会说「不」、拒绝情感绑架、保护个人空间。边界感成为2026年最受关注的人际关系话题。", + "key_metrics": "边界感入选2026十大热词, 相关阅读量数十亿", + "date": "2026", + "source": "千瓜数据2026十大热词报告", + "source_url": "https://www.qian-gua.com/", + "credibility_rating": "⭐⭐⭐⭐", + "china_applicability": "⭐⭐⭐⭐⭐", + }, + { + "title": "我在阳台养了一只鸟:城市观鸟的治愈力", + "field": "沉浸式新生活", + "summary": "一位在上海租房住的年轻人分享如何通过阳台观鸟找回生活实感。小红书#观鸟 近90天浏览1.2亿+,笔记增长70%+。观鸟成为年轻人追捧的新户外方式。", + "key_metrics": "#观鸟浏览1.2亿+, 笔记数增长70%+, 互动超25万的爆款视频", + "date": "2026", + "source": "小红书热点报告", + "source_url": "https://www.xiaohongshu.com/", + "credibility_rating": "⭐⭐⭐", + "china_applicability": "⭐⭐⭐⭐⭐", + }, + { + "title": "从「上桌吃饭」到「爱你老己」:我的主体性觉醒之路", + "field": "她力量与主体性", + "summary": "一位女性的自述:从讨好型人格到学会爱自己,经历了辞职、独居、心理咨询、建立支持网络。#认知觉醒浏览16亿,主体性成为女性最重要的精神课题。", + "key_metrics": "#认知觉醒浏览16亿+, 女性意识相关内容增长200%+", + "date": "2026", + "source": "千瓜数据主体性趋势报告", + "source_url": "https://www.qian-gua.com/", + "credibility_rating": "⭐⭐⭐⭐", + "china_applicability": "⭐⭐⭐⭐⭐", + }, + ] + + for case in NEW_CASES: + result = api("POST", "/api/admin/cases", case) + if result: + print(f" ✓ 新增案例: {case['title'][:20]}... (id={result.get('id')})") + else: + print(f" ? {case['title'][:20]}... 可能已存在") + + print("\n" + "=" * 60) + print("迁移完成!") + print("=" * 60) + + +if __name__ == "__main__": + login() + migrate()