Skip to content
anon019Public

About

Children's content creation and playback app for picture books, nursery rhymes, and videos.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

ย 

History

29 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Moana - AI ๅŽŸ็”Ÿๆ—ฉๆ•™ๅ†…ๅฎน็”Ÿๆˆๅนณๅฐ

Gemini_Generated_Image_9fsv0b9fsv0b9fsv

ไธบ 1-6 ๅฒๅ„ฟ็ซฅๆ‰“้€ ็š„ AI ไธชๆ€งๅŒ–ๆ•™่‚ฒๅ†…ๅฎน็”Ÿๆˆ็ณป็ปŸ

ๆ ธๅฟƒๅŠŸ่ƒฝ โ€ข ๆŠ€ๆœฏๆžถๆž„ โ€ข ๅฟซ้€Ÿๅผ€ๅง‹ โ€ข ้…็ฝฎ่ฏดๆ˜Ž โ€ข ้กน็›ฎ็ป“ๆž„


้กน็›ฎ็ฎ€ไป‹

Moana ๆ˜ฏไธ€ไธช AI ๅŽŸ็”Ÿ ็š„ๆ—ฉๆœŸๆ•™่‚ฒๅ†…ๅฎน็”Ÿๆˆๅนณๅฐ๏ผŒไธ“ไธบ 1-6 ๅฒๅ„ฟ็ซฅ่ฎพ่ฎกใ€‚้กน็›ฎ้‡‡็”จ monorepo ็ป“ๆž„๏ผŒๅŒ…ๅซๅ…ฌๅผ€็š„ๅŽ็ซฏไปฃ็ ใ€ๅŽๅฐ Web ๅ‰็ซฏ๏ผŒไปฅๅŠๅพฎไฟกๅฐ็จ‹ๅบๅ‰็ซฏใ€‚็ณป็ปŸ่ƒฝๅคŸๆ นๆฎๅญฉๅญ็š„ๅนด้พ„ใ€ๅ…ด่ถฃๅ’Œๆ•™่‚ฒ้œ€ๆฑ‚๏ผŒ่‡ชๅŠจ็”Ÿๆˆไธชๆ€งๅŒ–็ป˜ๆœฌใ€ๅŽŸๅˆ›ๅ„ฟๆญŒๅ’Œๆ•™่‚ฒ่ง†้ข‘๏ผŒๅนถ่ฎฐๅฝ•ๆ’ญๆ”พๅކๅฒใ€ไบ’ๅŠจๆ•ฐๆฎไธŽๅญฆไน ็ปŸ่ฎกใ€‚

ไธบไป€ไนˆ้€‰ๆ‹ฉ Moana๏ผŸ

  • ไธชๆ€งๅŒ–ๅ†…ๅฎน๏ผšๆ นๆฎๅญฉๅญ็š„ๅนด้พ„๏ผˆๆœˆ้พ„๏ผ‰ๅ’Œๆ•™่‚ฒไธป้ข˜่‡ชๅŠจ่ฐƒๆ•ดๅ†…ๅฎน้šพๅบฆๅ’Œ้ฃŽๆ ผ
  • ๅคšๆจกๆ€็”Ÿๆˆ๏ผšๆ”ฏๆŒ็ป˜ๆœฌใ€ๅ„ฟๆญŒใ€่ง†้ข‘ไธ‰็ฑปๆ ธๅฟƒๅ†…ๅฎน
  • AI ๆ™บ่ƒฝๅˆ›ไฝœ๏ผš้€š่ฟ‡่‡ช็„ถ่ฏญ่จ€ๆ่ฟฐ็”ŸๆˆๅฎŒๆ•ดๅ†…ๅฎนไธŽ้…ๅฅ—็ด ๆ
  • ๅญฆไน ่กŒไธบ่ฟฝ่ธช๏ผš่ฎฐๅฝ•ๆ’ญๆ”พใ€็ญ”้ข˜ไบ’ๅŠจไธŽๅญฆไน ็ปŸ่ฎก๏ผŒๆ”ฏๆŒๆŠฅๅ‘Š้กตๅฑ•็คบ
  • ๅฏ้…็ฝฎ้ƒจ็ฝฒ๏ผš่ฟ่กŒๆ—ถๅŸŸๅใ€ๅ›ž่ฐƒๅœฐๅ€ใ€ๅญ˜ๅ‚จๅœฐๅ€ๅ…จ้ƒจ้€š่ฟ‡็Žฏๅขƒๅ˜้‡้…็ฝฎ

