2025/12/5 每日总结 从0到1搭建AI儿童故事平台:数据模型设计与大模型选型
从0到1搭建AI儿童故事平台:数据模型设计与大模型选型
作为软件构造课程的核心实验项目,AI儿童故事平台的开发目标是打造一个“文本+图像+音频”三位一体的多媒体故事生成与管理系统。而项目成功的关键,始于前期扎实的基础搭建——包括贴合需求的数据模型设计,以及适配场景的大模型选型。这两步不仅决定了后续功能开发的顺畅度,更直接影响平台的扩展性与用户体验。本文就来详细拆解这一“地基工程”的实现思路与决策逻辑。
一、项目背景与核心需求拆解
在数字化时代,儿童故事的呈现形式早已超越单一文本,家长和孩子更需要“可读、可看、可听”的沉浸式体验。基于这一需求,我们的AI儿童故事平台核心目标是:用户输入简单关键词(如“宇航员、小狗、月球”),平台自动生成完整儿童故事,并配套生成贴合意境的插图与专业朗读音频,最终以“故事卡”形式呈现。
围绕这一核心目标,拆解出三大核心需求:
-
文本生成:基于关键词创作符合6-12岁儿童认知的故事,需具备完整性、趣味性与教育意义;
-
多媒体联动:故事生成后自动触发插图、音频生成,三者精准关联;
-
可扩展性:支持后续用户管理、故事收藏、资源导出等功能拓展,避免后期重构。
二、数据模型设计:兼顾当下需求与未来拓展
数据模型是平台的骨架,设计时需避免“只顾当前、不顾长远”的短视思维。我们采用“基础字段+预留扩展”的设计思路,以MySQL为数据库,核心表为storys,同时预留多表关联空间。
1. 核心表结构设计(storys表)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | INT | 主键,自增,确保故事唯一性 |
| title | VARCHAR(255) | 故事标题,由AI生成或默认命名 |
| summary | VARCHAR(500) | 故事梗概(100字以内),方便用户快速了解故事核心 |
| content | TEXT | 故事正文,存储完整AI生成内容 |
| keywords | VARCHAR(100) | 用户输入的关键词(逗号分隔),用于关联插图、音频生成及标签复用 |
| created_time | DATETIME | 故事创建时间,默认自动填充当前时间 |
| img | VARCHAR(255) | 预留字段,存储插图本地文件路径(实验二拓展) |
| img_url | VARCHAR(255) | 预留字段,存储插图访问URL(实验二拓展) |
| img_prompt | VARCHAR(500) | 预留字段,存储插图生成提示词(实验二拓展) |
| audio_url | VARCHAR(255) | 预留字段,存储音频访问URL(实验三拓展) |
| user_id | INT | 预留字段,关联用户表,实现故事专属化(大作业拓展) |
2. 设计思路解析
-
主键选择:以
id为自增主键,确保每篇故事唯一标识,便于后续关联查询; -
核心字段优先:
title、summary、content、keywords、created_time满足实验一的故事生成与存储需求; -
预留扩展字段:
img、img_url等字段提前规划,避免实验二、三拓展时修改表结构,减少重构成本; -
多表关联预留:
user_id字段为后续用户管理模块铺路,未来新增users表(存储用户账号、昵称、邮箱)后,可直接通过user_id实现“用户-故事”一对一关联,确保用户只能查看自己的故事。3. 数据库配置优化
为保证开发环境一致性与部署灵活性,数据库配置通过
config.py文件管理,采用环境变量优先级高于硬编码的方式:# config.py 核心配置 import os from dotenv import load_dotenv load_dotenv() # 加载.env文件中的环境变量 # MySQL数据库配置 MYSQL_HOST = os.getenv("MYSQL_HOST", "localhost") MYSQL_PORT = os.getenv("MYSQL_PORT", "3306") MYSQL_USER = os.getenv("MYSQL_USER", "root") MYSQL_PASSWORD = os.getenv("MYSQL_PASSWORD", "~~~~~~") MYSQL_DATABASE = os.getenv("MYSQL_DATABASE", "storygenerator") # 数据库连接URL DATABASE_URL = os.getenv("DATABASE_URL") if not DATABASE_URL: DATABASE_URL = f"mysql+pymysql://{MYSQL_USER}:{MYSQL_PASSWORD}@{MYSQL_HOST}:{MYSQL_PORT}/{MYSQL_DATABASE}"这种配置方式既方便本地开发(无需修改代码,仅需配置.env文件),也便于后续部署时快速适配服务器环境。
三、大模型选型:轻量化、高适配、低学习成本
平台核心依赖三大类大模型:文本生成(故事创作)、文生图(插图生成)、语音合成(音频朗读)。选型时遵循“场景适配优先、易用性为辅”的原则,拒绝盲目追求“大而全”,选择最贴合儿童故事场景的模型。
1. 文本生成模型:Kimi( moonshot-v1-8k)
选型对比
模型 优势 劣势 Kimi API文档简洁、调用流程简单、支持JSON格式输出、响应速度快 生态不如文心一言完善 百度文心一言 生态完善、功能丰富 接口配置复杂、冗余功能多、学习成本高 最终决策:Kimi
选择Kimi的核心原因的三点:
-
场景适配:支持指定输出格式(强制JSON),可直接返回
title、summary、content结构化数据,无需复杂解析; -
易用性强:API调用仅需
api_key与简单参数配置,30行左右代码即可完成核心调用; -
成本可控:
moonshot-v1-8k模型支持8192 tokens上下文,完全覆盖儿童故事500-800字的篇幅需求,且免费额度足够开发测试。关键配置:提示词设计
儿童故事的生成质量,核心在于提示词的精准度。我们设计的提示词既明确约束条件,又保留AI想象力:
prompt = f""" 请根据以下关键词创作一个适合6-12岁儿童的精彩故事: 关键词:{keywords} 要求:
-
故事要生动有趣,富有想象力
-
语言简单易懂,适合儿童阅读
-
包含完整的起承转合
-
故事长度在500-800字之间
-
要有积极向上的主题和教育意义
请严格按照以下JSON格式返回数据:
{{
"title": "故事标题",
"summary": "故事梗概(100字以内)",
"content": "完整故事内容"
}}
请确保只返回JSON格式的数据,不要包含其他任何文本。
"""
### 2. 文生图模型:阿里云百炼(qwen-image-plus)
#### 选型理由
- 风格适配:`qwen-image-plus`模型在儿童插画生成上表现突出,色彩鲜艳、画面生动,契合6-12岁儿童审美;
- 配置简单:仅需`access_key`即可调用,无需复杂环境部署;
- 灵活可控:支持自定义图片尺寸(如1024x1024),生成速度快(平均3-5秒),满足实时性需求。
### 3. 语音合成模型:百度TTS
#### 选型理由
- 多模式适配:支持短文本、长文本、流式合成三种模式,可应对不同篇幅的故事朗读;
- 音色丰富:提供“度小美”“度小宇”等适合儿童的音色,支持语速、音量、音调调整;
- 文档详尽:API调用示例清晰,错误码说明完善,问题排查成本低。
## 四、开发环境搭建与基础配置
### 1. 技术栈选型
- 后端:Python 3.10+、Flask(轻量级Web框架,便于快速开发);
- 数据库:MySQL 8.0;
- 依赖管理:pip + requirements.txt(统一依赖版本,避免环境冲突);
- 工具:PyCharm(IDE)、Postman(API测试)、Navicat(数据库管理)。
### 2. 核心依赖安装
```txt
# requirements.txt
flask==2.3.3
requests==2.31.0
pymysql==1.1.0
python-dotenv==1.0.0
Pillow==10.1.0 # 后续图片处理用
dashscope==1.14.0 # 阿里云百炼API依赖
3. API密钥配置
所有第三方API密钥均通过.env文件管理,不硬编码到代码中,保障安全性:
# .env文件
KIMI_API_KEY=your_kimi_api_key
ALIYUN_ACCESS_KEY=your_aliyun_access_key
BAIDU_API_KEY=your_baidu_api_key
BAIDU_SECRET_KEY=your_baidu_secret_key
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=~~~~~~
MYSQL_DATABASE=storygenerator
五、总结:基础搭建的核心原则
从数据模型设计到大模型选型,再到开发环境配置,整个基础搭建阶段始终围绕“稳、准、灵”三大原则:
-
稳:数据模型设计扎实,避免后期重构;依赖版本统一,减少环境冲突;
-
准:大模型选型精准匹配儿童故事场景,不盲目追求“大而全”;
-
灵:配置灵活,支持本地开发与后续部署快速切换;预留扩展字段,适配功能迭代。
做好这些基础工作后,后续的故事生成、插图联动、音频合成等功能开发就能顺理成章地推进。

浙公网安备 33010602011771号