【Hello AI 科技致善】用 SOLO 打造乡村教师专属的 AI 备课助手
正文内容
①摘要:
面向乡村教师群体,在备课场景下提供智能化教学方案生成能力,目前通过实际生成完整教学方案验证有效,帮助老师从 2-3 小时备课时间缩短至 10 分钟。
②真实场景与需求:
目标人群:
-
乡村中小学教师
-
复式班教学老师
-
跨学科教学老师
-
新手教师
痛点描述:
-
在备课环节需要同时准备多个学科、多个年级的教学方案
-
缺乏专业教研团队支持,难以设计高质量的教学活动
-
面对特殊学情(基础薄弱、设备有限、学生人数多)时缺少针对性策略
-
每晚备课到深夜,时间成本高,影响教学质量和个人生活
现有做法:
-
网上搜索教案模板 → 质量参差不齐,难以适配本地学情
-
参考教辅资料 → 更新慢,缺乏互动设计
-
向老教师请教 → 资源有限,难以持续
-
自己从头设计 → 耗时耗力,新手老师无从下手
③作品介绍:
作品形式: Electron 桌面应用(跨平台:Windows/macOS/Linux)
核心功能:
-
智能备课 - 输入年级、学科、课题,一键生成完整教学方案
-
重难点拆解 - 自动分析核心知识点,提供生活化解释和教学建议
-
课堂话术 - 生成情境导入、新知讲解、课堂互动等完整话术
-
练习题库 - 自动生成基础题、拓展题、挑战题三层级练习
-
历史记录 - 本地保存所有备课记录,支持随时调用和修改
-
离线使用 - 数据本地存储,保护隐私,无需担心网络问题
④用 SOLO 实现的过程:
任务拆解:
我将备课助手拆分为 5 个核心模块,逐个击破:
-
用户界面层 - 输入表单、导航栏、内容展示区
-
数据结构层 - 定义教学方案、重难点、话术、练习题的 TypeScript 类型
-
AI 服务层 - 封装 SOLO 的 API 调用,生成各类教学内容
-
状态管理层 - 使用 Pinia 管理全局状态
-
数据存储层 - 本地数据库存储历史记录
使用 SOLO 的能力:
① 多轮对话生成 - 通过精心设计的 Prompt,让 SOLO 输出结构化 JSON 数据
示例 Prompt(教学方案生成):
你是一位经验丰富的教学设计专家。请根据以下信息生成一份完整的教学方案:
学段年级:{gradeLevel}
学科:{subject}
课题:{topic}
教学环境:{teachingEnvironment}
学生基础:{studentFoundation}
请以 JSON 格式返回,包含以下字段:
- objectives: 教学目标(3-4 条,体现核心素养)
- keyPoints: 教学重点
- difficultPoints: 教学难点
- preparations: 教学准备
- methods: 教学方法
- classroomFlow: 课堂流程(包含 5-6 个环节,每环节含:stage 环节名称、duration 时长、teacherActivity 教师活动、studentActivity 学生活动、intention 设计意图)
- blackboardDesign: 板书设计(简洁清晰,突出重点)
② 结构化输出 - 要求 SOLO 返回标准 JSON,便于前端解析展示
③ 角色设定 - 为不同任务设定不同专家角色:
-
教学设计专家 → 生成教学方案
-
学科专家 → 拆解重难点
-
资深教师 → 生成课堂话术
-
命题专家 → 生成练习题
关键实现代码:
1. 服务层封装(modelService.ts):
export async function generateTeachingPlan(
input: TeachingPlanInput,
signal?: AbortSignal
): Promise<TeachingPlan> {
const prompt = `你是一位经验丰富的教学设计专家...`
const response = await callSoloAPI(prompt, signal)
return JSON.parse(response)
}
2. 类型定义(types.ts):
export interface TeachingPlan {
objectives: string[]
keyPoints: string[]
difficultPoints: string[]
preparations: string[]
methods: string[]
classroomFlow: ClassroomFlowItem[]
blackboardDesign: string
}
3. 状态管理(teachingStore.ts):
export const useTeachingStore = defineStore('teaching', () => {
const currentPlan = ref<TeachingPlan | null>(null)
const currentInput = ref<TeachingPlanInput | null>(null)
const setCurrentPlan = (plan: TeachingPlan) => {
currentPlan.value = plan
}
return { currentPlan, currentInput, setCurrentPlan, ... }
})
踩过的坑:
① JSON 解析失败
-
问题:SOLO 返回的 JSON 包含 Markdown 格式(
json ...) -
解决:添加正则提取和错误处理
const cleanJson = response.replace(/```json\s*|\s*```/g, '').trim()
② 长内容生成不完整
-
问题:课堂话术内容较长,单次生成容易截断
-
解决:分模块生成,分别调用 4 次 API(情境导入、新知讲解、课堂互动、总结提升)
③ 数据结构不一致
-
问题:不同模块返回的字段命名不统一
-
解决:在 Prompt 中明确定义每个字段的类型和格式,添加 TypeScript 类型约束
④ 本地数据存储
-
问题:Electron 主进程与渲染进程通信复杂
-
解决:使用 Electron IPC 封装统一的本地数据 API
⑤成果展示:
应用界面:
-
简洁清新的绿色主题,符合教育场景
-
左侧输入栏 + 中间内容区 + 右侧历史记录的三栏布局
-
支持 Tab 切换查看不同模块内容
使用流程:
-
选择学段年级(小学/初中/高中)
-
选择学科(语数英/物化生/史地政等)
-
输入课题名称
-
选择教学环境和学生基础
-
点击"生成教学方案"
-
10 秒内生成完整方案,包含:
-
教学目标、重难点、准备、方法
-
详细课堂流程设计
-
完整课堂讲解话术
-
分层练习题
-
实际效果:
-
已支持 11 个学科、9 个年级段
-
生成方案质量达到新手教师中上水平
-
备课时间从 2-3 小时缩短至 10 分钟
-
本地存储,数据完全隐私
项目亮点:
完全本地化部署,生成需要联网
支持跨平台使用
一键生成,快速高效
结构化输出,便于修改调整
历史记录管理,支持复用优化
技术栈:
-
Electron + Vue 3 + TypeScript
-
Pinia 状态管理
-
Ant Design Vue UI 组件库
-
Electron 原生 API(文件系统、对话框)
适用场景:
-
乡村学校备课资源不足
-
新手教师缺乏经验
-
跨学科教学任务繁重
-
特殊学情需要针对性设计
未来规划:
-
增加更多学科模板
-
支持课件 PPT 自动生成
-
添加教学反思功能
-
建立教师社区分享优秀案例
让 AI 成为每一位老师的贴心助手,把更多时间留给学生和生活! ![]()


