ไธบ 1-6 ๅฒๅฟ็ซฅๆ้ ็ AI ไธชๆงๅๆ่ฒๅ ๅฎน็ๆ็ณป็ป
ๆ ธๅฟๅ่ฝ โข ๆๆฏๆถๆ โข ๅฟซ้ๅผๅง โข ้ ็ฝฎ่ฏดๆ โข ้กน็ฎ็ปๆ
Moana ๆฏไธไธช AI ๅ็ ็ๆฉๆๆ่ฒๅ ๅฎน็ๆๅนณๅฐ๏ผไธไธบ 1-6 ๅฒๅฟ็ซฅ่ฎพ่ฎกใ้กน็ฎ้็จ monorepo ็ปๆ๏ผๅ ๅซๅ ฌๅผ็ๅ็ซฏไปฃ็ ใๅๅฐ Web ๅ็ซฏ๏ผไปฅๅๅพฎไฟกๅฐ็จๅบๅ็ซฏใ็ณป็ป่ฝๅคๆ นๆฎๅญฉๅญ็ๅนด้พใๅ ด่ถฃๅๆ่ฒ้ๆฑ๏ผ่ชๅจ็ๆไธชๆงๅ็ปๆฌใๅๅๅฟๆญๅๆ่ฒ่ง้ข๏ผๅนถ่ฎฐๅฝๆญๆพๅๅฒใไบๅจๆฐๆฎไธๅญฆไน ็ป่ฎกใ
- ไธชๆงๅๅ ๅฎน๏ผๆ นๆฎๅญฉๅญ็ๅนด้พ๏ผๆ้พ๏ผๅๆ่ฒไธป้ข่ชๅจ่ฐๆดๅ ๅฎน้พๅบฆๅ้ฃๆ ผ
- ๅคๆจกๆ็ๆ๏ผๆฏๆ็ปๆฌใๅฟๆญใ่ง้ขไธ็ฑปๆ ธๅฟๅ ๅฎน
- AI ๆบ่ฝๅไฝ๏ผ้่ฟ่ช็ถ่ฏญ่จๆ่ฟฐ็ๆๅฎๆดๅ ๅฎนไธ้ ๅฅ็ด ๆ
- ๅญฆไน ่กไธบ่ฟฝ่ธช๏ผ่ฎฐๅฝๆญๆพใ็ญ้ขไบๅจไธๅญฆไน ็ป่ฎก๏ผๆฏๆๆฅๅ้กตๅฑ็คบ
- ๅฏ้ ็ฝฎ้จ็ฝฒ๏ผ่ฟ่กๆถๅๅใๅ่ฐๅฐๅใๅญๅจๅฐๅๅ จ้จ้่ฟ็ฏๅขๅ้้ ็ฝฎ
ไธบๅญฉๅญ็ๆๅพๆๅนถ่็ไธชๆงๅ็ปๆฌๆ ไบใ
- 6 ๅคงไธป้ขๅ็ฑป๏ผไน ๆฏๅ ปๆใ่ฎค็ฅๅฏ่ใๆ ๆๆ้ฟใๅ้ฉๆข็ดขใ็คพไบค่ฝๅใ่ๆฅๆ ไบ
- 100+ ๆ่ฒ่ฏ้ข๏ผๆถต็ๅท็ใๅไบซใ่ฎค่ฏ้ข่ฒใๅๆข้ขๅฏน็ญๅ ทไฝๅบๆฏ
- 30+ ่บๆฏ้ฃๆ ผ๏ผไป็ฎๅ ๆฏ 3D ๅฐๆฐดๅฝฉใๅฝ็ปใๅช็บธ็ญๅค็ง้ฃๆ ผ
- ๅคไธป่ง้ ็ฝฎ๏ผๆฏๆไธๅๅจ็ฉไธป่งใ้ ่ฒๅ้ ้ฅฐ็ปๅ
- TTS ้ ้ณ๏ผๆฏๆไธบ็ปๆฌๅๆ ไบๅ ๅฎน็ๆ่ฏญ้ณๆ่ฏป
็ๆๅๅๅฟๆญ๏ผๅ ๅซๆญ่ฏใๆๅพๅ้ณ้ข่พๅบใ
- ๅค็ง้ณไน้ฃๆ ผ๏ผๆฌขๅฟซใๆธฉ้ฆจใๆ็ฏฎๆฒใๆ่ฒๅ็ญ
- ไธป้ขๅๆญ่ฏ็ๆ๏ผๅด็ปๆ่ฒๅบๆฏ็ๆ้้พๅ ๅฎน
- ๅคๆไพๅๆฏๆ๏ผๅฏๅๆข SunoใMiniMax ็ญ้ณไนๆๅก
ๅฐ็ปๆฌๆๆ็คบ่ฏ่ฝฌๅไธบๅจๆ่ง้ขๅ ๅฎนใ
- ไธค็งๅไฝๆจกๅผ๏ผๅบไบ็ปๆฌ็ๆ๏ผๆ็ดๆฅๆ นๆฎๆ่ฟฐ็ๆ
- ๅคๆถ้ฟๅๅ่พจ็้ ็ฝฎ๏ผ้่ฟๅ็ซฏ้ ็ฝฎๅๆขไธๅ่ง้ขๅๆฐ
- ้ฃๆ ผไธ่ดๆง๏ผไฟๆไธ็ปๆฌๆไธป้ขๅ ๅฎนไธ่ด็่ง่ง่กจ่พพ
- ๆฏๆๅคๅญฉๅญๆกฃๆก
- ๆ นๆฎๆ้พๆจ่ๅ ๅฎนๅไธป้ข
- ๆฏๆๆญๆพๅๅฒใๅ ๅฎนๅบไธๅบ็กๅๅฅฝ็ฎก็
- ๅ ๅฎนๆญๆพ่ฎฐๅฝ
- ไบๅจ็ญ้ข่ฎฐๅฝ
- ๅญฆไน ๆถ้ฟใ่ฟ็ปญๅญฆไน ๅคฉๆฐใไธป้ขๅๅฅฝ็ญ็ป่ฎก
- ๅๅฐ 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 |
| ็ฑปๅซ | ้ฆ้ๆๅก | ๅค้ๆๅก | ็ฏๅขๅ้ |
|---|---|---|---|
| ๅพ็็ๆ | 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.mdbackend/alembic/README
# 1. ่ฟๅ
ฅ Web ็ฎๅฝ
cd backend/web
# 2. ๅฎ่ฃ
ไพ่ต
npm install
# 3. ๅฏๅจๅผๅๆๅกๅจ
npm run dev่ฏดๆ๏ผ
VITE_API_URLๅฏ็ดๆฅๆๅฎๅ็ซฏ API ๅบ็กๅฐๅ- ๆฌๅฐๅผๅๆถๅฏไฝฟ็จ
VITE_DEV_PROXY_TARGETๆๅๆฌๅฐๅ็ซฏ - ๅ ฌๅผไปฃ็ ้ป่ฎคไธๆไบค็ไบงๅๅ
- ๆๅผๅพฎไฟกๅผๅ่ ๅทฅๅ ท
- ๅฏผๅ
ฅ
miniprogram็ฎๅฝ - ้ ็ฝฎๅฐ็จๅบ AppID ๅๆฌๅฐๅผๅๅๆฐ
- ๅฐ 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 ็ฝๅๅๅ จ้จ้่ฟ็ฏๅขๅ้้ ็ฝฎ
- ๅ ฌๅผไปๅบไธญ็้ป่ฎคๅผไป ็จไบๆฌๅฐๅผๅ็คบไพ
็ณป็ปๆฏๆ่ฟ่กๆถๅๆขไธๅ็ 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=veoMoana/
โโโ README.md # ไปๅบๆ น่ฏดๆ
โโโ .gitignore # ไปๅบ็บงๅฟฝ็ฅ่งๅ
โ
โโโ backend/ # ๅ็ซฏไธๅๅฐ Web
โ โโโ README.md # ๅ็ซฏ่ฏฆ็ป่ฏดๆ
โ โโโ .env.example # ็ฏๅขๅ้ๆจกๆฟ
โ โโโ alembic/ # ๆฐๆฎๅบ่ฟ็งป
โ โโโ src/moana/ # ๅ็ซฏๆ ธๅฟไปฃ็
โ โโโ tests/ # ๅ็ซฏๆต่ฏ
โ โโโ web/ # Vue ๅๅฐ Web ๅ็ซฏ
โ
โโโ miniprogram/ # ๅพฎไฟกๅฐ็จๅบๅ็ซฏ
ๅฏๅจๅ็ซฏๆๅกๅ๏ผๅฏ่ฎฟ้ฎ่ชๅจ็ๆ็ๆฅๅฃๆๆกฃ๏ผ
- Swagger UI:
http://127.0.0.1:8000/docs - ReDoc:
http://127.0.0.1:8000/redoc
ๅฆไฝฟ็จ่ชๅฎไน็ซฏๅฃ๏ผ่ฏทๆๅฎ้ ๅฏๅจๅฐๅ่ฎฟ้ฎใ
| ๆจกๅ | ่ทฏๅพๅ็ผ | ๆ่ฟฐ |
|---|---|---|
auth |
/api/v1/auth |
็ปๅฝใไปค็ๅทๆฐ |
child |
/api/v1/child |
ๅญฉๅญๆกฃๆกไธ่ฎพ็ฝฎ |
content |
/api/v1/content |
ๅ ๅฎน็ๆไธ็ฎก็ |
play |
/api/v1/play |
ๆญๆพๅๅฒใไบๅจ่ฎฐๅฝใๅญฆไน ็ป่ฎก |
library |
/api/v1/library |
ๅ ๅฎนๅบ |
- ๅจ
backend/src/moana/styles/__init__.pyไธญๅฎไน้ฃๆ ผ - ๅจ็ธๅ ณๆๅกๆๆ็คบ่ฏๆจกๅไธญ่กฅๅ ็ๆ้ป่พ
- ๅจ
miniprogram/ๆbackend/web/ไธญ่กฅๅ ๅฏนๅบ็ UI ้้กน
- ๅจ
backend/src/moana/themes.pyไธญๅฎไนไธป้ข - ๅจๅ็ซฏๅ ฅๅฃ่กฅๅ ๅฏนๅบ็้ๆฉ้กนไธๅฑ็คบ้ป่พ
- ๅจ
backend/src/moana/services/ไธๅๅปบๆฐ็ๆๅกๆจกๅ - ๅฎ็ฐๅฏนๅบ็ base ็ฑปๆฅๅฃ
- ๅจ
backend/src/moana/config.pyไธญๆทปๅ ้ ็ฝฎ้กน
cd backend
# ่ฟ่กๆๆๆต่ฏ
pytest
# ่ฟ่ก play API ๅๅฝๆต่ฏ
pytest tests/api/test_play.py -q- ไฝฟ็จ Gunicorn + Uvicorn workers ่ฟ่ก FastAPI
- ้ ็ฝฎ Nginx ๆๅ ถไป็ฝๅ ณๅๅๅไปฃ็
- ๅฏ็จ HTTPS
- ไฝฟ็จ PostgreSQL ่ฟๆฅๆฑ ไธๅฎๆๅคไปฝ
- ๅฐๅๅใๅ่ฐๅฐๅๅ CORS ็ฝๅๅๆพๅจ็ฏๅขๅ้ไธญ็ปดๆค
MIT License
ๆฌข่ฟๆไบค Issue ๅ Pull Requestใๆไบค PR ๅ่ฏท็กฎ่ฎค๏ผ
- ไปฃ็ ้่ฟ็ธๅ ณๆต่ฏ
- ้ตๅพช็ฐๆไปฃ็ ้ฃๆ ผ
- ๆดๆฐ็ธๅ ณๆๆกฃ
- ไธๆไบคๆๆไฟกๆฏใ็งๆๅๅๆๆฌๅฐ็ด ๆๆฐๆฎ
ๅฆๆ้ฎ้ขๆๅปบ่ฎฎ๏ผ่ฏท้่ฟ GitHub Issues ่็ณปใ
