Files
dsProject/dsLightRag/Test/G2_TeachingStudent.py
2025-08-19 07:34:39 +08:00

70 lines
2.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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