ๆ ธๅฟƒๅŠŸ่ƒฝ

๐Ÿ“š AI ็ป˜ๆœฌ็”Ÿๆˆ

ไธบๅญฉๅญ็”Ÿๆˆๅ›พๆ–‡ๅนถ่Œ‚็š„ไธชๆ€งๅŒ–็ป˜ๆœฌๆ•…ไบ‹ใ€‚

  • 6 ๅคงไธป้ข˜ๅˆ†็ฑป๏ผšไน ๆƒฏๅ…ปๆˆใ€่ฎค็Ÿฅๅฏ่’™ใ€ๆƒ…ๆ„Ÿๆˆ้•ฟใ€ๅ†’้™ฉๆŽข็ดขใ€็คพไบค่ƒฝๅŠ›ใ€่Š‚ๆ—ฅๆ•…ไบ‹
  • 100+ ๆ•™่‚ฒ่ฏ้ข˜๏ผšๆถต็›–ๅˆท็‰™ใ€ๅˆ†ไบซใ€่ฎค่ฏ†้ขœ่‰ฒใ€ๅ‹‡ๆ•ข้ขๅฏน็ญ‰ๅ…ทไฝ“ๅœบๆ™ฏ
  • 30+ ่‰บๆœฏ้ฃŽๆ ผ๏ผšไปŽ็šฎๅ…‹ๆ–ฏ 3D ๅˆฐๆฐดๅฝฉใ€ๅ›ฝ็”ปใ€ๅ‰ช็บธ็ญ‰ๅคš็ง้ฃŽๆ ผ
  • ๅคšไธป่ง’้…็ฝฎ๏ผšๆ”ฏๆŒไธๅŒๅŠจ็‰ฉไธป่ง’ใ€้…่‰ฒๅ’Œ้…้ฅฐ็ป„ๅˆ
  • TTS ้…้Ÿณ๏ผšๆ”ฏๆŒไธบ็ป˜ๆœฌๅ’Œๆ•…ไบ‹ๅ†…ๅฎน็”Ÿๆˆ่ฏญ้Ÿณๆœ—่ฏป

๐ŸŽต AI ๅ„ฟๆญŒๅˆ›ไฝœ

็”ŸๆˆๅŽŸๅˆ›ๅ„ฟๆญŒ๏ผŒๅŒ…ๅซๆญŒ่ฏใ€ๆ—‹ๅพ‹ๅ’Œ้Ÿณ้ข‘่พ“ๅ‡บใ€‚

  • ๅคš็ง้Ÿณไน้ฃŽๆ ผ๏ผšๆฌขๅฟซใ€ๆธฉ้ฆจใ€ๆ‘‡็ฏฎๆ›ฒใ€ๆ•™่‚ฒๅ‘็ญ‰
  • ไธป้ข˜ๅŒ–ๆญŒ่ฏ็”Ÿๆˆ๏ผšๅ›ด็ป•ๆ•™่‚ฒๅœบๆ™ฏ็”Ÿๆˆ้€‚้พ„ๅ†…ๅฎน
  • ๅคšๆไพ›ๅ•†ๆ”ฏๆŒ๏ผšๅฏๅˆ‡ๆข Sunoใ€MiniMax ็ญ‰้ŸณไนๆœๅŠก

๐ŸŽฌ AI ่ง†้ข‘็”Ÿๆˆ

