Files
dreamweaver/README.md

5.5 KiB
Raw Blame History

DreamWeaver 梦语织机

AI 儿童故事生成应用,面向 3-8 岁儿童与家长,支持关键词生成故事、绘本页生成、封面图生成、语音朗读、孩子档案、故事宇宙与 Provider 管理。

当前仓库优先服务一个目标:本地 Docker 环境中稳定跑通完整产品闭环,便于求职演示和后续迭代。

技术栈

  • 后端FastAPI、SQLAlchemy async、PostgreSQL、Celery、Redis
  • 前端Vue 3、TypeScript、Pinia、Vue Router、Tailwind CSS、Vite
  • 认证OAuth 2.0 + JWT httpOnly cookie本地演示支持 dev login
  • AI文本、图片、TTS、绘本结构生成均通过 adapter/provider router 接入

仓库结构

backend/          FastAPI 后端、Celery 任务、数据库迁移
frontend/         用户端 Vue 应用
admin-frontend/   管理端 Vue 应用
docs/             当前产品、规划与技术文档
docker-compose.yml

本地 Docker 演示

  1. 准备环境文件:
cp backend/.env.example backend/.env

本地求职演示建议在 backend/.env 中使用:

DEBUG=true
ENABLE_DEMO_PROVIDERS=true
TEXT_PROVIDERS=["demo", "gemini", "openai"]
IMAGE_PROVIDERS=["demo", "cqtai"]
TTS_PROVIDERS=["edge_tts", "minimax", "elevenlabs"]
STORYBOOK_PROVIDERS=["demo", "storybook_primary"]

SECRET_KEY 必须设置为强随机值。backend/.env 已被 git 忽略,不要提交真实密钥。

  1. 启动完整本地栈:
docker compose up -d --build
  1. 访问入口:
  1. 常用命令:
docker compose ps
docker compose logs -f backend
./scripts/demo_smoke.sh
SMOKE_AUDIO=1 ./scripts/demo_smoke.sh
docker compose down
docker compose down -v

scripts/demo_smoke.sh 会检查健康状态、本地登录、统一生成、资产重试、故事列表和 Provider 能力分层。默认跳过 TTS演示前需要验证语音链路时使用 SMOKE_AUDIO=1

手动开发

后端:

cd backend
pip install -e ".[dev]"
alembic upgrade head
uvicorn app.main:app --reload --port 8000

Celery

cd backend
celery -A app.core.celery_app worker --loglevel=info
celery -A app.core.celery_app beat --loglevel=info

用户前端:

cd frontend
npm install
npm run dev

管理前端:

cd admin-frontend
npm install
npm run dev

质量检查

cd backend
pytest
ruff check app tests

cd ../frontend
npm run build

cd ../admin-frontend
npm run build

当前已知情况:完整后端测试可通过;全量 ruff 可通过。前端生产构建建议优先通过 Docker 验证,确保与本地演示环境一致。

核心接口

方法 路径 说明
GET /auth/dev/signin 本地开发登录,仅 DEBUG=true 可用
GET /auth/github/signin GitHub OAuth 登录
GET /auth/google/signin Google OAuth 登录
GET /auth/session 当前会话
POST /api/generations 统一生成故事或绘本
GET /api/generations/{story_id} 统一读取生成结果
POST /api/generations/{story_id}/retry-assets 统一重试封面/语音资源
GET /api/generations/jobs/{job_id} 查询生成任务事件流
GET /api/generations/{story_id}/jobs 查询故事生成与重试历史
GET /api/generations/{story_id}/provider-stats 查询 Provider 调用聚合指标
GET /api/generations/provider-analytics 查询当前用户跨故事 Provider 运营摘要
GET /api/audio/{story_id}/status 查询音频缓存状态,不触发生成
DELETE /api/audio/{story_id}/cache 清理故事音频缓存
GET /api/stories 故事列表
GET /api/stories/{story_id} 故事详情
DELETE /api/stories/{story_id} 删除故事
GET/POST/PUT/DELETE /admin/providers Provider 管理,需开启管理后台
GET /admin/providers/capabilities Provider 能力分层说明,需开启管理后台

文档入口

  • docs/product/job-search-relaunch-prd.md:求职版产品重启 PRD
  • docs/product/unified-generation-workflow-prd.md:统一生成工作流 PRD
  • docs/planning/week-1-execution-backlog.md:短期执行 backlog
  • docs/planning/week-2-execution-backlog.md:下一阶段执行 backlog
  • docs/planning/week-2-to-4-execution-backlog.mdWeek 2 到 Week 4 总执行 backlog
  • docs/planning/demo-checklist.md:求职演示检查清单
  • docs/planning/demo-package.md:求职版 Demo 包装页
  • docs/planning/demo-validation-log.md:本地 Docker 演示验证记录
  • docs/planning/interview-pitch.md3 分钟项目讲解稿
  • docs/planning/week-1-sprint-review.mdWeek 1 复盘总结
  • docs/planning/week-4-sprint-review.mdWeek 4 复盘和生产化 backlog
  • docs/technical/architecture.md:求职版架构说明
  • docs/technical/api-compatibility.md:旧生成 API 兼容层策略
  • docs/technical/generation-job-state.mdGeneration Job 状态落库决策
  • docs/technical/memory-system-dev.md:记忆系统技术说明
  • docs/technical/provider-routing.mdProvider 能力与路由策略说明

当前取舍

仓库只保留一个 Docker Compose 入口:docker-compose.yml。生产部署、HA 演练、旧 Claude 原型和历史归档已从主仓库移除,避免干扰当前求职演示主线。