From c8a5e8fd87d3e1c3642d42f7681917af81347130 Mon Sep 17 00:00:00 2001 From: Yuzhiran Dev Date: Tue, 16 Jun 2026 08:28:31 +0800 Subject: [PATCH] docs: Update PROGRESS.md for v21 GEO and v22 landing page - v21: GEO tracking (geo_tracker.py, FAQ/HowTo schema, GeoReadinessScore, scheduler, admin tab) - v22: Landing page (landing.html, routing, responsive design, auth flow changes) - Commit count: 165 -> 170 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus --- PROGRESS.md | 133 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 130 insertions(+), 3 deletions(-) diff --git a/PROGRESS.md b/PROGRESS.md index d25debb..b844873 100644 --- a/PROGRESS.md +++ b/PROGRESS.md @@ -3,7 +3,7 @@ > 本文件为项目进度唯一真理源,所有进度信息以此为准。 > 其他文档中的进度描述一律以本文为准。 -**最后更新**:2026-06-09 (v20) +**最后更新**:2026-06-16 (v22) --- @@ -15,7 +15,7 @@ | 技术栈 | 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 分支 | +| Git 提交 | 170 commits · 4 tags (v1.0.0~v1.0.4) · main 分支 | --- @@ -256,7 +256,134 @@ | `platform/backend/app/core/scheduler.py` | 新增 `scheduled_rank_tracker` 07:00 | | `platform/frontend/admin.html` | 新增「搜索排名」tab(统计卡片 + el-table 排名列表) | -## 九、规范说明 +## 九、GEO 进阶升级(v21 · 2026-06-15) + +### AI 搜索引用追踪(GEO Engine Optimization) + +**背景**:v20 实现了搜索排名追踪(Bing)和基础元数据注入,v21 将范围扩展到 AI 搜索引用检测、GEO 就绪度评分、FAQ/HowTo 结构化数据注入。 + +### 1. 数据模型扩展 + +| 模型 | 字段 | 说明 | +|------|------|------| +| `SearchRanking` | `ai_search_engine` / `citation_snippet` / `citation_url` / `geo_score` / `content_type` | 原有排名模型新增 AI 搜索字段和内容类型 | +| `GeoReadinessScore`(新建) | `article_id/total_score(0-100)/has_schema/has_faq_format/has_howto_format/has_citations/word_count/readability_score/heading_structure_score` | 6 维度 GEO 就绪度评估 | + +就绪度评分权重:结构化数据 30 + FAQ 格式 20 + HowTo 格式 15 + 引用 15 + 标题结构 10 + 内容长度 10 = 100 分 + +### 2. AI 搜索引用追踪脚本 + +`scripts/geo_tracker.py` — 对所有已发布文章,通过 LLM 模拟查询 DeepSeek/ChatGPT/Perplexity 检测是否被引用: + +- 筛选 `status=published` 的文章提取标题/关键词 +- 对每篇文章调用 `call_llm` 查询各 AI 引擎是否收录并引用 +- 记录引用片段(citation_snippet)和引用 URL +- 计算 GEO 就绪度评分(6 维度 0-100) +- 写入 `SearchRanking(search_engine="geo")` 和 `GeoReadinessScore` 表 + +### 3. FAQ/HowTo Schema 自动注入 + +扩展 `writer.py` 的 `inject_geo_metadata()`: + +- 新增 `_detect_content_type(content)` — 检测内容类型:article/listicle/howto/faq/review(基于关键词统计) +- 新增 `_extract_faq_pairs(content)` — 从 Q:/A:格式提取问答对 +- 新增 `_extract_howto_steps(content)` — 从步骤/Step 格式提取步骤 +- 根据检测到的类型自动注入对应的 JSON-LD schema: + - **FAQPage** — `mainEntity` 数组(Question + AcceptedAnswer) + - **HowTo** — `step` 数组(HowToStep + HowToDirection) + - **ItemList** — `itemListElement` 数组(ListItem + position + name) + +### 4. GEO API 端点 + +| 端点 | 功能 | +|------|------| +| `GET /api/seo/geo/overview` | AI 引用总数/引用率/引擎分布/平均就绪度评分 | +| `GET /api/seo/geo/readiness` | GEO 就绪度评分列表(含各维度分数) | +| `POST /api/seo/geo/track` | 手动触发 GEO 追踪 | + +### 5. 定时任务注册 + +`scheduler.py` 新增 `scheduled_geo_tracker` 每日 07:30 自动运行 + +### 6. 管理后台 GEO 看板 + +admin.html 新增「GEO 就绪度」标签页包含: + +- **统计卡片**:GEO 检查次数 / AI 引用次数 / AI 引用率 / 平均就绪度评分 +- **引擎分布**:按 AI 引擎(DeepSeek/ChatGPT/Perplexity)展示检查数和引用数 +- **就绪度评分表格**:文章标题/总分(彩色标签)/结构化数据✓✗/FAQ✓✗/HowTo✓✗/引用✓✗/字数/可读性/标题结构/检查时间 +- **手动追踪按钮**:`POST /api/seo/geo/track` + +### 关键文件变更 + +| 文件 | 改动 | +|------|------| +| `scripts/geo_tracker.py` | **新建** — AI 搜索引用追踪 + GEO 就绪度评分全流程 | +| `scripts/writer.py` | 扩展 `inject_geo_metadata()`:新增 `_detect_content_type`/`_extract_faq_pairs`/`_extract_howto_steps`,根据内容类型自动注入 FAQPage/HowTo/ItemList schema | +| `platform/backend/app/models.py` | `SearchRanking` 扩展 5 字段 + 新建 `GeoReadinessScore` 模型 | +| `platform/backend/app/api/search_rankings.py` | 新增 3 个 GEO 端点(overview/readiness/track) | +| `platform/backend/app/core/scheduler.py` | 注册 `scheduled_geo_tracker` 07:30 | +| `platform/frontend/admin.html` | 新增「GEO 就绪度」tab(统计卡片 + 引擎分布 + 评分表格 + 手动追踪) | + +### 验证 + +33/33 测试全部通过 + +## 十、产品官网改造(v22 · 2026-06-16) + +### 从「管理后台」到「产品网站」 + +**背景**:此前项目以登录页面作为首屏,访客第一眼看到的是管理系统的登录框,没有品牌传达和产品介绍。改造后,未登录用户看到的是一个完整的产品官网,登录后进入管理后台(工作台)。 + +### 路由架构 + +| 路径 | 页面对应 | 访问权限 | +|------|---------|---------| +| `/` | **产品官网** — 品牌 Landing Page | 公开 | +| `/index.html` | **工作台** — 原有的仪表盘(现为 workspace) | 需登录 | +| `/login.html` | 登录页(品牌化处理) | 公开 | +| `/topics.html`, `/articles.html` 等 | 各管理功能页 | 需登录 | + +### 产品官网(Landing Page) + +创建 `platform/frontend/landing.html` — 独立的完整产品网页,不依赖 Vue/Element Plus: + +- **导航栏**:固定顶部,毛玻璃背景,Logo + 产品功能/工作流程/支持平台/定价/常见问题链接 + 登录/免费使用按钮 +- **Hero 区域**:大标题「让内容在 AI 时代主动找到你的客户」,背景渐变+辉光效果,三个核心数据展示 +- **产品功能**:6 张特性卡片(三平台创作/GEO 优化/独立站 SEO/效果追踪/全自动流水线/合规保障) +- **工作流程**:3 步流程说明(配置选题→自动生产→追踪优化) +- **支持平台**:知乎/微信公众号/小红书/独立站 +- **定价**:3 档定价(入门版 ¥299/月、专业版 ¥799/月、企业版 ¥2,499/月) +- **常见问题**:6 个 FAQ(GEO 说明/三平台差异化/零经验使用/AI 套话/API Key/数据安全) +- **CTA 区块**:渐变背景 + 行动号召按钮 +- **页脚**:产品/支持/法律三栏 + +### 关键架构改动 + +| 文件 | 改动 | +|------|------| +| `platform/frontend/landing.html` | **新建** — 完整产品官网(~30KB,无外部依赖) | +| `platform/backend/app/main.py` | 新增 `/` 路由显式返回 `landing.html`(优先于 StaticFiles 的默认 index.html) | +| `platform/frontend/login.html` | 登录成功跳转 `/` → `/index.html`;已登录检测跳转 `/` → `/index.html` | +| `platform/frontend/uni-nav.js` | 仪表盘导航链接 `/` → `/index.html`;`navigate` 函数修复前缀处理 | +| `platform/frontend/articles.html` | 未登录重定向 `/` → `/login.html` | +| `platform/frontend/topics.html` | 未登录重定向 `/` → `/login.html` | +| `platform/frontend/sw.js` | 移除 `/` 预缓存;HTML 文档改为 Network First 策略确保新版实时加载 | + +### 响应式设计 + +- **桌面端**(>768px):完整导航 + 多列布局 +- **平板/手机端**(≤768px):汉堡菜单(侧滑展开)、单列布局、缩小 hero 字体 +- **小屏手机**(≤480px):全屏宽内容、堆叠布局 + +### 验证 + +- 33/33 测试全部通过 +- HTTP 访问验证:`/` 返回 landing.html(31070 bytes),`/index.html` 返回工作台仪表盘 +- 登录流程验证:登录后跳转 `/index.html` +- 服务已重启生效 + +## 十一、规范说明 ### 规划文档