## Context 当前系统使用 AI 服务生成分类图标,但生成的图标过于复杂,用户难以识别图标与分类名称的对应关系。问题根源在于 AI 提示词缺乏对简约风格的明确约束,导致生成的图标细节过多、视觉杂乱。影响范围涉及 Service 层的 AI 调用逻辑、Application 层的提示词配置以及前端的图标展示效果。 ## Goals / Non-Goals **Goals:** - 优化 AI 图标生成的提示词,确保生成简约、清晰的图标 - 建立图标与分类名称的明确视觉关联规则 - 提升图标生成的一致性和可识别性 - 改善用户体验,降低识别成本 **Non-Goals:** - 不改变现有的 AI 服务提供商 - 不重构整体的图标生成流程架构 - 不涉及图标存储或缓存机制的变更 - 不改变分类数据模型 ## Decisions **提示词策略选择** - **决策**: 采用分层提示词策略,在基础提示词中明确"简约、扁平、单色"等风格约束,在动态部分注入分类名称的语义信息 - **替代方案**: 考虑过完全重写提示词模板,但风险较大,可能影响现有其他功能的稳定性 - **理由**: 分层策略既能控制生成风格,又能灵活适配不同分类,改动范围小、风险低 **提示词模板化** - **决策**: 将提示词抽象为可配置的模板,支持通过配置文件调整生成风格参数 - **替代方案**: 考虑过硬编码简化提示词,但缺乏灵活性,后续调整需要重新部署 - **理由**: 模板化便于 A/B 测试不同提示词效果,快速迭代优化 **生成参数调整** - **决策**: 在 AI 服务调用中增加风格强度参数(如 style_strength),控制简约程度 - **替代方案**: 完全依赖提示词控制,但部分 AI 服务支持通过参数微调生成风格 - **理由**: 结合参数调优能更精准控制生成效果,提升成功率 ## Risks / Trade-offs **风险**: 简约提示词可能导致部分抽象分类(如"其他"、"通用")生成的图标过于相似,难以区分 - **缓解**: 针对抽象分类添加特殊的视觉元素(如特定的几何形状或颜色编码) **风险**: 提示词优化需要多次迭代,可能影响用户体验一致性 - **缓解**: 采用灰度发布策略,逐步验证新提示词效果,必要时支持回滚 **权衡**: 简约风格可能牺牲图标的细节表现力,但可识别性更重要 - **决策**: 优先保证可识别性,后续可考虑提供可选的详细风格模式 **权衡**: 模板化提示词增加了配置复杂度,但提升了可维护性和灵活性 - **决策**: 通过默认配置降低使用门槛,仅在需要调整时暴露模板参数 ## Migration Plan **第一阶段:提示词模板化** 1. 在 Application 层创建图标提示词配置类(如 `IconPromptConfig`) 2. 将现有提示词提取为模板,支持风格参数替换 3. 实现模板引擎(可使用字符串插值或轻量级模板库) **第二阶段:提示词优化** 1. 设计简约风格提示词模板,明确约束:扁平化、单色、少细节、高对比度 2. 建立分类名称到视觉元素的映射规则(如"餐饮" → 餐具形状) 3. 集成 AI 服务调用时的风格强度参数 **第三阶段:测试与验证** 1. 对现有分类批量生成新图标,对比可识别性 2. 邀请用户进行 A/B 测试,收集反馈 3. 根据测试结果微调提示词和参数 **第四阶段:灰度发布** 1. 先在测试环境验证新图标生成效果 2. 灰度发布到生产环境(如 10% 用户) 3. 监控用户反馈和图标生成成功率,逐步扩大比例 **回滚策略** - 保留旧提示词模板的备份,通过配置开关快速回滚 - 灰度期间出现异常立即回滚并分析原因 - 记录每次提示词迭代版本,支持追溯和对比 ## Open Questions - 当前使用的 AI 服务是否支持风格强度参数?需要查阅 API 文档或进行技术验证。 - 现有分类中是否有语义特别抽象的分类,需要特殊处理?(需要统计分类名称分析) - 用户对图标风格的偏好是否有特定趋势?(可以通过历史用户行为数据或调研获取)