ๅฐ†็ป˜ๆœฌๆˆ–ๆ็คบ่ฏ่ฝฌๅŒ–ไธบๅŠจๆ€่ง†้ข‘ๅ†…ๅฎนใ€‚

  • ไธค็งๅˆ›ไฝœๆจกๅผ๏ผšๅŸบไบŽ็ป˜ๆœฌ็”Ÿๆˆ๏ผŒๆˆ–็›ดๆŽฅๆ นๆฎๆ่ฟฐ็”Ÿๆˆ
  • ๅคšๆ—ถ้•ฟๅ’Œๅˆ†่พจ็އ้…็ฝฎ๏ผš้€š่ฟ‡ๅŽ็ซฏ้…็ฝฎๅˆ‡ๆขไธๅŒ่ง†้ข‘ๅ‚ๆ•ฐ
  • ้ฃŽๆ ผไธ€่‡ดๆ€ง๏ผšไฟๆŒไธŽ็ป˜ๆœฌๆˆ–ไธป้ข˜ๅ†…ๅฎนไธ€่‡ด็š„่ง†่ง‰่กจ่พพ

๐Ÿง’ ๅญฉๅญๆกฃๆกˆไธŽๅ†…ๅฎนๅบ“

  • ๆ”ฏๆŒๅคšๅญฉๅญๆกฃๆกˆ
  • ๆ นๆฎๆœˆ้พ„ๆŽจ่ๅ†…ๅฎนๅ’Œไธป้ข˜
  • ๆ”ฏๆŒๆ’ญๆ”พๅކๅฒใ€ๅ†…ๅฎนๅบ“ไธŽๅŸบ็ก€ๅๅฅฝ็ฎก็†

๐Ÿ“Š ๅญฆไน ๆŠฅๅ‘ŠไธŽๆ’ญๆ”พ่ฟฝ่ธช

  • ๅ†…ๅฎนๆ’ญๆ”พ่ฎฐๅฝ•
  • ไบ’ๅŠจ็ญ”้ข˜่ฎฐๅฝ•
  • ๅญฆไน ๆ—ถ้•ฟใ€่ฟž็ปญๅญฆไน ๅคฉๆ•ฐใ€ไธป้ข˜ๅๅฅฝ็ญ‰็ปŸ่ฎก
  • ๅŽๅฐ Web ๆŠฅ่กจ้กตๅฑ•็คบๅญฆไน ๆ•ฐๆฎ

ๆŠ€ๆœฏๆžถๆž„

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                         ๅฎขๆˆท็ซฏ                                   โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚       ๅพฎไฟกๅฐ็จ‹ๅบ          โ”‚       Web ็ฎก็†ๅŽๅฐ (Vue 3)           โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                    โ”‚
                                    โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                     FastAPI ๅŽ็ซฏๆœๅŠก                             โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  API ๅฑ‚    โ”‚  ไธšๅŠก้€ป่พ‘ๅฑ‚  โ”‚  Pipeline ๅฑ‚  โ”‚  Service ๅฑ‚          โ”‚
โ”‚  โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€  โ”‚  โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€  โ”‚  โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€  โ”‚  โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€        โ”‚
โ”‚  auth      โ”‚  agents/     โ”‚  picture_book โ”‚  llm/                โ”‚
โ”‚  content   โ”‚  - intent    โ”‚  nursery_rhymeโ”‚  image/              โ”‚
โ”‚  child     โ”‚  - planner   โ”‚  video        โ”‚  tts/                โ”‚
โ”‚  play      โ”‚  - story     โ”‚  standalone   โ”‚  music/              โ”‚
โ”‚  library   โ”‚  - review    โ”‚               โ”‚  video/              โ”‚
โ”‚  feedback  โ”‚              โ”‚               โ”‚  storage/            โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                    โ”‚
                                    โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                       AI ๆœๅŠก้›†ๆˆ                                โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  LLM          โ”‚  ๅ›พๅƒ็”Ÿๆˆ      โ”‚  TTS         โ”‚  ้Ÿณไน/่ง†้ข‘        โ”‚
