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()