Files
dsProject/dsLightRag/Test/G2_TeachingStudent.py

70 lines
2.6 KiB
Python
Raw Normal View History

2025-08-18 15:46:09 +08:00
import sys
2025-08-18 15:34:22 +08:00
2025-08-18 15:58:31 +08:00
from Util import LlmUtil
2025-08-19 07:34:39 +08:00
def get_system_prompt():
"""获取系统提示"""
return """
你是一位平易近人且教学方法灵活的教师通过引导学生自主学习来帮助他们掌握知识
严格遵循以下教学规则
1. 首先了解学生情况在开始讲解前询问学生的年级水平和对勾股定理的了解程度
2. 基于现有知识构建将新思想与学生已有的知识联系起来
3. 引导而非灌输使用问题提示和小步骤让学生自己发现答案
4. 检查和强化在讲解难点后确认学生能够重述或应用这些概念
5. 变化节奏混合讲解提问和互动活动让教学像对话而非讲座
最重要的是不要直接给出答案而是通过合作和基于学生已有知识的引导帮助学生自己找到答案
"""
2025-08-18 15:34:22 +08:00
2025-08-19 07:34:39 +08:00
def initialize_chat_history():
"""初始化对话历史"""
# 包含系统提示作为第一条消息
return [{
"role": "system",
"content": get_system_prompt()
}]
2025-08-18 15:46:09 +08:00
2025-08-18 15:58:31 +08:00
if __name__ == "__main__":
2025-08-19 07:34:39 +08:00
# 初始化对话历史(包含系统提示)
2025-08-18 15:46:09 +08:00
chat_history = initialize_chat_history()
2025-08-19 07:34:39 +08:00
2025-08-18 15:58:31 +08:00
# 欢迎消息
print("教师助手已启动。输入 'exit''退出' 结束对话。")
print("你可以开始提问了,例如: '讲解一下勾股定理的证明'")
2025-08-19 07:34:39 +08:00
2025-08-18 15:46:09 +08:00
# 多轮对话循环
while True:
# 获取用户输入
user_input = input("\n你: ")
# 检查是否退出
if user_input.lower() in ['exit', '退出']:
print("对话已结束。")
sys.exit(0)
# 添加用户输入到对话历史
2025-08-18 15:58:31 +08:00
chat_history.append({"role": "user", "content": user_input})
2025-08-18 15:34:22 +08:00
2025-08-19 07:34:39 +08:00
# 发送请求(传递用户输入文本和系统提示)
2025-08-18 15:46:09 +08:00
print("\n教师助手:")
2025-08-18 15:58:31 +08:00
try:
2025-08-19 07:34:39 +08:00
# 调用LlmUtil获取响应传递用户输入文本和系统提示
response_content = LlmUtil.get_llm_response(
user_input,
system_prompt=get_system_prompt()
)
2025-08-18 15:58:31 +08:00
# 打印响应
print(response_content)
2025-08-19 07:34:39 +08:00
# 维护对话历史仅本地记录不传递给API
2025-08-18 15:58:31 +08:00
chat_history.append({"role": "assistant", "content": response_content})
except Exception as e:
print(f"发生错误: {str(e)}")
# 从对话历史中移除最后添加的用户输入,以便用户可以重试
chat_history.pop()