feat(phase9): AI能力增强合集 - 智能标题/智能配音/生成体验优化 #623

Merged
auto-approve-bot merged 3 commits from feat/phase9-ai-enhancements into develop 2026-07-20 10:01:14 +08:00
Owner
No description provided.
Collaborator

代码审查结果 - PR #623

⚠️ 问题(2个需要修改)

  1. apps/web/src/pages/generate/GeneratePage.tsx 第269-285行:智能匹配相关状态在切换视频库时未重置,会导致数据污染。

    • 问题描述:新增的状态(如 smartMatchedResultssmartSelectedIds)与 materials.items 强相关,但在切换 selectedLibraryId 时没有重置这些状态。这会导致在切换库后,handleRefreshMatch 仍基于旧库的结果进行过滤(可能导致误过滤新库素材),且用户可能在新库中提交了旧库的素材 ID。
    • 修改建议:在监听 selectedLibraryId 变化的 useEffect 中(或切换库的逻辑中),增加重置 smartMatchedResultssmartSelectedIdshasMatched 等状态的逻辑。
  2. apps/web/src/pages/generate/GeneratePage.tsx 第563-565行handleRefreshMatch 缺少对剩余素材为空的边界处理。

    • 问题描述:当用户多次点击“换一批”导致 remaining(剩余未展示素材)为空时,代码仅生成空数组并设置状态,界面会显示“推荐素材 (0个)”,没有任何提示信息,用户体验较差。
    • 修改建议:在计算 remaining 后,判断其长度,若为 0,应给出提示(如“已展示所有推荐素材”)并禁止刷新或重置匹配状态。

💡 建议(2个可选)

  1. apps/web/src/pages/generate/GeneratePage.tsx 第605-612行extractTopic 函数拼接关键词时缺少分隔符。

    • 具体内容:keywords.slice(0, 3).join("") 会将关键词直接粘连(如输入“职场 成长”生成“职场成长”),建议修改为 .join(" ").join("") 但在正则替换时保留空格,以生成更通顺的标题。
  2. apps/web/src/pages/generate/GeneratePage.tsx 第500-541行, 620-659行:存在明显的代码重复。

    • 具体内容:handleSmartMatchhandleRefreshMatchhandleGenerateAiTitleshandleRefreshAiTitles 内部核心生成逻辑高度重复。建议将核心生成逻辑抽取为独立的内部函数(如 generateMockResults),通过参数控制是全量生成还是过滤生成,以提高代码可维护性。

格式检查通过 | 逻辑审查需修改 | 性能良好


🤖 由 AI 代码审查机器人自动生成 | 2026-07-20 01:45:57 | 模型:

## 代码审查结果 - PR #623 ### ⚠️ 问题(2个需要修改) 1. **apps/web/src/pages/generate/GeneratePage.tsx 第269-285行**:智能匹配相关状态在切换视频库时未重置,会导致数据污染。 - 问题描述:新增的状态(如 `smartMatchedResults`、`smartSelectedIds`)与 `materials.items` 强相关,但在切换 `selectedLibraryId` 时没有重置这些状态。这会导致在切换库后,`handleRefreshMatch` 仍基于旧库的结果进行过滤(可能导致误过滤新库素材),且用户可能在新库中提交了旧库的素材 ID。 - 修改建议:在监听 `selectedLibraryId` 变化的 `useEffect` 中(或切换库的逻辑中),增加重置 `smartMatchedResults`、`smartSelectedIds`、`hasMatched` 等状态的逻辑。 2. **apps/web/src/pages/generate/GeneratePage.tsx 第563-565行**:`handleRefreshMatch` 缺少对剩余素材为空的边界处理。 - 问题描述:当用户多次点击“换一批”导致 `remaining`(剩余未展示素材)为空时,代码仅生成空数组并设置状态,界面会显示“推荐素材 (0个)”,没有任何提示信息,用户体验较差。 - 修改建议:在计算 `remaining` 后,判断其长度,若为 0,应给出提示(如“已展示所有推荐素材”)并禁止刷新或重置匹配状态。 ### 💡 建议(2个可选) 1. **apps/web/src/pages/generate/GeneratePage.tsx 第605-612行**:`extractTopic` 函数拼接关键词时缺少分隔符。 - 具体内容:`keywords.slice(0, 3).join("")` 会将关键词直接粘连(如输入“职场 成长”生成“职场成长”),建议修改为 `.join(" ")` 或 `.join("")` 但在正则替换时保留空格,以生成更通顺的标题。 2. **apps/web/src/pages/generate/GeneratePage.tsx 第500-541行, 620-659行**:存在明显的代码重复。 - 具体内容:`handleSmartMatch` 与 `handleRefreshMatch`、`handleGenerateAiTitles` 与 `handleRefreshAiTitles` 内部核心生成逻辑高度重复。建议将核心生成逻辑抽取为独立的内部函数(如 `generateMockResults`),通过参数控制是全量生成还是过滤生成,以提高代码可维护性。 --- ✅ 格式检查通过 | ❌ 逻辑审查需修改 | ✅ 性能良好 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-07-20 01:45:57 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->

