aiPptModelDesign.mjs 1.5 KB

1234567891011121314151617181920212223242526272829303132
  1. import { classroomFixture } from './aiPptClassroom.mjs'
  2. // 本地编译器回归数据;图片是模板测试资源,并非真实模型生成结果。
  3. export function modelDesignFixture(imageUrl) {
  4. const outline = classroomFixture(imageUrl)
  5. const designs = [
  6. ['full_scene', 'generated_image', 'plain', .65],
  7. ['image_left', 'generated_image', 'plain', .6],
  8. ['focus_question', 'text_only', 'plain'],
  9. ['image_right', 'generated_image', 'cards', .55],
  10. ['comparison', 'text_only', 'plain'],
  11. ['steps', 'native_diagram', 'plain'],
  12. ['concept_grid', 'text_only', 'grid'],
  13. ['steps', 'text_only', 'steps'],
  14. ['image_top', 'generated_image', 'plain', .4],
  15. ['focus_question', 'text_only', 'plain'],
  16. ['concept_grid', 'native_diagram', 'grid'],
  17. ['steps', 'text_only', 'steps']
  18. ]
  19. outline.pages.forEach((page, index) => {
  20. const [composition, visualMode, textPresentation, visualShare = .55] = designs[index]
  21. const illustrated = visualMode === 'generated_image'
  22. page.visualPlan = { layout: 'split_content', composition, visualMode, textPresentation, visualShare,
  23. imageNecessity: illustrated ? 'essential' : 'none', imageReason: illustrated ? '观察画面中的角色与动作' : '通过文字或可编辑图示完成任务',
  24. imagePurpose: illustrated ? 'observation' : 'none' }
  25. page.requiredVisual = illustrated
  26. page.image = illustrated ? { url: imageUrl, width: 960, height: 720 } : undefined
  27. page.imageStatus = illustrated ? 'ready' : 'not_required'
  28. page.imageReview = undefined
  29. })
  30. return outline
  31. }