Files
yu-zhi-ran/PROGRESS.md
T
2026-06-09 17:18:09 +08:00

20 KiB
Raw Blame History

宇之然 · 项目进度总览

本文件为项目进度唯一真理源,所有进度信息以此为准。 其他文档中的进度描述一律以本文为准。

最后更新2026-06-09 (v20)


一、项目总览

项目 内容
品牌 宇之然 — 科技沟通万物,愿世间百态回归自然
技术栈 FastAPI + SQLAlchemy + PostgreSQL 16 + Vue 3 (CDN) + Element Plus
平台服务 运行中 (端口 8001)
策略阶段 全球-本土对比研究(2026-04-15 升级)
Git 提交 165 commits · 4 tags (v1.0.0~v1.0.4) · main 分支

二、里程碑完成情况

里程碑 说明 计划 实际 状态
M1 项目框架搭建完成 2026-04-10 2026-04-10
M2 首批选题确定 2026-04-12 2026-04-10
M3 首篇文章发布 2026-04-14 2026-04-14
M4 首月发布4篇 2026-05-10 3篇完成

三、发布记录

编号 标题 日期 平台 状态
001 种菜一年,焦虑降了43%:我在阳台治愈了自己 2026-04-14 知乎/微信/小红书 已发布 知乎链接
TOPIC-BBB1CC 城市农业新趋势:东京垂直农场与上海阳台种菜对比研究 2026-04-21 知乎/微信/小红书 已发布
A01 远程工作2026中国指南:从"不可能"到"可行"的路径图 2026-04-23 知乎/微信/小红书 已发布

四、模块进度

4.1 平台系统

模块 状态 说明
后端 API (auth/topics/articles/publishing/calendar/metrics/assets/tasks/platform_config/admin) 完成 核心 11 个 API 模块,JWT 认证
扩展 API (cases/audit/llm_configs/system_configs/optimizer_logs/task_logs/task_configs) 完成 新增案例库、审计、LLM配置、任务配置、任务运行记录模块
前端页面 (仪表盘/选题/日历/数据/素材/任务/平台/系统管理/用户/日志/文章) 完成 Vue 3 + Element Plus SPA
数据库 (PostgreSQL 16) 运行中 yzr_nr
服务 运行中 端口 8001
数据库迁移 (SQLite→PostgreSQL) 完成 2026-05-08
PWA 离线支持 完成 manifest.json + Service Worker + 离线页面
articles 表 + 数据迁移 完成 48 篇文章从文件系统迁入 DB,释放文件已清理

4.2 内容生产

模块 状态 说明
选题库 完成 10 个旧选题 (001~010) + 20 个新选题 (4 大支柱)
文章草稿 (001 系列) 完成 大纲/初稿/优化版/微信版 四版齐备
配图生产 完成 10 张 SVG + 10 张 PNG,含压缩版
合规审查 完成 评分 9.2/10,引用来源补充完成
多平台发布 (001 / BBB1CC / A01) 完成 知乎/微信/小红书 三平台均已发布
银发科技适配指南 写作中 drafts 中 302 行初稿
F01 AI写作实战 已入库 三平台文章已存入 articles 表,待审查通过后发布
F02 平台差异策略 已入库 三平台文章已存入 articles 表,待审查通过后发布

4.3 自动化系统

脚本 状态 说明
publish_to_zhihu.sh 可用 知乎自动发布
publish_to_wechat_mp.sh 可用 微信公众号自动发布
generate_images.py / image_generator.py 可用 SVG + PNG 配图生成
compliance_checker.py 可用 合规审查(敏感词/平台规则/品牌规范)
compliance_optimizer.py 重构 移除 manual_review,改为迭代LLM修复(最多3次),合规分回写入Topic;解硬编码 provider,改从 env 读取;关键词过滤从宽泛改为精准
creator.py / writer.py / outline.py / research.py 优化 全链路LLM提示词优化(SEO/平台适配/真人感)
collector.py / collector_db_integration.py 可用 趋势采集
wecom_notifier.py 可用 企业微信通知
db_helper.py 扩展 update_topic_status 支持保存 compliance_score
search_utils.py 重构 移除 _call_mcpopencode MCP),新增 360/搜狗/微信搜索(免 API Key),百度千帆日限提升至 200
opencode_search.py / mcp_search_server.py 已删除 opencode 搜索配额耗尽,替换为 360/搜狗/微信等免 Key 源
web_search.py 保留 本地缓存 + Bing 搜索(闲置备用)