🚀 预览环境已部署

项目 详情
PR号 #623
预览链接 https://pr-623.preview.xiaoxiajianji.com
API环境 staging

💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。

🔄 每次提交新代码后预览环境会自动更新。

🗑️ PR 关闭或合并后,预览环境会自动清理。

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #623 | | 预览链接 | [https://pr-623.preview.xiaoxiajianji.com](https://pr-623.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
auto-approve-bot approved these changes 2026-07-20 09:30:49 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot approved these changes 2026-07-20 09:30:49 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
Collaborator

Auto merge skipped after multiple 405 errors: PR may have conflicts or unresolved checks. Please review manually. This is not a CI failure.

Auto merge skipped after multiple 405 errors: PR may have conflicts or unresolved checks. Please review manually. This is not a CI failure.
xiaoxia added 3 commits 2026-07-20 09:57:07 +08:00
## 变更内容

### #585 智能标题生成
- 选择标题步骤新增AI智能生成标题区域
- 输入描述/关键词后一键生成多个标题候选
- 三种风格分类:吸睛标题/情感共鸣/知识干货
- 支持点击选用、换一批
- 暂用模板模拟数据,后端LLM接入后替换

### #586 智能配音推荐
- 选择配音步骤新增AI智能推荐区域
- 根据标题内容风格智能匹配音色
- 情感类→温柔女声、知识类→沉稳男声、活力类→少年音
- 支持一键选用、换一批

### #587 生成体验优化
- 生成进度卡片化,展示当前阶段(分析素材/剪辑合成/渲染中/即将完成)
- 成功卡片:展示生成数量+快速查看结果
- 失败卡片:错误详情+一键重试+关闭按钮
- 进度条渐变样式优化
- 删除未使用的CheckCircleOutlined import
- 将SMART_MATCH_REASONS和AI_TITLE_TEMPLATES移到组件外,消除react-hooks/exhaustive-deps警告
- presetVoices使用useMemo包裹,避免引用不稳定导致的依赖警告
- 将handleRetryGenerate移到handleGenerate定义之后,修复TDZ初始化时序错误
fix(phase9): 移除不必要的aiTitleResults.length依赖
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 19s
AI Code Review / AI Code Review (pull_request) Failing after 22s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 34s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Has been skipped
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 2m7s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 2m57s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m6s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 4m6s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 29s
07a93f809e
xiaoxia force-pushed feat/phase9-ai-enhancements from 74ac634009 to 07a93f809e 2026-07-20 09:57:07 +08:00 Compare
auto-approve-bot merged commit 7ed3fdef65 into develop 2026-07-20 10:01:14 +08:00
auto-approve-bot deleted branch feat/phase9-ai-enhancements 2026-07-20 10:01:14 +08:00

🗑️ 预览环境已清理

PR #623 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #623 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Sign in to join this conversation.