โ”‚  โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€     โ”‚  โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€    โ”‚  โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€    โ”‚  โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€     โ”‚
โ”‚  OpenRouter   โ”‚ Gemini Nano Banana โ”‚  Gemini TTS  โ”‚  Suno / MiniMax   โ”‚
โ”‚  Gemini       โ”‚  ้€šไน‰ไธ‡็›ธ      โ”‚  Qwen TTS    โ”‚  Google Veo 3.1   โ”‚
โ”‚  Claude       โ”‚  MiniMax       โ”‚  MiniMax TTS โ”‚  ไธ‡็›ธ่ง†้ข‘         โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                    โ”‚
                                    โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                       ๅŸบ็ก€่ฎพๆ–ฝ                                   โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ PostgreSQL (ไธšๅŠกๆ•ฐๆฎ) โ”‚ Local / OSS (ๅช’ไฝ“ๅญ˜ๅ‚จ) โ”‚ Env Config โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ๆŠ€ๆœฏๆ ˆ่ฏฆๆƒ…

ๆจกๅ— ๆŠ€ๆœฏ้€‰ๅž‹
ๅŽ็ซฏๆก†ๆžถ Python 3.11+, FastAPI, Pydantic
ๆ•ฐๆฎๅบ“ PostgreSQL + SQLAlchemy (async)
ๆ•ฐๆฎๅบ“่ฟ็งป Alembic
ๅฐ็จ‹ๅบๅ‰็ซฏ ๅพฎไฟกๅฐ็จ‹ๅบ
Web ๅ‰็ซฏ Vue 3 + TypeScript + Tailwind CSS + ECharts
ๆž„ๅปบๅทฅๅ…ท Vite
ๅช’ไฝ“ๅญ˜ๅ‚จ ๆœฌๅœฐๅญ˜ๅ‚จ / ้˜ฟ้‡Œไบ‘ OSS

AI ๆœๅŠก้…็ฝฎ

็ฑปๅˆซ ้ฆ–้€‰ๆœๅŠก ๅค‡้€‰ๆœๅŠก ็Žฏๅขƒๅ˜้‡
ๅ›พ็‰‡็”Ÿๆˆ Gemini Nano Banana (gemini-3.1-flash-image-preview) / ้€šไน‰ไธ‡็›ธ MiniMaxใ€Flux IMAGE_PROVIDER
ๅ„ฟๆญŒ็”Ÿๆˆ Suno V5 MiniMax Music 2.0 MUSIC_PROVIDER
่ง†้ข‘็”Ÿๆˆ Google Veo 3.1 / ้˜ฟ้‡Œไบ‘ไธ‡็›ธ MiniMax Hailuo VIDEO_PROVIDER
LLM OpenRouter Geminiใ€Claude LLM_PROVIDER
TTS ่ฏญ้Ÿณ Gemini TTS / Qwen TTS MiniMaxใ€Fish Speech TTS_PROVIDER

ๅฟซ้€Ÿๅผ€ๅง‹

็Žฏๅขƒ่ฆๆฑ‚

  • Python 3.11+
  • PostgreSQL 14+
  • Node.js 18+๏ผˆWeb ๅ‰็ซฏ๏ผ‰
  • ๅพฎไฟกๅผ€ๅ‘่€…ๅทฅๅ…ท๏ผˆๅฐ็จ‹ๅบๅผ€ๅ‘๏ผ‰

ๅŽ็ซฏ้ƒจ็ฝฒ

# 1. ่ฟ›ๅ…ฅๅŽ็ซฏ็›ฎๅฝ•
cd backend

# 2. ๅฎ‰่ฃ…ไพ่ต–
pip install -e ".[dev]"

# 3. ้…็ฝฎ็Žฏๅขƒๅ˜้‡
cp .env.example .env
# ็ผ–่พ‘ .env๏ผŒๅกซๅ…ฅๆ•ฐๆฎๅบ“ใ€Provider ๅฏ†้’ฅๅ’Œ่ฟ่กŒๆ—ถ URL

# 4. ่ฟ่กŒๆ•ฐๆฎๅบ“่ฟ็งป
alembic upgrade head

