- 新增智能选题引擎 `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` 中的头像文件路径问题,确保目录存在
46 lines
2.6 KiB
Markdown
46 lines
2.6 KiB
Markdown
## Requirements
|
|
|
|
### Requirement: 内容模板系统
|
|
系统 SHALL 提供 `ContentTemplate` 类(`services/content_template.py`),支持从 JSON 文件加载和管理内容模板。每个模板包含 `name`、`description`、`topic_pattern`、`style`、`prompt_override`(可选)、`tags_preset`(可选)字段。
|
|
|
|
#### Scenario: 模板文件加载
|
|
- **WHEN** `ContentTemplate` 初始化时
|
|
- **THEN** SHALL 从 `xhs_workspace/templates.json` 加载模板列表;文件不存在时 SHALL 使用内置默认模板(至少包含"好物种草""日常分享""攻略教程"三个模板)
|
|
|
|
#### Scenario: 模板应用于文案生成
|
|
- **WHEN** 用户选择模板后点击生成
|
|
- **THEN** 系统 SHALL 将模板的 `prompt_override` 附加到 LLM 系统 prompt 中,`tags_preset` 作为标签默认值
|
|
|
|
### Requirement: 批量主题生成
|
|
系统 SHALL 支持一次生成多个主题的文案内容,通过 `batch_generate(topics: list, style, template=None)` 方法实现。
|
|
|
|
#### Scenario: 批量生成返回结果
|
|
- **WHEN** 调用 `batch_generate(["主题A", "主题B", "主题C"], "好物种草")`
|
|
- **THEN** SHALL 返回包含 3 个文案结果的列表,每个结果与 `generate_copy()` 返回结构一致,新增 `batch_index` 字段标识序号
|
|
|
|
#### Scenario: 批量生成部分失败
|
|
- **WHEN** 批量生成中某篇文案生成失败
|
|
- **THEN** 系统 SHALL 记录该篇的错误信息(`error` 字段),继续生成剩余主题,不中断整个批次
|
|
|
|
#### Scenario: 批量生成数量限制
|
|
- **WHEN** `topics` 列表长度超过 10
|
|
- **THEN** 系统 SHALL 返回错误提示,拒绝执行(防止 LLM 配额消耗过大)
|
|
|
|
### Requirement: 草稿队列管理
|
|
批量生成的结果 SHALL 自动存入 `PublishQueue`,状态为 `draft`,用户可在发布队列 UI 中逐篇审核、编辑、排期。
|
|
|
|
#### Scenario: 批量结果入队
|
|
- **WHEN** `batch_generate()` 成功返回 N 篇文案
|
|
- **THEN** 系统 SHALL 将每篇文案以 `draft` 状态插入 `PublishQueue`,包含 title、content、tags、sd_prompt 字段
|
|
|
|
#### Scenario: 草稿可独立操作
|
|
- **WHEN** 用户在 UI 中选中某篇草稿
|
|
- **THEN** SHALL 支持编辑标题/正文/标签、单独发布、丢弃等操作,不影响同批次其他草稿
|
|
|
|
### Requirement: 一键批量导出
|
|
系统 SHALL 支持将多篇文案一次性导出到本地,每篇创建独立文件夹(复用 `one_click_export` 逻辑)。
|
|
|
|
#### Scenario: 批量导出目录结构
|
|
- **WHEN** 用户点击批量导出并选中 3 篇文案
|
|
- **THEN** 系统 SHALL 在 `xhs_workspace/` 下为每篇创建独立的 `{timestamp}_{title}/` 文件夹,各含 `文案.txt`
|