优化 Ikigai 报告 Prompt 与雷达图渲染

Ikigai 报告生成 prompt 优化、radar slide 渲染链路打通、AnimatedRadarChart 动画 bug 修复等

by 于成季 ·
Ikigai LLM 知与行 CloudBase

1. 问题背景

Ikigai 报告生成调用统一云函数 generate-theory-report,但 prompt 缺少 ikigai 专属四维分析引导,输出的 sections 格式无法驱动雷达图可视化。

2. 问题列表

2.1 prompt 无 ikigai 专属 extra

根因:THEORY_PROMPT_EXTRAS 中 MBTI/BigFive/Custom 有专属 extra,ikigai 缺失,导致 LLM 按泛化模板生成分析。

方案:

  • 短期:为 report-ikigai 新增 extra,引导四维框架分析 + radar 专用 section 输出格式
  • 长远:建立各理论的专属 output schema

采纳方案:短期,直接在 theory-report-prompts.tsTHEORY_PROMPT_EXTRAS 添加 'report-ikigai' 条目。

2.2 sections 无法渲染雷达图

根因:objectToSlides 将所有 sections 统一转为 summary slide,未识别 radar 可视化类型。

方案:

  • 短期:在 objectToSlides 中新增 visualizationType === 'radar' 分支,生成 type: 'radar' slide
  • 长远:统一报告 schema,各理论声明自己的 slide 类型

采纳方案:短期,在 app/(tabs)/zhi/report.tsxobjectToSlides 中处理 visualizationType === 'radar'

2.3 AnimatedRadarChart 动画静默失效

根因:AnimatedPolygon 使用 useNativeDriver: true,但 SVG points 属性变化无法通过 native driver 驱动,导致动画不生效。

方案:

  • 短期:将 useNativeDriver 改为 false
  • 长远:使用纯 JS 动画或 Web 专用 SVG 动画方案

采纳方案:短期,改 useNativeDriver: false

2.4 Playwright 测试检查 canvas 而非 SVG

根因:测试验证雷达图时检查 canvas 元素,但 AnimatedRadarChart 实际使用 react-native-svg 渲染为 SVG。

方案:

  • 短期:测试改为检查 svg 元素
  • 长远:建立组件渲染方式的单元测试

采纳方案:短期。

2.5 数据库表结构待确认

根因:报告生成依赖 plans/insights/wishes 三张表,表结构与前端查询字段是否一致未经验证。

方案:

  • 短期:通过 MCP querySqlDatabase 查询 DESCRIBE 确认字段
  • 长远:在 报告生成流程.md 维护表结构文档

采纳方案:短期,确认三张表字段匹配。

3. 小结

本次优化完成了 ikigai 专属 prompt、radar slide 渲染链路、动画 bug 修复和 E2E 测试验证。LLM 已能正确输出 radar 格式(四维评分 + dimensions),objectToSlidesReportViewerAnimatedRadarChart 全链路打通,Playwright 测试验收通过(找到 4 个 SVG 元素)。

← 所有文章