# 5. ๅฏๅŠจๅผ€ๅ‘ๆœๅŠกๅ™จ
uvicorn moana.main:app --reload

่ฏฆ็ป†ๅŽ็ซฏ่ฏดๆ˜Ž่ง๏ผš

  • backend/README.md
  • backend/alembic/README

Web ็ฎก็†ๅŽๅฐ

# 1. ่ฟ›ๅ…ฅ Web ็›ฎๅฝ•
cd backend/web

# 2. ๅฎ‰่ฃ…ไพ่ต–
npm install

# 3. ๅฏๅŠจๅผ€ๅ‘ๆœๅŠกๅ™จ
npm run dev

่ฏดๆ˜Ž๏ผš

  • VITE_API_URL ๅฏ็›ดๆŽฅๆŒ‡ๅฎšๅŽ็ซฏ API ๅŸบ็ก€ๅœฐๅ€
  • ๆœฌๅœฐๅผ€ๅ‘ๆ—ถๅฏไฝฟ็”จ VITE_DEV_PROXY_TARGET ๆŒ‡ๅ‘ๆœฌๅœฐๅŽ็ซฏ
  • ๅ…ฌๅผ€ไปฃ็ ้ป˜่ฎคไธๆไบค็”ŸไบงๅŸŸๅ

ๅพฎไฟกๅฐ็จ‹ๅบ

  1. ๆ‰“ๅผ€ๅพฎไฟกๅผ€ๅ‘่€…ๅทฅๅ…ท
  2. ๅฏผๅ…ฅ miniprogram ็›ฎๅฝ•
  3. ้…็ฝฎๅฐ็จ‹ๅบ AppID ๅ’Œๆœฌๅœฐๅผ€ๅ‘ๅ‚ๆ•ฐ
  4. ๅฐ† API ๅœฐๅ€้…็ฝฎไธบไฝ ็š„ๅŽ็ซฏ้ƒจ็ฝฒๅœฐๅ€

้…็ฝฎ่ฏดๆ˜Ž

ๅฟ…้œ€็š„ๅŽ็ซฏ้…็ฝฎ

ๅœจ backend/.env ไธญ่‡ณๅฐ‘้…็ฝฎไปฅไธ‹ๅ†…ๅฎน๏ผš

# ๆ•ฐๆฎๅบ“่ฟžๆŽฅ
DATABASE_URL=postgresql+asyncpg://user:password@localhost:5432/moana

# Provider keys
OPENROUTER_API_KEY=your_openrouter_api_key
GOOGLE_API_KEY=your_google_api_key
GEMINI_IMAGE_MODEL=gemini-3.1-flash-image-preview
SUNO_API_KEY=your_suno_api_key
DASHSCOPE_API_KEY=your_dashscope_api_key
MINIMAX_API_KEY=your_minimax_api_key

# Runtime URLs
STORAGE_BASE_URL=http://localhost:8080/media
CALLBACK_BASE_URL=http://localhost:8080
ALLOWED_CORS_ORIGINS=["http://localhost:3000","http://127.0.0.1:3000"]
OPENROUTER_SITE_URL=http://localhost:3000

ๅŽŸๅˆ™๏ผš

  • ไธ่ฆๆŠŠ็”ŸไบงๅŸŸๅใ€ๅฏ†้’ฅๆˆ–็งๆœ‰ๅœฐๅ€ๆไบคๅˆฐไป“ๅบ“
  • ๅ›พ็‰‡็”Ÿๆˆ้ป˜่ฎค้“พ่ทฏไฝฟ็”จ Gemini๏ผŒๆจกๅž‹ไธบ gemini-3.1-flash-image-preview๏ผˆไปฃ็ ๆณจ้‡Šๆ ‡ไธบ Nano Banana๏ผ‰
  • ๅญ˜ๅ‚จๅœฐๅ€ใ€ๅ›ž่ฐƒๅœฐๅ€ใ€CORS ็™ฝๅๅ•ๅ…จ้ƒจ้€š่ฟ‡็Žฏๅขƒๅ˜้‡้…็ฝฎ
  • ๅ…ฌๅผ€ไป“ๅบ“ไธญ็š„้ป˜่ฎคๅ€ผไป…็”จไบŽๆœฌๅœฐๅผ€ๅ‘็คบไพ‹

