# ai-media-platform **Repository Path**: iliugx/ai-media-platform ## Basic Information - **Project Name**: ai-media-platform - **Description**: ai-media-platform - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-25 - **Last Updated**: 2026-08-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI 前沿探险家内容系统 当前仓库已经完成从研究、叙事、平台适配、视觉与音频规格、MMX/edge-tts 分场景 TTS、HTML 预览到正式 FFmpeg 渲染的第一版闭环,并保留每个阶段的用户确认闸门;发布侧已接入逐平台、幂等的 DryRun 队列。Remotion 组件和各平台官方发布 API 仍通过现有 Provider 接口后续接入。 ## 中文运行说明 在 `C:\project\ai-media-platform` 打开 PowerShell,先安装依赖: ```powershell pnpm install ``` 验证基础工程: ```powershell pnpm build pnpm test pnpm cli help ``` 创建一期内容: ```powershell pnpm cli issue:create --category ai-hot --topic "测试选题" --slug "test-topic" --platforms wechat,xiaohongshu ``` 复制命令输出的 `issue_id`,然后按阶段操作: ```powershell pnpm cli stage:run --issue --stage brief pnpm cli stage:approve --issue --stage brief --comment "确认 Brief" pnpm cli stage:revise --issue --stage brief pnpm cli stage:request-changes --issue --stage brief --comment "需要修改" pnpm cli issue:status --issue ``` 每次阶段生成后都会暂停在 `awaiting_approval`。已确认阶段不能直接重跑,必须使用 `stage:revise`;退回修改后才能重新运行当前阶段。生成文件保存在 `ai-output-moudle/YYYY-MM-DD/`。 研究阶段默认使用 URL 研究提供器,也可以使用结构化结果文件离线验证流程: ```powershell pnpm cli stage:run --issue --stage research --research-file research-result.json pnpm cli stage:run --issue --stage research --source-urls "https://example.com/a,https://example.com/b" ``` 研究结果文件必须包含 `fact_pack` 和 `sources`,每条 Claim 都要能追溯到来源;AI 财经内容还必须包含“仅作信息整理和行业观察,不构成投资建议”的风险提示。URL 提供器使用 Node 20 原生 `fetch`,会执行超时、HTTP 状态、内容类型、正文大小、标题、正文摘录、发布时间、授权信息和内容哈希校验。单个来源失败时会保留成功来源,并把失败原因写入 FactPack 风险提示;自动提取的 Claim 默认标记为 `needs_review`,研究阶段仍会停在 `awaiting_approval`。 研究确认后可以运行编辑阶段: ```powershell pnpm cli stage:run --issue --stage editorial pnpm cli stage:approve --issue --stage editorial --comment "确认编辑 Brief" ``` 编辑阶段只生成 `EditorialBrief`,包含标题方向、Hook、核心角度、Claim 追溯的段落结构和已启用平台提示;确认前不会生成公众号文章、小红书图文、口播稿或视频。 编辑确认后可以运行核心叙事阶段: ```powershell pnpm cli stage:run --issue --stage core-narrative pnpm cli stage:approve --issue --stage core-narrative --comment "确认核心叙事" ``` 核心叙事只保存跨平台共用的结构和 Claim ID,不复制事实正文;待核实 Claim 会被明确标记,确认前不会生成平台版本。 核心叙事确认后可以生成平台适配提纲: ```powershell pnpm cli stage:run --issue --stage platform-drafts pnpm cli stage:approve --issue --stage platform-drafts --comment "确认平台适配提纲" ``` 该阶段为每个已启用平台生成一个 `PlatformDraft`,只输出结构和内容块提纲;确认前不会生成最终文章、图文卡片或视频。 平台提纲确认后可以选择模板和风格: ```powershell pnpm cli stage:run --issue --stage style-selection pnpm cli stage:approve --issue --stage style-selection --comment "确认模板风格" ``` 模板选择会记录 Style Pack、模板版本、平台变体、参考资料和动态适配规则;确认前不会生成具体排版或视觉资产。 如果看到了喜欢的公众号、小红书或视频页面风格,可以把参考配置写入 `style.json`,在模板阶段导入;系统只覆盖已启用平台,仍会生成新的 `StyleSelection` 等待确认: ```powershell pnpm cli stage:run --issue --stage style-selection --style-file style.json ``` 模板确认后可以生成视觉规格: ```powershell pnpm cli stage:run --issue --stage visual-spec pnpm cli stage:approve --issue --stage visual-spec --comment "确认视觉规格" ``` 视觉规格只记录组件、画布、资产占位和分页策略;确认前不会生成插画、截图、图表或 HTML。 视觉规格确认后可以规划视觉资产: ```powershell pnpm cli stage:run --issue --stage assets pnpm cli stage:approve --issue --stage assets --comment "确认资产需求" ``` 资产阶段只生成 `AssetManifest` 和提示词,不会自动调用图片模型或覆盖已有文件。外部图片生成器或人工素材可以在确认后补入 `master_file`/`derivatives`;平台成品渲染会校验安全相对路径并自动插入这些已确认媒体。 也可以在资产阶段通过离线 JSON 回填已规划资产(不会接受未规划的 `asset_id`): ```powershell pnpm cli stage:run --issue --stage assets --assets-file assets.json ``` 平台成品确认前可以生成各平台成品: ```powershell pnpm cli stage:run --issue --stage platform-render pnpm cli stage:approve --issue --stage platform-render --comment "确认平台成品和素材引用" ``` 公众号等文本成品同时保存原始发布文档和可复制预览 HTML;预览页的复制按钮只复制原始文档,不会把预览页面外壳带入公众号。 核心叙事确认后也可以生成口播脚本: ```powershell pnpm cli stage:run --issue --stage voice-script pnpm cli stage:approve --issue --stage voice-script --comment "确认口播脚本" ``` 脚本阶段只生成分场景文本和字幕分行,不会自动生成音频。 口播脚本确认后可以运行语音阶段: ```powershell pnpm cli stage:run --issue --stage voice pnpm cli stage:approve --issue --stage voice --comment "确认语音" ``` 当前默认是离线占位提供器;设置 `AI_VOICE_PROVIDER=mmx` 后会按场景调用 MMX TTS,设置 `AI_VOICE_PROVIDER=edge-tts` 后会调用 edge-tts CLI;两者都会通过 `ffprobe` 写入真实音频时长,并使用相同的 `VoiceProvider` 接口和审批闸门。 ```powershell mmx auth status --output json --quiet $env:AI_VOICE_PROVIDER = "mmx" pnpm cli stage:run --issue --stage voice ``` edge-tts 示例(需先在环境中安装 `edge-tts`): ```powershell $env:AI_VOICE_PROVIDER = "edge-tts" pnpm cli stage:run --issue --stage voice ``` 语音确认后可以生成字幕: ```powershell pnpm cli stage:run --issue --stage subtitle pnpm cli stage:approve --issue --stage subtitle --comment "确认字幕" ``` 字幕和资产确认后可以生成分镜: ```powershell pnpm cli stage:run --issue --stage storyboard pnpm cli stage:approve --issue --stage storyboard --comment "确认分镜" ``` 分镜阶段会生成时间轴、动画/转场和音频混音规则,不会直接渲染视频。 分镜确认后可以生成 HTML 视频预览: ```powershell pnpm cli stage:run --issue --stage video-preview pnpm cli stage:approve --issue --stage video-preview --comment "确认视频预览" ``` 预览 Artifact 内含可直接打开的 HTML;确认前不会执行正式 MP4 渲染。 预览确认后可以进入正式渲染阶段: ```powershell pnpm cli stage:run --issue --stage final-render pnpm cli stage:approve --issue --stage final-render --comment "确认最终视频" ``` 当前默认是 `FfmpegRenderProvider`,会按已确认的时间轴生成真实 MP4;没有有效人声音频时会在 `VideoArtifact` 中标记 `missing-source`,不会伪装成有声成片。设置 `AI_RENDER_PROVIDER=remotion` 可显式使用 Remotion 动态画面 Provider(第一版音频仍需 FFmpeg 混音),需要只验证契约时仍可使用 `PlaceholderRenderProvider`。 平台成品确认、最终视频确认后,系统会先执行质量闸门;质量不过不会生成发布任务。质量通过后,发布必须按平台单独生成和确认: ```powershell pnpm cli publish:prepare --issue --platform wechat --account-id wechat-main pnpm cli publish:status --issue pnpm cli publish:approve --issue --job --comment "确认公众号发布" pnpm cli publish:execute --issue --job ``` 默认 `DryRunPublishProvider` 不调用外部平台接口;接入真实 Provider 前需要配置独立账号凭据和平台权限。 更详细的共享运行时说明见 [packages/README.md](packages/README.md),完整设计见 [docs/ai-frontier-explorer-content-system-design.md](docs/ai-frontier-explorer-content-system-design.md)。