From 7c091a12d09c9db829151832620467428ef5b0a4 Mon Sep 17 00:00:00 2001
From: HuangHai <10402852@qq.com>
Date: Thu, 4 Sep 2025 15:41:55 +0800
Subject: [PATCH] 'commit'
---
dsLightRag/TeacherHelper/T3_KeJian.py | 83 ++++++++++++
dsLightRag/TeacherHelper/T4_ZuoYe.py | 96 ++++++++++++++
.../TeacherHelper/markdown/万有引力作业.md | 16 +++
.../TeacherHelper/markdown/万有引力课件.md | 124 ++++++++++++++++++
4 files changed, 319 insertions(+)
create mode 100644 dsLightRag/TeacherHelper/T3_KeJian.py
create mode 100644 dsLightRag/TeacherHelper/T4_ZuoYe.py
create mode 100644 dsLightRag/TeacherHelper/markdown/万有引力作业.md
create mode 100644 dsLightRag/TeacherHelper/markdown/万有引力课件.md
diff --git a/dsLightRag/TeacherHelper/T3_KeJian.py b/dsLightRag/TeacherHelper/T3_KeJian.py
new file mode 100644
index 00000000..46a60a3c
--- /dev/null
+++ b/dsLightRag/TeacherHelper/T3_KeJian.py
@@ -0,0 +1,83 @@
+import asyncio
+import logging
+import os
+import sys
+
+# 导入教学辅助工具
+from TeacherHelper.Kit.TeacherHelper import (
+ LLMClient,
+ save_lesson_plan
+)
+
+# 配置日志
+logging.basicConfig(level=logging.INFO)
+logger = logging.getLogger(__name__)
+
+
+async def generate_gravitation_courseware():
+ """生成万有引力课件大纲的异步函数"""
+ system_prompt = """你是PPT视觉设计教练,遵循“6×6原则”(每页≤6行,每行≤6词),字体≥28pt,主色调#005BAC(教育蓝),强调色#FFB703(暖黄)。所有动画≤0.5s,禁止花哨。需要给出演示者备注栏(<备注>)。"""
+
+ llm_client = LLMClient(system_prompt=system_prompt)
+
+ prompt = """为“万有引力”生成可直接导入PowerPoint的Markdown大纲,共12页,含:
+1. 封面(课程名+章节+教师姓名留白)
+2. 情境导入(1个30s短视频建议+2张图片提示)
+3. 概念建构(苹果落地+月亮绕地对比图)
+4. 规律探究(卡文迪许实验GIF占位)
+5. 公式推导(F=G·m₁m₂/r²分三步行)
+6. 例题精讲(2道,step-by-step动画)
+7. 当堂检测(Padlet二维码占位)
+8. 小结(思维导图,可一键转SmartArt)
+9. 作业二维码(链接到在线表单)
+10. 结束页(“思考:如果没有万有引力?”留白)
+
+【格式要求】
+每页用三级标题###表示,下方用
列要点;如需图片,用! `https://via.placeholder.com/800x450?text=Image` 占位并给出版权提示;在要点后另起一行写<备注>演示者话术。"""
+
+ async def get_courseware():
+ async for chunk in llm_client.get_response(prompt, stream=True):
+ yield chunk
+
+ return get_courseware()
+
+
+# 测试生成课件的函数
+async def test_generate_courseware():
+ print("\n===== 测试生成万有引力课件 =====")
+
+ try:
+ # 调用教学辅助工具生成课件
+ courseware_chunks = await generate_gravitation_courseware()
+ output_file = "./markdown/万有引力课件.md"
+
+ # 调用教学辅助工具保存文件
+ print("\n生成的课件大纲:")
+ full_content, success = await save_lesson_plan(courseware_chunks, output_file, stream_print=True)
+
+ if success:
+ print(f"\n课件已保存到:{os.path.abspath(output_file)}")
+ else:
+ print("\n课件保存失败")
+
+ except Exception as e:
+ print(f"生成课件时发生异常: {str(e)}", file=sys.stderr)
+
+
+# 主函数
+async def main():
+ try:
+ # 直接生成课件,不进行交互式测试
+ await test_generate_courseware()
+
+ except KeyboardInterrupt:
+ print("\n程序被用户中断")
+ except Exception as e:
+ print(f"测试过程中发生异常: {str(e)}", file=sys.stderr)
+ finally:
+ print("\n测试程序结束")
+
+
+if __name__ == '__main__':
+ # 运行异步主函数
+ asyncio.run(main())
\ No newline at end of file
diff --git a/dsLightRag/TeacherHelper/T4_ZuoYe.py b/dsLightRag/TeacherHelper/T4_ZuoYe.py
new file mode 100644
index 00000000..c27a6806
--- /dev/null
+++ b/dsLightRag/TeacherHelper/T4_ZuoYe.py
@@ -0,0 +1,96 @@
+import asyncio
+import logging
+import os
+import sys
+
+# 导入现有工具类(不创建新类)
+from TeacherHelper.Kit.TeacherHelper import (
+ LLMClient,
+ save_lesson_plan
+)
+
+# 配置日志
+logging.basicConfig(level=logging.INFO)
+logger = logging.getLogger(__name__)
+
+
+async def generate_gravitation_homework():
+ """生成万有引力课后作业的异步函数
+
+ Returns:
+ 异步生成器: 流式返回作业内容
+ """
+ # 系统指令 - 符合布鲁姆认知分类和双减政策
+ system_prompt = "你是命题专家,熟悉布鲁姆认知分类和'双减'政策。客观题采用'四选一'单选,难度比例易:中:难=6:3:1;主观题设置2小问,第1问'解释现象'对应'理解',第2问'方案设计'对应'创新'。题量控制为20分钟完成。"
+
+ # 创建LLM客户端实例(使用现有类)
+ llm_client = LLMClient(system_prompt=system_prompt) # 修改为与T3_KeJian.py一致
+
+ # 作业生成提示词
+ prompt = """请输出'万有引力'课后作业,满分100分,含:
+A. 客观题(8题×5分=40分)
+ - 前3题考'史实&概念'识记
+ - 中间3题考'公式变形&比例'理解
+ - 后2题考'情境估算'应用
+B. 主观题(2题,30+30分)
+ - 题1:结合'天问一号'发射新闻,解释地球与火星之间的引力如何变化
+ - 题2:设计一个实验,用智能手机+免费APP估算地球质量,写出步骤与所需测量量
+C. 评分标准(主观题分点给分,每点10分)
+D. 参考答案与解析(客观题给出选项+一句话解析;主观题给出关键公式与评分关键词)
+
+【格式要求】
+### A. 客观题
+
+
+### B. 主观题
+#### 1. ……
+#### 2. ……
+
+### C. 评分标准
+……
+
+### D. 参考答案与解析
+……"""
+
+ # 流式响应生成器
+ async def get_homework():
+ async for chunk in llm_client.get_response(prompt, stream=True):
+ yield chunk
+
+ return get_homework()
+
+
+async def test_generate_homework():
+ """测试生成万有引力课后作业并保存"""
+ print("===== 开始生成万有引力课后作业 =====")
+
+ try:
+ # 修复:添加await关键字获取生成器
+ homework_generator = await generate_gravitation_homework()
+ output_path = "./markdown/万有引力作业.md"
+
+ # 修复:正确调用save_lesson_plan函数,使用位置参数而非关键字参数
+ full_content, success = await save_lesson_plan(
+ homework_generator,
+ output_path, # 修改为位置参数
+ stream_print=True
+ )
+
+ if success:
+ print(f"\n作业生成成功!文件路径: {os.path.abspath(output_path)}")
+ return full_content
+ else:
+ print("\n作业生成失败")
+ return None
+
+ except Exception as e:
+ print(f"生成过程中发生错误: {str(e)}", file=sys.stderr)
+ return None
+
+
+if __name__ == "__main__":
+ # 运行异步测试函数
+ asyncio.run(test_generate_homework())
\ No newline at end of file
diff --git a/dsLightRag/TeacherHelper/markdown/万有引力作业.md b/dsLightRag/TeacherHelper/markdown/万有引力作业.md
new file mode 100644
index 00000000..8e4479b1
--- /dev/null
+++ b/dsLightRag/TeacherHelper/markdown/万有引力作业.md
@@ -0,0 +1,16 @@
+### A. 客观题
+- 1. 下列哪位科学家提出了“万有引力定律”?
+ A. 伽利略
+ B. 牛顿
+ C. 爱因斯坦
+ D. 开普勒
+
+
+- 2. 关于万有引力,下列说法正确的是:
+ A. 只有质量极大的天体之间才有万有引力
+ B. 万有引力是作用在两个物体之间的相互作用力
+ C. 万有引力的大小与两个物体之间的距离成正比
+ D. 万有引力的大小与两个物体的质量乘积成反比
+
+
+-
+
- 课程名:高中物理必修2
+ - 章节:第6章 第2节
+ - 主题:万有引力
+ - 教师姓名:________________
+
+<备注>
+欢迎同学们进入今天的物理课堂。今天我们来探索一个既熟悉又神秘的自然力——万有引力。
+备注>
+
+---
+
+### 情境导入
+
+ - 播放30秒短视频:苹果落地与宇航员失重对比
+ - 图片1:苹果从树上落下
+ - 图片2:宇航员在太空站漂浮
+
+
+
+<备注>
+请大家观察这两个场景,思考:为什么苹果会掉下来,而宇航员却“飘”在空中?
+备注>
+
+---
+
+### 概念建构
+
+ - 苹果落地:地球吸引物体
+ - 月亮绕地:地球吸引月球
+ - 对比图:地表物体 vs 天体运动
+
+
+<备注>
+牛顿发现:地面上的重力和天体间的引力,其实是同一种力——万有引力。
+备注>
+
+---
+
+### 规律探究
+
+ - 卡文迪许实验:测量万有引力常量G
+ - GIF图:扭秤实验过程示意
+ - 意义:首次“称量”地球质量
+
+
+<备注>
+通过这个精妙的实验,科学家第一次测出了G的值,从而能计算地球的质量。
+备注>
+
+---
+
+### 公式推导
+
+ - 第一步:F ∝ m₁m₂
+ - 第二步:F ∝ 1/r²
+ - 第三步:引入G,得 F = G·m₁m₂/r²
+
+<备注>
+万有引力的大小与两物体质量成正比,与距离平方成反比,这就是万有引力定律的核心公式。
+备注>
+
+---
+
+### 例题精讲
+
+ - 例题1:计算地球对苹果的引力
+ - 例题2:计算两个质量为1kg的物体相距1m时的引力
+ - Step-by-step动画展示计算过程
+
+<备注>
+我们来一步步代入公式,看看这些力到底有多大。注意单位统一和科学记数法的使用。
+备注>
+
+---
+
+### 当堂检测
+
+ - 使用Padlet进行实时问答
+ - 扫描二维码提交答案
+ - 问题:万有引力与哪些因素有关?
+
+
+<备注>
+请同学们扫码进入Padlet页面,回答问题。我们稍后一起查看结果。
+备注>
+
+---
+
+### 小结
+
+ - 万有引力是自然界普遍存在的一种力
+ - 公式:F = G·m₁m₂/r²
+ - 适用于地表物体与天体
+
+
+<备注>
+这是我们今天学习的核心内容,大家可以通过这个思维导图进行复习和拓展。
+备注>
+
+---
+
+### 作业二维码
+
+ - 完成在线作业:万有引力基础练习
+ - 扫码进入作业提交页面
+ - 截止时间:本周五23:59
+
+
+<备注>
+课后请大家扫码完成在线作业,巩固今天所学内容。
+备注>
+
+---
+
+### 结束页
+
+ - 思考:如果没有万有引力?
+ - 留白:学生自由发挥
+
+<备注>
+最后请大家思考一个问题:如果宇宙中没有万有引力,世界会变成什么样?
+备注>
\ No newline at end of file