Provider ๅˆ‡ๆข

็ณป็ปŸๆ”ฏๆŒ่ฟ่กŒๆ—ถๅˆ‡ๆขไธๅŒ็š„ AI ๆœๅŠกๆไพ›ๅ•†๏ผš

# LLM ๆไพ›ๅ•†: openrouter | gemini | claude
LLM_PROVIDER=openrouter

# ๅ›พๅƒ็”Ÿๆˆ: gemini | wanx | minimax | flux
IMAGE_PROVIDER=gemini

# ่ฏญ้Ÿณๅˆๆˆ: gemini | qwen | minimax | fish_speech
TTS_PROVIDER=gemini

# ้Ÿณไน็”Ÿๆˆ: suno | minimax
MUSIC_PROVIDER=suno

# ่ง†้ข‘็”Ÿๆˆ: veo | wanx | minimax
VIDEO_PROVIDER=veo

้กน็›ฎ็ป“ๆž„

Moana/
โ”œโ”€โ”€ README.md                    # ไป“ๅบ“ๆ น่ฏดๆ˜Ž
โ”œโ”€โ”€ .gitignore                   # ไป“ๅบ“็บงๅฟฝ็•ฅ่ง„ๅˆ™
โ”‚
โ”œโ”€โ”€ backend/                     # ๅŽ็ซฏไธŽๅŽๅฐ Web
โ”‚   โ”œโ”€โ”€ README.md                # ๅŽ็ซฏ่ฏฆ็ป†่ฏดๆ˜Ž
โ”‚   โ”œโ”€โ”€ .env.example             # ็Žฏๅขƒๅ˜้‡ๆจกๆฟ
โ”‚   โ”œโ”€โ”€ alembic/                 # ๆ•ฐๆฎๅบ“่ฟ็งป
โ”‚   โ”œโ”€โ”€ src/moana/               # ๅŽ็ซฏๆ ธๅฟƒไปฃ็ 
โ”‚   โ”œโ”€โ”€ tests/                   # ๅŽ็ซฏๆต‹่ฏ•
โ”‚   โ””โ”€โ”€ web/                     # Vue ๅŽๅฐ Web ๅ‰็ซฏ
โ”‚
โ””โ”€โ”€ miniprogram/                 # ๅพฎไฟกๅฐ็จ‹ๅบๅ‰็ซฏ

API ๆ–‡ๆกฃ

ๅฏๅŠจๅŽ็ซฏๆœๅŠกๅŽ๏ผŒๅฏ่ฎฟ้—ฎ่‡ชๅŠจ็”Ÿๆˆ็š„ๆŽฅๅฃๆ–‡ๆกฃ๏ผš

  • Swagger UI: http://127.0.0.1:8000/docs
  • ReDoc: http://127.0.0.1:8000/redoc

ๅฆ‚ไฝฟ็”จ่‡ชๅฎšไน‰็ซฏๅฃ๏ผŒ่ฏทๆŒ‰ๅฎž้™…ๅฏๅŠจๅœฐๅ€่ฎฟ้—ฎใ€‚

ไธป่ฆ API ๆจกๅ—

ๆจกๅ— ่ทฏๅพ„ๅ‰็ผ€ ๆ่ฟฐ
auth /api/v1/auth ็™ปๅฝ•ใ€ไปค็‰Œๅˆทๆ–ฐ
child /api/v1/child ๅญฉๅญๆกฃๆกˆไธŽ่ฎพ็ฝฎ
content /api/v1/content ๅ†…ๅฎน็”ŸๆˆไธŽ็ฎก็†
play /api/v1/play ๆ’ญๆ”พๅކๅฒใ€ไบ’ๅŠจ่ฎฐๅฝ•ใ€ๅญฆไน ็ปŸ่ฎก
library /api/v1/library ๅ†…ๅฎนๅบ“

