## MODIFIED Requirements ### Requirement: 内容生成函数迁移至独立模块 系统 SHALL 将内容生成、图片生成、发布及导出相关函数从 `main.py` 提取至 `services/content.py`,包括:`generate_copy`、`generate_images`、`one_click_export`、`publish_to_xhs`。新增 `batch_generate_copy` 和 `generate_copy_with_topic_engine` 入口函数。 #### Scenario: 模块导入成功 - **WHEN** `main.py` 执行 `from services.content import generate_copy, generate_images, publish_to_xhs, one_click_export, batch_generate_copy, generate_copy_with_topic_engine` - **THEN** 所有函数可正常调用,原有函数行为不变 #### Scenario: 智能选题创作入口 - **WHEN** 调用 `generate_copy_with_topic_engine(model, style, sd_model_name, persona_text)` 时(不传 topic) - **THEN** 函数 SHALL 自动调用 `TopicEngine.recommend_topics(count=1)` 获取最佳选题,再调用 `generate_copy()` 生成文案,返回结果中新增 `recommended_topic` 字段 #### Scenario: 批量创作入口 - **WHEN** 调用 `batch_generate_copy(model, topics, style, sd_model_name, persona_text, template=None)` 时 - **THEN** 函数 SHALL 按 `batch-creation` spec 的要求逐个生成文案,并将结果存入 `PublishQueue` 的 `draft` 状态 #### Scenario: 内容生成保留现有验证逻辑 - **WHEN** 调用 `publish_to_xhs` 时标题超过 20 字或图片数量不合法 - **THEN** 函数 SHALL 返回与迁移前相同的错误提示,不改变验证行为 #### Scenario: 临时文件清理逻辑保留 - **WHEN** `publish_to_xhs` 执行完毕(成功或失败) - **THEN** `finally` 块中的 AI 临时文件清理逻辑 SHALL 正常执行