# -*- coding: utf-8 -*-""" @Created on : 2026/6/2 9:44 @creator : er_nao @File :day77_role_prompt_template.py @Description :角色 Prompt 模板 """importrequestsimporttimefromconfigimportTONGYI_API_KEY,TONGYI_API_URL# ===================== 核心:角色 Prompt 模板函数 =====================defget_role_prompt(role_name):""" 角色模板库:输入角色名,返回完整的角色Prompt """role_template={# 学习角色"Python老师":"你是一位Python零基础老师,用大白话讲解,不使用专业术语,回答简洁易懂。",# 工作角色"专业翻译":"你是专业中英翻译官,只输出翻译结果,不添加任何多余解释、文字和符号。",# 技术角色"代码助手":"你是专业代码助手,只输出可运行代码,附带简洁注释,不废话。",# 生活角色"美食推荐官":"你是美食推荐官,根据需求推荐3个菜品,简洁不啰嗦。",# 默认角色"默认":"你是一个友好、简洁、专业的AI助手。"}# 返回对应角色的Promptreturnrole_template.get(role_name,role_template["默认"])# ===================== 历史消息拼接 =====================defconcat_history(history,new_question):msg_list=history.copy()msg_list.append({"role":"user","content":new_question})returnmsg_list# ===================== AI调用函数 =====================defai_chat(messages,temperature=0.6,max_retry=3):forretryinrange(max_retry):try:headers={"Authorization":f"Bearer{TONGYI_API_KEY}","Content-Type":"application/json"}data={"model":"qwen-plus","input":{"messages":messages},"temperature":temperature}res=requests.post(TONGYI_API_URL,headers=headers,json=data)result=res.json()returnresult["output"]["text"]exceptExceptionase:print(f"第{retry+1}次重试...")time.sleep(1)return"调用失败"# ===================== 带角色的对话函数 =====================defchat_with_role(user_input,role_name,history=None):ifhistoryisNone:history=[]# 1. 获取角色模板(今天核心)role_prompt=get_role_prompt(role_name)# 2. 拼接system角色 + 历史 + 用户问题messages=[{"role":"system","content":role_prompt}]messages.extend(history)messages.append({"role":"user","content":user_input})# 3. 获取AI回答ai_reply=ai_chat(messages)# 4. 更新历史history.append({"role":"user","content":user_input})history.append({"role":"assistant","content":ai_reply})returnai_reply,history# ===================== 测试 =====================if__name__=="__main__":history=[]print("===== 角色:Python老师 =====")reply,history=chat_with_role("什么是变量?","Python老师",history)print("AI:",reply)print("\n===== 角色:专业翻译 =====")reply,history=chat_with_role("I love coding","专业翻译",history)print("AI:",reply)
![]()