ๅผ€ๅ‘ๆŒ‡ๅ—

ๆทปๅŠ ๆ–ฐ็š„่‰บๆœฏ้ฃŽๆ ผ

  1. ๅœจ backend/src/moana/styles/__init__.py ไธญๅฎšไน‰้ฃŽๆ ผ
  2. ๅœจ็›ธๅ…ณๆœๅŠกๆˆ–ๆ็คบ่ฏๆจกๅ—ไธญ่กฅๅ……็”Ÿๆˆ้€ป่พ‘
  3. ๅœจ miniprogram/ ๆˆ– backend/web/ ไธญ่กฅๅ……ๅฏนๅบ”็š„ UI ้€‰้กน

ๆทปๅŠ ๆ–ฐ็š„ๆ•™่‚ฒไธป้ข˜

  1. ๅœจ backend/src/moana/themes.py ไธญๅฎšไน‰ไธป้ข˜
  2. ๅœจๅ‰็ซฏๅ…ฅๅฃ่กฅๅ……ๅฏนๅบ”็š„้€‰ๆ‹ฉ้กนไธŽๅฑ•็คบ้€ป่พ‘

้›†ๆˆๆ–ฐ็š„ AI ๆœๅŠก

  1. ๅœจ backend/src/moana/services/ ไธ‹ๅˆ›ๅปบๆ–ฐ็š„ๆœๅŠกๆจกๅ—
  2. ๅฎž็Žฐๅฏนๅบ”็š„ base ็ฑปๆŽฅๅฃ
  3. ๅœจ backend/src/moana/config.py ไธญๆทปๅŠ ้…็ฝฎ้กน

่ฟ่กŒๆต‹่ฏ•

cd backend

# ่ฟ่กŒๆ‰€ๆœ‰ๆต‹่ฏ•
pytest

# ่ฟ่กŒ play API ๅ›žๅฝ’ๆต‹่ฏ•
pytest tests/api/test_play.py -q

้ƒจ็ฝฒ

็”Ÿไบง็Žฏๅขƒๅปบ่ฎฎ

  1. ไฝฟ็”จ Gunicorn + Uvicorn workers ่ฟ่กŒ FastAPI
  2. ้…็ฝฎ Nginx ๆˆ–ๅ…ถไป–็ฝ‘ๅ…ณๅšๅๅ‘ไปฃ็†
  3. ๅฏ็”จ HTTPS
  4. ไฝฟ็”จ PostgreSQL ่ฟžๆŽฅๆฑ ไธŽๅฎšๆœŸๅค‡ไปฝ
  5. ๅฐ†ๅŸŸๅใ€ๅ›ž่ฐƒๅœฐๅ€ๅ’Œ CORS ็™ฝๅๅ•ๆ”พๅœจ็Žฏๅขƒๅ˜้‡ไธญ็ปดๆŠค

่ฎธๅฏ่ฏ

MIT License


่ดก็Œฎ

ๆฌข่ฟŽๆไบค Issue ๅ’Œ Pull Requestใ€‚ๆไบค PR ๅ‰่ฏท็กฎ่ฎค๏ผš

  1. ไปฃ็ ้€š่ฟ‡็›ธๅ…ณๆต‹่ฏ•
  2. ้ตๅพช็Žฐๆœ‰ไปฃ็ ้ฃŽๆ ผ
  3. ๆ›ดๆ–ฐ็›ธๅ…ณๆ–‡ๆกฃ
  4. ไธๆไบคๆ•ๆ„Ÿไฟกๆฏใ€็งๆœ‰ๅŸŸๅๆˆ–ๆœฌๅœฐ็ด ๆๆ•ฐๆฎ

่”็ณปๆ–นๅผ

ๅฆ‚ๆœ‰้—ฎ้ข˜ๆˆ–ๅปบ่ฎฎ๏ผŒ่ฏท้€š่ฟ‡ GitHub Issues ่”็ณปใ€‚

About

Children's content creation and playback app for picture books, nursery rhymes, and videos.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages