
《2026 LangChain零基础入门用AI应用框架快速搭建智能助手》第2课PromptTemplate 与动态 Prompt —— 像变量一样灵活生成专业提示词大家好我是链上杯子CSDN链上杯子。失业一年了天天想着怎么翻身。上节课用 LLMChain 跑通了第一个调用后我最兴奋的是原来 Prompt 可以像变量一样填之前每次改一句都要重写代码现在用 PromptTemplate几行就能批量生成不同风格、不同长度的专业提示词。第一次把 few-shot 示例塞进去看到模型输出瞬间变稳定感觉像给 AI 加了个“遥控器”。本课目标学会使用 PromptTemplate 创建可复用的提示词模板支持变量填充、few-shot 示例、多语言切换。学完这节课你就能轻松生成结构化、专业级的 Prompt不再手写拼接字符串。核心代码实战1. 最基础 PromptTemplate —— 变量填充fromlangchain_openaiimportChatOpenAIfromlangchain_classic.promptsimportPromptTemplatefromlangchain_classic.chainsimportLLMChain# 初始化模型替换成你的真实 KeyllmChatOpenAI(openai_api_key,# ←←← 这里替换成你的 DeepSeek API Keyopenai_api_basehttps://api.deepseek.com/v1,modeldeepseek-chat,temperature0.7)# 创建模板用 {变量名} 占位prompt_templatePromptTemplate.from_template(你是一个{role}。 请帮我{task}。 风格要求{style}。 字数控制在约{length}字。 请直接输出内容不要多余解释。)# 组装链chainLLMChain(llmllm,promptprompt_template)# 运行时填充变量resultchain.run(role专业情感写手,task写一段关于失恋后自我和解的治愈短文,style温柔细腻带点淡淡的温暖,length350)print(生成的短文)print(result)运行后模型会输出一段符合要求的短文。小知识点PromptTemplate.from_template()是最常用创建方式字符串里的{}会被替换。变量名随意起但要和chain.run()里的 key 对应。2. 支持 Few-shot 示例 —— 让输出更稳定fromlangchain_classic.promptsimportPromptTemplate,FewShotPromptTemplate# 示例数据few-shotexamples[{input:失恋,output:那场雨下得像眼泪一样多却洗不掉心里的影子。但雨停后天空总会放晴。},{input:重逢,output:多年后街角偶遇你还是老样子我却忘了怎么打招呼。}]# 示例模板example_promptPromptTemplate(input_variables[input,output],template输入{input}\n输出{output}\n)# 创建 FewShotPromptTemplatefew_shot_promptFewShotPromptTemplate(examplesexamples,example_promptexample_prompt,prefix你是一个情感短文写手。参考以下示例风格写一段治愈短文。,suffix输入{topic}\n输出,input_variables[topic],example_separator\n)# 完整 PromptTemplate加 few-shotfull_promptPromptTemplate.from_template(few_shot_prompt.format(topic{topic})\n字数约{length}字。)chainLLMChain(llmllm,promptfull_prompt)resultchain.run(topic错过的夏天,length400)print(带 few-shot 的生成结果)print(result)效果模型会模仿示例的简短、诗意风格而不是乱写。3. 互动 多语言切换模板fromlangchain_classic.promptsimportPromptTemplatefromlangchain_classic.chainsimportLLMChain# 简单互动模板template你是一个{role}。 请用{language}帮我{task}。 风格{style}。 字数约{length}字。promptPromptTemplate.from_template(template)chainLLMChain(llmllm,promptprompt)langinput(输出语言中文/英文/日文)taskinput(任务)roleinput(角色)styleinput(风格)resultchain.run(rolerole,languagelang,tasktask,stylestyle,length300)print(f\n{lang}输出)print(result)试试输入“英文”“写一段关于星空的诗”“诗人”“浪漫梦幻”。小练习2 道练习1基础修改第1段模板增加一行“请以第一人称叙述。”运行链生成一段“关于雨中散步的回忆”短文。观察是否更贴合要求。练习2进阶扩展 few-shot 示例再加 1–2 个你喜欢的风格示例比如沙雕、硬核。修改 suffix 为“输入{topic}\n输出”让用户输入 topic运行链。把生成的输出复制到任意地方看 few-shot 是否让风格更一致。本课小结本课重点学习了 PromptTemplate 的创建与使用支持变量填充、few-shot 示例、多语言切换。相比手写字符串拼接PromptTemplate 更结构化、可复用是 LangChain 所有高级功能的基础。学会这个你就能批量生成专业级提示词了。下节预告下一课Chains 与 LCEL —— 把多个 Prompt 串成流水线实现“先生成大纲 → 再写正文”等多步智能流程。欢迎在评论区贴出你的 PromptTemplate 生成结果、few-shot 效果对比或遇到的任何问题如果觉得这篇有用欢迎点赞或关注一起玩转 LangChain