From 92639a1a9d55ba60254f87bb42b9d8400a03cc3a Mon Sep 17 00:00:00 2001 From: HuangHai <10402852@qq.com> Date: Tue, 19 Aug 2025 10:58:04 +0800 Subject: [PATCH] 'commit' --- dsSchoolBuddy/Start.py | 23 +++++- dsSchoolBuddy/Test/G2_TeachingStudent.py | 69 ------------------ dsSchoolBuddy/Test/__init__.py | 0 dsSchoolBuddy/Util/__init__.py | 0 .../__pycache__/ALiYunUtil.cpython-310.pyc | Bin 1283 -> 0 bytes .../__pycache__/SearchUtil.cpython-310.pyc | Bin 3066 -> 0 bytes .../Util/__pycache__/__init__.cpython-310.pyc | Bin 135 -> 0 bytes 7 files changed, 21 insertions(+), 71 deletions(-) delete mode 100644 dsSchoolBuddy/Test/G2_TeachingStudent.py delete mode 100644 dsSchoolBuddy/Test/__init__.py delete mode 100644 dsSchoolBuddy/Util/__init__.py delete mode 100644 dsSchoolBuddy/Util/__pycache__/ALiYunUtil.cpython-310.pyc delete mode 100644 dsSchoolBuddy/Util/__pycache__/SearchUtil.cpython-310.pyc delete mode 100644 dsSchoolBuddy/Util/__pycache__/__init__.cpython-310.pyc diff --git a/dsSchoolBuddy/Start.py b/dsSchoolBuddy/Start.py index 83dcb341..a137d584 100644 --- a/dsSchoolBuddy/Start.py +++ b/dsSchoolBuddy/Start.py @@ -20,13 +20,28 @@ logger.setLevel(logging.INFO) # 初始化异步 OpenAI 客户端 client = AsyncOpenAI( api_key=Config.ALY_LLM_API_KEY, - base_url=Config.ALY_LLM_BASE_URL, + base_url=Config.ALY_LLM_BASE_URL ) # 初始化 ElasticSearch 工具 search_util = EsSearchUtil(Config.ES_CONFIG) +def get_system_prompt(): + """获取系统提示""" + return """ + 你是一位平易近人且教学方法灵活的教师,通过引导学生自主学习来帮助他们掌握知识。 + + 严格遵循以下教学规则: + 1. 首先了解学生情况:在开始讲解前,询问学生的年级水平和对询问知识的了解程度。 + 2. 基于现有知识构建:将新思想与学生已有的知识联系起来。 + 3. 引导而非灌输:使用问题、提示和小步骤,让学生自己发现答案。 + 4. 检查和强化:在讲解难点后,确认学生能够重述或应用这些概念。 + 5. 变化节奏:混合讲解、提问和互动活动,让教学像对话而非讲座。 + + 最重要的是:不要直接给出答案,而是通过合作和基于学生已有知识的引导,帮助学生自己找到答案。 + """ + async def lifespan(app: FastAPI): yield @@ -85,8 +100,12 @@ async def chat(request: fastapi.Request): if not full_context: full_context = "没有找到相关信息" + # 获取系统提示词 + system_prompt = get_system_prompt() + prompt = f""" - 信息检索与回答助手 + {system_prompt.strip()} + 用户现在的问题是: '{query}' {full_context} diff --git a/dsSchoolBuddy/Test/G2_TeachingStudent.py b/dsSchoolBuddy/Test/G2_TeachingStudent.py deleted file mode 100644 index 8470248c..00000000 --- a/dsSchoolBuddy/Test/G2_TeachingStudent.py +++ /dev/null @@ -1,69 +0,0 @@ -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() diff --git a/dsSchoolBuddy/Test/__init__.py b/dsSchoolBuddy/Test/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/dsSchoolBuddy/Util/__init__.py b/dsSchoolBuddy/Util/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/dsSchoolBuddy/Util/__pycache__/ALiYunUtil.cpython-310.pyc b/dsSchoolBuddy/Util/__pycache__/ALiYunUtil.cpython-310.pyc deleted file mode 100644 index b26f07edce13f41717347954bcdd6f2c8ef60600..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1283 zcmZuw&2Jk;6rY(LuQ%H`jf#XQ2jr_Ia8!;KLPTwZDq6RqLQz&htL@GtUU$8_of%VN zIjB;DT0}}!VTsVvqM{rawJadQ`IYnmN&ckun=!GZ{NImA2aX$UR)~K z2q=$;{-bN4lG#(#t_3HYGDUsEt8P64993uhhp?DVg{pYh|z1rDX_u? zR53^3gDN;R&m}yXJzXJb>Fl{vb7$Py^QYbS<`z;r-_~c(&iUGQoDMR-23n3B%#cGE zW@HUH1~VCDg*EI@WU-y~I~i z>!K&Q+ZJJ^AP8g<`UR=!hXIe2(3ePU?H0O`*WyqXDtWl{BN9j8=%3e5)fSnYkHsbU zofmPF`wFD@z2!yysKvwgRTIeNx?p%ssM9xO88hQ1Sv9&wv%u(a)HIvLd8img%3667qgCjB zr^E_sqD!ygyXYR7MI8xAkfJq^{RBE-jl-@FzLL;+1 z1#EEZ_HOUnQSa+vzh5iYE4Hven^M2wDd&jBT*y@rM-s3kxTm<7(C0l*4 zII7hXb07OW(e|k!l>jX2MyF<8Krsy)$36_2VxHkIXOnO$jseqxd>I%i+StMtAur75 z)8-U@6w zOg$;m1ZE)%PZfpM)hniB!aPP^kj++F%KKH#f7z&IBbHhJU+C0&E5Fg(y6{>2Ni>a* Gk$(ZA_ims7 diff --git a/dsSchoolBuddy/Util/__pycache__/SearchUtil.cpython-310.pyc b/dsSchoolBuddy/Util/__pycache__/SearchUtil.cpython-310.pyc deleted file mode 100644 index ab6219cd1431100b177818bf374db5fdbf4df1d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3066 zcma)8|8pC~72n-Eou#uR%ZcOI!3oE=B!VFF1^R=D-A+jg{1Q6#w9MQ%qbk~qd_lUC z_wLeIbDA-=6FaR<4J{1Q*o_S|G&4_kFE@O=AHZsO@ag#OEk&W8Z;3wWK!VW5cOA}V1WW4zy!LD(IqhU z0Y=vYFdlAUX!m+TA6b$3t{ZK8NPA|;33U3gaZ-&|W5W8Qe)I~WkNGkBI6o!&1g!Q$ zJO{4GD@x1yLExr=ySIIklm8L=Pc|_+JOqR%IuM@nqqJu?x7|iL^nauLK%b_WS=5f< z1e|kKrOya%3srEt3#b}*V>9S7^1H!{o@!zqt*U;4`z>OLuXg(hzFNYQ&x3T*S3|i_ zW*(i#OPHPZlO1xez{#pJ7{=rb9zfL|H$I2XVtSY!nT>M&8D85daT-Vc9*FappMvq( zm9S2eew;qHOsc(p@2g1MfP^n|AI7#(e?aMPyRwPv6^o z_w)MA&xEZ5pmHRmg(hnAmo`3Hti82R6T-EHcWNKZHkK~k{^CX^lkqf=J(|%Pf4f?r zUuyh)HiQag8@E2KeRT~0cY)Bcj8?n6c#QKxL(}WS+9vM=-cv9<3wSr)uPy&8jO=7F z=eTCx5q%_72;BtCKs7CDT*z9vlA*_)JTuE~*2&w<2;?)iT?`_w!Aedg=H?1ch7X$< z5Yj|foC(`2QoXNaT4u>BWkWh!%DMT8%I~S|ohcfcFr|%XdD}59W6Ug>#T+x;se|Pl z%axqWq-U_H?0F;a+U$^az$l$DC^fCZf%NklGhB~ZO%tOd+F|YIO=4I(tj9Z5(juvQ*)b~y-xY!LDCv~97j~Y5L+!|6m(qV!+``DW4nPPh93`|7#^q2t2TQLre8Dr9Ml}Fev>PV^WWC-_RnmlJQb+Ni>Bk| z?NWJkoP%-?`cP%BD5+mgopdtCi*`O&bVgyZCHX*~8Nalwf6Es(&{_%qcn@JiFr4NK zUW-3z=@@J{2Vr=fN8hs*J@iw=h>OCrn8Ck87)=t2;hTam{*`bFz9XcfVFAf=!D296 z$9l>&F1XotojKuQac6?q@q%F)7s_n345Y&=gG?(Zj@7#gmhV=Ee(D^yR6PD!a(n$< zXm9m5E^DHGHK?-9xy9NCiyJpTu6_OXck2rqfBIwNt84JDRk}3Se$B8PxR%MV7i5{? zctzI<;=;=&l}<8Vv5aR!?=qZh8CsN{EEsM!Z(9~*)U>TYHm$R^-YXPcJKO3hY#*pW zI}m*^h#8hwGFZ+v0?9GlK*~`XD7kXkuqbf6lD>l(MI+}J9k$au!X~1I&4>5HKq=aV zg2D78_!HXBdQecpKkk*@6AHKe;9Z10%ALU`+rwkoiaNY9jvhw6MeXz~6KrHfL`|m1 zqQ0xS(>%21UXWl$$v$sT@Z7Up=<7L7gl8Nin@%>*G|c+L+@&z}t<*+<=Ujs!N>oY4 zDoNoKj4D=fA0B{}j1^2ILI~`VyW+1){sHC$6v-X=dsy|!-zs;8_NbDIo6?woo{&|V z^N)f`$=`uwzbfs+d+>gERWg8|gt=ep$Fij0sFcJ>SVdt3Ytt#<4@iKIl{>OLMA$Rn z>Zx=@PrP7TXU#$;oWf%1<##;O`7s?<64z-riH;i(Jzlb@S2RX>A955J;!yr^>3<+- Bw-*2a diff --git a/dsSchoolBuddy/Util/__pycache__/__init__.cpython-310.pyc b/dsSchoolBuddy/Util/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index 79767003c9ac32bf4142003b854ef98e2eacfc07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 135 zcmd1j<>g`kf?)2*3=sVoL?8o3AjbiSi&=m~3PUi1CZpd