AI 教育/学习助手开发(一):从场景分析到快速原型
引言
教育,是 AI 最被看好的落地场景之一。
想象一下:一个学生深夜做题卡壳,AI 秒回解题思路;一个英语学习者想练口语,AI 随时陪练不嫌烦;一个老师批改百份作文头大,AI 10 秒搞定初评。
这些不再是科幻。2026 年,大模型能力、语音技术、多模态识别的成熟度已经足够支撑真正的「AI 教育助手」落地。这个专题,我们就从零开始,手把手教你打造一套 AI 学习助手的核心功能。
第1期先做三件事:看清全景、定好架构、跑通一个可交互的 Demo。
一、AI 教育应用全景
先站在高处看一眼整个 AI+教育的地图,理解我们在做什么。
1.1 核心场景矩阵
| 场景 | 用户 | AI 能力 | 代表产品 |
|---|---|---|---|
| 智能答疑 | 学生 | 知识问答 + 推理 | 可汗学院 Khanmigo、学而思 AI |
| 口语陪练 | 语言学习者 | 语音识别 + 语音合成 | Duolingo Max、有道 AI 口语 |
| 错题分析 | 学生 | OCR 识别 + 诊断推理 | 作业帮批改、科大讯飞 |
| 学习路径规划 | 自学者 | 知识图谱 + 自适应 | Coursera AI、多邻国路径 |
| AI 出题 | 教师 | 知识点提取 + 难度控制 | Quizlet Q-Chat |
| 学习分析 | 管理者 | 数据挖掘 + 可视化 | 腾讯智学、阿里云教育 |
1.2 AI 教育的三波浪潮
第一波:在线教育(2020 前): : 录播课 + 题库,人找知识 第二波:AI 辅助(2020-2024): : 个性化推荐 + 简单答疑,规则驱动 第三波:AI 原生(2025+): : 对话式教学 + 自适应路径 + 多模态交互,模型驱动
我们正处于第三波早期。大模型的「通用推理能力」让教育助手从「预设回答」升级为「理解-推理-生成」的完整闭环。
二、技术栈选型
技术选型是工程中最关键也最容易纠结的一步。我的建议是:选你熟悉的,不要选最新的。
2.1 AI 模型
| 模型 | 优势 | 适用场景 | 成本 |
|---|---|---|---|
| DeepSeek / GLM | 中文好、推理强、性价比高 | 智能答疑、错题分析 | 低 |
| Qwen-VL | 多模态理解强 | OCR 识别、图文批改 | 低 |
| GPT-4o | 综合最强、生态完善 | 复杂推理、多语言 | 高 |
| CosyVoice / GPT-SoVITS | 语音合成自然 | 口语陪练、朗读 | 中 |
本期选择:使用 DeepSeek/GLM 兼容接口,通过 OpenAI 兼容 SDK 统一调用。
2.2 检索与存储
教育场景大量涉及「根据知识库查答案」,所以向量检索是标配。
| 组件 | 推荐 | 说明 |
|---|---|---|
| 向量数据库 | Chroma | 轻量、零配置,适合教学 Demo |
| 文本切片 | LangChain RecursiveCharacterTextSplitter | 按段落 + 递归切分 |
| 知识图谱 | NetworkX | 轻量图分析,适合学习路径 |
| 会话存储 | SQLite / Redis | 看并发量 |
2.3 其他能力
| 能力 | 技术选型 | 工具/库 |
|---|---|---|
| 语音识别(ASR) | Whisper / 讯飞 API | openai-whisper / dashscope |
| 语音合成(TTS) | CosyVoice / Edge TTS | cosyvoice-sdk / edge-tts |
| OCR 识别 | Qwen-VL / PaddleOCR | API 调用 / paddleocr |
| 前端快速原型 | Streamlit | 纯 Python,零前端开发 |
| 生产级后端 | FastAPI | 高性能异步框架 |
三、系统架构设计
我们采用分层架构,每层职责清晰,便于后续功能迭代。
┌─────────────────────────────────────────────┐
│ 用户交互层 │
│ Web UI (Streamlit) │ API (FastAPI) │ 语音 │
└──────────────────┬──────────────────────────┘
│
┌──────────────────▼──────────────────────────┐
│ 能力编排层 │
│ Agent 调度 │ Prompt 模板 │ 会话管理 │ 权限 │
└───────┬────────────┬───────────┬────────────┘
│ │ │
┌───────▼──┐ ┌──────▼───┐ ┌────▼────────┐
│ AI 推理层 │ │ 检索层 │ │ 多模态层 │
│ DeepSeek │ │ Chroma │ │ Qwen-VL │
│ GLM │ │ Neo4j │ │ Whisper │
└──────────┘ └──────────┘ │ CosyVoice │
└─────────────┘各层职责:
- 用户交互层:接收输入(文本/语音/图片),渲染输出
- 能力编排层:理解用户意图,调用合适的 AI/检索/多模态能力组合
- AI 推理层:大模型核心推理
- 检索层:知识库检索、图谱查询
- 多模态层:语音识别合成、OCR、图像理解
这种架构的好处是每层可独立替换。今天用 Chroma,明天切 Pinecone,接口不变。今天用 Streamlit 做 Demo,明天接 FastAPI + Vue,业务逻辑不重写。
四、功能模块拆解
专题规划了 8 期,每期对应一个核心模块:
| 期数 | 模块 | 核心能力 |
|---|---|---|
| 1 | 概览与架构 | 场景分析、技术选型、架构设计、快速原型 |
| 2 | 智能答疑系统 | 文档问答、教材知识库、多领域切换 |
| 3 | 个性化学习路径 | 用户画像、知识图谱、自适应推荐 |
| 4 | 错题本与智能批改 | OCR 识别、错因分析、同类练习生成 |
| 5 | 口语陪练与发音评测 | TTS、ASR、发音评分 |
| 6 | 考试出题与模拟 | 知识点提取、自动组卷、难度控制 |
| 7 | 进度追踪与数据分析 | 学习仪表盘、薄弱点诊断、可视化 |
| 8 | 综合项目 | 全功能 AI 学习助手 Demo |
五、快速原型:30 分钟跑通 Demo
理论结束,上代码。我们用 Streamlit + OpenAI 兼容 API 快速搭建三个核心功能的 Demo。
5.1 环境准备
# 安装依赖
pip install streamlit openai python-dotenv
# 创建 .env 文件
echo "OPENAI_API_KEY=你的API密钥" >> .env
echo "OPENAI_BASE_URL=https://api.deepseek.com" >> .env
echo "MODEL_NAME=deepseek-chat" >> .env5.2 核心代码
整个 Demo 的核心架构只有三个函数,对应三个功能模块。
功能一:智能答疑
def smart_qa():
st.header("智能答疑系统")
kb = st.selectbox("选择知识领域",
["小学数学", "初中英语", "高中物理", "大学计算机", "通用知识"])
if "qa_msgs" not in st.session_state:
st.session_state.qa_msgs = []
for m in st.session_state.qa_msgs:
with st.chat_message(m["role"]):
st.markdown(m["content"])
if prompt := st.chat_input("输入你的问题..."):
st.session_state.qa_msgs.append({"role": "user", "content": prompt})
ctx = [
{"role": "system", "content": f"你是专业的{kb}教师"},
*st.session_state.qa_msgs[-6:]
]
r = client.chat.completions.create(
model=os.getenv("MODEL_NAME"),
messages=ctx, temperature=0.7
)
ans = r.choices[0].message.content
st.session_state.qa_msgs.append({"role": "assistant", "content": ans})核心思想:通过 system prompt 切换知识领域,用会话记忆维持多轮对话。
功能二:个性化学习路径
def learning_path():
st.header("个性化学习路径")
subject = st.selectbox("学科", ["数学", "英语", "物理", "编程"])
level = st.select_slider("当前水平",
["零基础", "入门", "初级", "中级", "中高级", "高级"])
goal = st.selectbox("学习目标",
["考试高分", "竞赛准备", "兴趣拓展", "职业提升"])
weeks = st.slider("学习周期(周)", 1, 16, 8)
if st.button("生成学习路径", type="primary"):
prompt = f"""为{level}水平的学生设计{subject}学科的{weeks}周学习路径。
目标:{goal}。按周列出每周主题和知识点。"""
r = client.chat.completions.create(
model=os.getenv("MODEL_NAME"),
messages=[{"role": "user", "content": prompt}],
max_tokens=2048
)
st.markdown(r.choices[0].message.content)功能三:AI 错题分析
def error_analysis():
st.header("AI 错题本")
text = st.text_area("粘贴做错的题目", height=150)
if st.button("智能分析", type="primary") and text:
prompt = f"""分析以下错题:\n{text}\n\n要求:
1. 错因诊断(概念/计算/思路)
2. 完整正确解法
3. 知识盲区分析
4. 出 2-3 道同类练习题(附答案)"""
r = client.chat.completions.create(
model=os.getenv("MODEL_NAME"),
messages=[{"role": "user", "content": prompt}],
temperature=0.5, max_tokens=2048
)
st.markdown(r.choices[0].message.content)完整代码在 Gitee 仓库 ai-education-tutorial/episode-01-overview/scripts/ 下。
5.3 运行效果
streamlit run edu_assistant_demo.py浏览器打开 http://localhost:8501,你会看到:
- 侧边栏导航:切换三个功能模块
- 智能答疑:选择领域后多轮对话,上下文保持最近 6 轮
- 学习路径:输入学生画像,AI 生成按周定制的学习计划
- 错题分析:粘贴题目,得到错因诊断 + 解法 + 同类练习
六、总结与预告
本期回顾
| 内容 | 要点 |
|---|---|
| 场景分析 | 6 大核心场景 + 三波技术浪潮 |
| 技术选型 | 模型/检索/语音/前端,给出推荐组合 |
| 架构设计 | 五层架构:交互 → 编排 → AI → 检索 → 多模态 |
| 功能拆解 | 8 期规划,每期一个核心模块 |
| 快速原型 | Streamlit 三大功能 Demo |
下期预告
第2期:AI 智能答疑系统
我们将深入打造一个带知识库的智能答疑系统,支持: - PDF/Word 教材上传与解析 - 向量检索 + LLM 的 RAG 问答 - 多知识领域切换 - 上下文感知的多轮对话
敬请期待!
本文代码已开源:https://gitee.com/genesisesNoun/ai-education-tutorial
关注 CV技术笔记,持续学习 AI 技术全栈实战 👇
夜雨聆风