## ADDED Requirements ### Requirement: 内容创作 Tab 的 UI 代码迁移至独立模块 `ui/tab_create.py` SHALL 包含原 `main.py` 中「内容创作 Tab」的全部 Gradio 组件定义和事件绑定,并导出 `build_tab() -> None` 函数,该函数接受一个 `gr.Blocks` 上下文,在其中构建 Tab 内容。`main.py` SHALL 通过 `from ui.tab_create import build_tab` 调用该函数,不在主文件中保留重复的组件代码。 #### Scenario: main.py 正常启动并显示内容创作 Tab - **WHEN** 运行 `python main.py` 启动 Gradio 应用 - **THEN** 内容创作 Tab 正常显示,所有组件与迁移前功能一致 #### Scenario: tab_create 模块可独立导入 - **WHEN** 在 Python 中执行 `from ui.tab_create import build_tab` - **THEN** 不抛出任何导入错误,`build_tab` 为可调用对象 ### Requirement: ui/ 目录结构规范 `ui/` 目录 SHALL 包含 `__init__.py`,每个 Tab 模块文件命名约定为 `tab_.py`,不在 Tab 模块中直接调用全局服务初始化代码(如 `ConfigManager()`、`LLMService()` 等单例初始化应由 `main.py` 完成并通过参数或模块级引用传入)。 #### Scenario: 新增 Tab 模块的标准结构 - **WHEN** 开发者创建新的 `ui/tab_*.py` 文件 - **THEN** 该文件导出 `build_tab(...)` 函数,且顶层不包含副作用代码(不在 import 时触发服务连接)