用途:在 NeMo Studio 中端到端新增一个功能开关(feature flag),覆盖类型定义、运行时注入、FastAPI 构建标记与 Helm 配置,确保本地开发、FastAPI 构建和集群部署行为一致。
主要能力:
- 选择开关形态:previewFlag(true | 'preview' | false,'preview' 触发 Early Preview 徽章)、booleanFlag、stringFlag/numberFlag。
- 在 web/packages/studio/src/constants/featureFlags/featureFlags.ts 的 flagDefinitions 注册条目,通常使用 previewFlag('VITE_FF_JOB_QUEUE_ENABLED') 或 booleanFlag(...),键名用驼峰。
- 可选在 environment.ts 导出常量(仅当符合既有模式)。
- 在 services/studio/src/nmp/studio/env_mappings.py 的 ENV_MAPPINGS 增加 EnvMapping,marker 固定为 STUDIO_UI_ + Vite 环境变量名,config_path 用 snake_case,default 为字符串。
- 在 web/packages/studio/env/.env.fastapi 中增加 VITE_FF_=STUDIO_UI_VITE_FF_ 行,保持与 env_mappings.py 一致。
- 更新 .env.dev.local.sample(提交的参考)以及按需更新 .env.dev.local。
- 在路由、导航等处以 featureFlags.<key> 门控,previewFlag 可加 FeatureFlagBadge。
- 在 Helm values 的 studio.feature_flags 下添加 snake_case 键,取值为字符串 true、false 或 preview。
使用方式:按上述步骤逐项应用,最后在 web/packages/studio 或 monorepo Studio 包执行 pnpm typecheck。
限制与注意:env.fastapi 文件要求与 env_mappings.py 保持对齐;缺失 .env.dev.local.sample 条目会导致开关静默回退到默认值;移除开关时需清理所有引用及相关文件。文档未提供具体价格、平台要求或更多安装命令。