4.4 流水线流程

步骤 触发方式 说明
内容采集 定时 01:30 热点趋势采集→生成选题建议→存入选题库
内容创作 手动点击 / 定时 03:30 (原 02:00) 研究→大纲→撰写文章→合规审查→存入 articles 表
合规审查 手动点击 / 定时 04:30 (原 03:00) 从 articles 表读取 draft→合规检查→LLM迭代修复(最多3次)→状态→待发布
信息源优化 定时 05:00 AI评估采集类别与信息源配置,给出调整建议
指标同步 定时 06:00 同步统计数据
发布 手动点击 仅待发布状态可选

五、当前任务队列

已完成

任务 完成日期 备注
审查流程优化(移除 manual_review 2026-05-14 改为迭代LLM修复(最多3次),合规分回写Topic
内容采集加入定时调度 2026-05-14 scheduler 新增 scheduled_collect 01:30
全链路LLM提示词优化 2026-05-14 覆盖trends/topic_selector/research/outline/writer/nvidia_client/compliance 共8文件≈24个提示词,增强SEO/平台推荐/真人感
导航布局重构 2026-05-16 navbar + navigation 合并为 uni-nav,单行 top-bar 自适应 PC/H510 页迁移完成
文章管理页面 (articles.html) 2026-05-16 新增 articles API (list/detail/delete) + 完整管理页面,支持筛选/搜索/预览/删除
CSS架构统一整合 2026-05-16 reset/body/layout/card/page-header/filter/toolbar 移入 theme-modern.css86→127行),10页内联CSS总量从660行降至400行;preview对话框CSS归一化;删除 dead JSindex.html双style块合并为单一亮色主题
Phase 1.1 配图集成到创作流水线 2026-05-16 image_generator.py 支持 --topic-id 参数, DB读写图片路径; Article 新增 images JSON字段+迁移; creator.py 新增配图步骤; API GET /api/articles/{topic_id}/images; 文章页预览显示封面图
Phase 1.3 统一前端体验 2026-05-16 users.html 补 loading+空状态; index.html 渲染loadingStats+fetchModules错误提示; metrics.html 渲染loadingDashboard
Phase 2.1 发布审批 UI 2026-05-16 后端 MultiPublishRequest 多平台发布 API; 前端发布确认弹窗+平台勾选
Phase 2.2 日历关联文章状态 2026-05-16 后端 enrich_entry 添加 topic_status+platform_icon; 前端日历卡片显示平台图标+Topic状态标签; 修复 el-tag 缺少闭合
emoji 替换为 Element Plus 图标 2026-05-16 icon-components.js 注册 25 个 SVG 图标组件; 11 页 emoji → <el-icon> 批量替换
H5 卡片布局补全 2026-05-16 metrics.html 热门选题/平台对比/选题推荐三表加 H5 卡片视图
Phase 3.1 平台数据对接 2026-05-16 scripts/sync_metrics.py (估计算法); scheduler 新增 scheduled_metrics_sync 06:00
Phase 3.2 数据看板增强 2026-05-16 Chart.js 集成: 趋势折线图/状态环形图/平台对比柱状图
Phase 4 多租户隔离 (JWT+API 层) 2026-05-16 org_id 注入 JWT payload; 12 个 API 模块添加 org 过滤; 创建选题自动继承用户 org; 管理端组织 CRUD
Phase 4 前端多租户 2026-05-16 admin.html 新增组织管理标签页 (列表/创建/编辑/删除); users.html 增加组织列+H5卡片显示
Phase 4 预置数据修复 2026-05-16 initial_data.py 管理员用户添加 org_id; opencode-go LLM config 补全 user_prompt_template
PlatformConfig 模型字段扩展 2026-05-17 增加 requires_image/image_count_min/image_count_max/image_width/image_height/min_words/max_words; schemas/initial_data/前端表单同步; database.py 迁移
微信公众号正文配图 2026-05-17 writer.py wechat 分支在 h1 后插入 <img> 占位
合规检查从 DB 读平台规则 2026-05-17 compliance_checker.py 接受 platform_config 参数; compliance_optimizer.py 从 DB 加载平台配置传入 checker
登录页居中修复 2026-05-18 login.html body 添加 login-body 类
模块状态重复修复 2026-05-18 system.py 重命名/去重,状态改查 jobs 而非日志文件
仪表盘"近期计划"卡片 2026-05-18 index.html 新增日历 7 天预告卡片
日志/用户合并到系统管理 2026-05-18 admin.html 增加用户管理+运行日志标签页;uni-nav 10→8 项
日历页增强 2026-05-18 指南横幅/即将到来列表/空状态/操作提示
任务页优化+分页 2026-05-18 6个定时任务/topic_title/STAGE_NAMES/前端分页
选题页前端分页 2026-05-18 paginatedTopics computed + el-pagination
后端 tasks API 改造 2026-05-18 offset 参数 + topic_title 字段
admin 全标签页分页 2026-05-18 案例/类别/信息源/组织/用户 5 标签统一分页(10条/页)+总数显示
选题预览修复 2026-05-18 补全 startEdit/cancelEdit/saveContent 方法;修复滚动条;strip .tags
任务状态卡死修复 2026-05-18 后台线程改用独立 DB session;前端 5s 自动轮询;中间进度 30% 显示
预览平台切换修复 2026-05-18 补全 switchPlatform 方法
超时任务自动清理 2026-05-18 启动时标记运行>1h 任务为 failed;已清理 21 个卡死任务
metrics 冗余统计移除 2026-05-18 删除与仪表盘重复的 4 个概览卡片
writer max_tokens 提升 2026-05-19 标题/标签 max_tokens 500→1000,修复推理模型思考链占用导致输出截断
预览滚动条修复 2026-05-19 改用 height:68vh 替代 flex+calc,避免 Element Plus 对话框内滚动冲突
定时任务 DB 化 2026-05-22 TaskLog 新增 module_id/error_trace/triggered_by/result_dataTaskConfig 模型新建含 params/schedule/enabledscheduler.py 全 7 个任务执行前后写 TaskRunmodules/status 从 DB 读取
平台配置弹窗修复 2026-05-22 el-dialog 移入 tab 内部(与表格同级)解决响应式问题;表单字段补全
AI 思考内容清洗 2026-05-22 新建 content_cleaner.py 集中管理清洗规则;writer.py/compliance_optimizer.py 统一引用;THINKING_PATTERNS 增强;strip_ai_preface 处理代码围栏块
复制正文去噪音 2026-05-22 copyContent 只提取 p/h1-h4/li 元素,去 style/svg/script/img
platforms.html 入口合并 2026-05-22 uni-nav 移除"平台"独立入口;admin.html 恢复"平台配置"tab 加启用中/全部筛选
opencode_search.py 日志 2026-05-22 补 FileHandler + StreamHandler,解决管理后台显示"从未运行"
scheduler.json 导入修复 2026-05-22 补 import json,修复 sources(05:00) 执行时报错阻断 metrics(06:00)
Scheduler 日志修复(僵尸行) 2026-05-28 _log_task 始终 INSERT 新行,所有 run* 保存 log_id 后 UPDATE 同一行,消除重复 running 状态
Systemd 服务化 2026-05-28 yzr-platform.serviceRestart=always,崩溃自动恢复);单 worker(--workers 1)防调度器冲突;Type=exec + KillMode=control-group 防僵尸进程
LLM 提供商量换 + 任务级模型选择 2026-05-28 opencode-go 换 nvidia qwen3.5-397b-a17b(默认)+ sensenova deepseek-v4-flash(合规审查);llm_configs 加 is_default;所有 run* 方法开头调用 _set_task_llm_provider 设置 LLM_TASK_PROVIDER
合规审查修复 2026-05-28 compliance_optimizer.py 移除硬编码 provider;补 import os(之前导致 NameError);关键词过滤从宽泛改为精准,避免误拦正常内容
搜索提供商重构 2026-05-28 移除 opencode MCP(配额耗尽),新增 360/搜狗/微信搜索(免 Key),百度千帆日限 50→200
opencode 冗余代码清理 2026-06-02 删除 opencode_search.py / mcp_search_server.py / _call_mcp / 前后端所有 opencode/MCP 引用;禁用搜索缓存定时任务
任务抽屉产出记录优化 2026-06-03 drawer 产出结果 tab 优先显示日志消息(last_message),过滤 None/空值;修复 tasks.py 因 opencode 清理导致的 SyntaxError;清理 DB 中旧搜索缓存的 56 条 TaskLog + 1 条 TaskConfig
Hermes gateway 用户级服务恢复 2026-06-04 系统级服务 → 用户级(MemoryMax=1G 生效);删除 system 级文件;linger + default.target.wants 开机自启
v-cloak 修复 Vue 模板闪烁 2026-06-04 9 页 <div id="app"> + theme-modern.css[v-cloak] 规则,消除原始模板代码闪烁
sensenova 多模型 + 模型级 rate limit 2026-06-04 LLMConfigrate_limit/rate_limit_window_minutesseed 3 模型:deepseek-v4-flash(500次/5h)、6.7-flash-lite(1500次/5h)、u1-fast(1500次/5h);进程内 rate limiterLLM_TASK_MODEL 环境变量实现任务级模型选择;ai_image_generator.py 已固定用 sensenova-u1-fast

已完成

任务 完成日期 备注
GEO/SEO 结构化元数据注入 2026-06-09 writer.py 的 inject_geo_metadata() 向 HTML 注入 JSON-LD Article schema、meta description/keywords、OG tags
大纲提示词 SEO 关键词增强 2026-06-09 outline.py 新增 _extract_seo_keywords() 从研究笔记提取关键词;outline prompt 加入 GEO 数据引用要求
搜索排名追踪 2026-06-09 SearchRanking 模型(文章ID/关键词/排名位置/AI引用);rank_tracker.py 定时任务(每日 07:00)查 Bing 排名;/api/seo/rankings APIadmin.html 新增"搜索排名"tab

待办

任务 优先级 备注
生成式 AI 引用检测(Perplexity/Bing AI/百度 AI 搜索) rank_tracker 的 ai_cited 检测需具体实现
百度搜索排名接入(需百度站长 API 当前仅 Bing,国内百度覆盖更广
admin.html 任务管理 tabTaskConfig 参数编辑+TaskLog 历史时间轴) 刚完成后端 DB 化,需完善前端 UI
M4 第 4 篇文章发布 (首月目标) 可用银发科技或 F01 补齐
现有文章重新创作(清除 AI 思考内容) writer.py 已修复,新文章不会再有;旧文章需重跑 creator.py
归档 IMPLEMENTATION_PLAN.md 内容已过时,与实际架构不符

六、归档日志

过时文档统一移入 archive/,防止误导。

日期 路径 原因
2026-05-12 tasks/todo.mdarchive/tasks/todo.md.2026-04-10 内容停滞于 2026-04-10,信息过时
2026-05-12 content/ideas/001-compliance.mdarchive/content/ideas/ 001 已发布,合规报告无须保留在活跃目录
2026-05-12 content/ideas/001-research.mdarchive/content/ideas/ 001 已发布,研究笔记无须保留在活跃目录
2026-05-12 content/publishing/001-images.mdarchive/content/ 配图已生成,规划稿无须保留在活跃目录

七、内容质量升级(v19 · 2026-06-05

三平台差异化内容架构

背景:此前三平台共用同一篇 markdown,仅做浅层适配(加 emoji/换人称),导致知乎缺深度、公众号缺情感、小红书过长。

核心改动:

  1. writer.pygenerate_full_markdown()generate_platform_markdown(platform),每平台调用独立的 section_expansion_{platform} prompt
    • 知乎:section_expansion_zhihu — 数据分析深度,400-800字/节,「你」视角
    • 公众号:section_expansion_wechat — 个人叙事对话感,300-500字/节,「我」口吻
    • 小红书:section_expansion_xiaohongshu — 精炼干货,100-200字/节,直接给方法+可 emoji
    • 去掉公众号中「我们→我→你」的强制替换
  2. prompt_loader.py — 新增 3 个平台独立 section_expansion 提示词,标题提示词去套路化(去除「直接输出」「不要其他文字」等 AI 味指令)
  3. 平台字数提升 — min/max 大幅上调(知乎 3000-8000, 公众号 2000-4000, 小红书 400-1000),存于 platform_configs 表,后台可改
  4. compliance_checker.py — AI 套话从 DB content_clean_rules(rule_type='ai_telltale') 加载,后台可动态管理;人称规则去掉「大家」误报
  5. config_items.py — DEFAULT_CONTENT_CLEAN_RULES 新增 30+ 条 ai_telltale 规则
  6. initial_data.py — PlatformConfig 字数迁移(已有库也会更新)
  7. AGENTS.md — 文档化三平台差异化架构

验证33/33 测试通过

八、GEO/SEO 升级(v20 · 2026-06-09

为 AI 搜索时代而生

背景ChatGPT、Perplexity、百度 AI 搜索等生成式引擎正在取代传统搜索。内容被 AI 引用的价值大于单纯的关键词排名。此版本让流水线生产的内容天然符合 AI 搜索偏好。

GEO 结构化数据

每篇生成的 HTML 自动注入:

  • JSON-LD Article schema@context: schema.org,含 headline/description/datePublished/author/publisher/keywords
  • SEO meta tags<meta name="description">, <meta name="keywords">
  • Open Graph tagsog:title, og:description, og:type, og:site_name, article:published_time
  • 平台专用 — wechat/xiaohongshu 额外注入 og:image

大纲 SEO 增强

  • outline prompt 新增 seo_keywords 变量(从研究笔记自动提取)
  • 每章要求至少融入 1 个 SEO 关键词
  • 新增 GEO 要求:每章包含可引用数据点,增加被 AI 搜索引用的概率

搜索排名追踪

模块 说明
SearchRanking 模型 记录 article_id/keyword/position/url_found/ai_cited/search_engine
scripts/rank_tracker.py 对所有已发布文章,自动生成搜索查询 → 调用 Bing API 查排名 → 写入 DB
定时任务 scheduled_rank_tracker 每日 07:00 自动运行
管理后台 admin.html 新增「搜索排名」tab,展示概览统计(累计检查/有排名/AI引用/最佳排名)+ 排名列表

关键文件

文件 改动
scripts/writer.py 新增 inject_geo_metadata(), _extract_description(), _extract_tags_list() — 在 generate_platform_html() 末尾注入
scripts/outline.py 新增 _extract_seo_keywords() — 传入 outline prompt
scripts/prompt_loader.py outline_generation 提示词加入 seo_keywords 变量 + GEO 数据点要求
scripts/rank_tracker.py 新建 — Bing 排名查询 + DB 写入
platform/backend/app/models.py 新增 SearchRanking 模型
platform/backend/app/api/search_rankings.py 新建 — /api/seo/rankings + /api/seo/rankings/overview
platform/backend/app/core/scheduler.py 新增 scheduled_rank_tracker 07:00
platform/frontend/admin.html 新增「搜索排名」tab(统计卡片 + el-table 排名列表)

九、规范说明

规划文档

文档 位置 说明
升级计划 docs/upgrade-plan.md 分 4 阶段的技术升级路线图

文档管理原则

  1. 单一真理源PROGRESS.md 为唯一进度文档,进度信息不出现于第二个文档中。
  2. 及时归档:阶段完成后,对应过程文档移入 archive/(含日期后缀),避免误导。
  3. 一致性README.md 仅引用 PROGRESS.md 摘要,不独立维护进度状态。
  4. 可追溯archive 保留完整历史,按 YYYY-MM-DD 子目录组织。
  5. 及时更新:每次新工作结束(或次日开始前)更新 PROGRESS.md,确保最后更新日期与实际同步。

工作流程

梳理需求/任务 → 读取 PROGRESS.md 了解当前状态
    ↓
按 PROGRESS.md 执行开发
    ↓
阶段任务完成 → 更新 PROGRESS.md + 归档冗余文档
    ↓
如需 → 同步 README.md 摘要