zhoujie 1ec520b47e feat(content): 新增智能选题引擎、批量创作和图文协同优化
- 新增智能选题引擎 `TopicEngine`,整合热点数据与历史权重,提供多维度评分和创作角度建议
- 新增内容模板系统 `ContentTemplate`,支持从 JSON 文件加载模板并应用于文案生成
- 新增批量创作功能 `batch_generate_copy`,支持串行生成多篇文案并自动入草稿队列
- 升级文案质量流水线:实现 Prompt 分层架构(基础层 + 风格层 + 人设层)、LLM 自检与改写机制、深度去 AI 化后处理
- 优化图文协同:新增封面图策略选择、SD prompt 与文案语义联动、图文匹配度评估
- 集成数据闭环:在文案生成中自动注入 `AnalyticsService` 权重数据,实现发布 → 数据回收 → 优化创作的完整循环
- 更新 UI 组件:新增选题推荐展示区、批量创作折叠面板、封面图策略选择器和图文匹配度评分展示

♻️ refactor(llm): 重构 Prompt 架构并增强去 AI 化处理

- 将 `PROMPT_COPYWRITING` 拆分为分层架构(基础层 + 风格层 + 人设层),提高维护性和灵活性
- 增强 `_humanize_content` 方法:新增语气词注入、标点不规范化、段落节奏打散和 emoji 密度控制
- 新增 `_self_check` 和 `_self_check_rewrite` 方法,实现文案 AI 痕迹自检与自动改写
- 新增 `evaluate_image_text_match` 方法,支持文案与 SD prompt 的语义匹配度评估(可选,失败不阻塞)
- 新增封面图策略配置 `COVER_STRATEGIES` 和情感基调映射 `EMOTION_SD_MAP`

📝 docs(openspec): 归档内容创作优化提案和详细规格

- 新增 `openspec/changes/archive/2026-02-28-optimize-content-creation/` 目录,包含设计文档、提案、规格说明和任务清单
- 新增 `openspec/specs/` 下的批量创作、文案质量流水线、图文协同、服务内容和智能选题引擎规格文档
- 更新 `openspec/specs/services-content/spec.md`,反映新增的批量创作和智能选题入口函数

🔧 chore(config): 更新服务配置和 UI 集成

- 在 `services/content.py` 中集成权重数据自动注入逻辑,实现数据驱动创作
- 在 `ui/app.py` 中新增选题推荐、批量生成和图文匹配度评估的回调函数
- 在 `ui/tab_create.py` 中新增智能选题推荐区、批量创作面板和图文匹配度评估组件
- 修复 `services/sd_service.py` 中的头像文件路径问题,确保目录存在
2026-02-28 21:04:09 +08:00

2.5 KiB
Raw Permalink Blame History

ADDED Requirements

Requirement: 智能选题推荐入口

系统 SHALL 提供 TopicEngine 类(services/topic_engine.py),暴露 recommend_topics(count=5) 方法,整合热点数据、历史权重、内容趋势,返回排序后的推荐选题列表。

Scenario: 有历史权重数据时推荐

  • WHEN content_weights.json 中存在至少 5 篇笔记的权重数据
  • THEN recommend_topics() SHALL 返回融合了热点分析和历史表现权重的推荐列表,每项包含 topicscorereasonsource"hotspot" / "weight" / "trend")字段

Scenario: 无历史数据时退回热点推荐

  • WHEN content_weights.json 为空或不存在
  • THEN recommend_topics() SHALL 仅基于热点探测结果返回推荐,source 全部为 "hotspot"

Scenario: 推荐结果去重

  • WHEN 热点数据和权重数据中存在语义相近的主题(如"春季穿搭"和"早春穿搭"
  • THEN 系统 SHALL 合并为一个推荐项,取较高分数,避免重复推荐

Requirement: 多维度选题评分

系统 SHALL 为每个候选主题计算综合评分评分维度包括热点热度0-40 分、历史互动权重0-30 分、内容稀缺度0-20 分、时效性0-10 分)。

Scenario: 评分维度完整

  • WHEN 调用 score_topic(topic) 方法
  • THEN 返回的字典 SHALL 包含 total_scorehotspot_scoreweight_scorescarcity_scoretimeliness_score 五个字段,各分项之和等于 total_score

Scenario: 已有高赞笔记的主题稀缺度降低

  • WHEN 某主题在最近 7 天内已发布过 2 篇以上笔记
  • THEN 该主题的 scarcity_score SHALL 不超过 5 分

Requirement: 选题附带创作角度

系统 SHALL 为每个推荐选题生成 1-3 个具体的创作角度建议(angles 字段),帮助用户快速进入创作状态。

Scenario: 角度建议格式

  • WHEN recommend_topics() 返回推荐列表
  • THEN 每项的 angles 字段 SHALL 为字符串列表,每个角度不超过 30 字,描述具体的切入点(如"从预算角度对比三款产品"

Requirement: 热点数据整合

TopicEngine SHALL 通过调用 hotspot.py 的搜索功能获取实时热点数据,并通过 analytics_service.py 获取历史权重数据,不直接访问 MCP 或 LLM。

Scenario: 依赖注入

  • WHEN 初始化 TopicEngine
  • THEN 构造函数 SHALL 接受 analytics_service: AnalyticsService 参数,不在内部直接实例化依赖