文件代码内容fromlangchain_core.promptsimportPromptTemplate,FewShotPromptTemplatefromlangchain_community.llms.tongyiimportTongyi# 示例的模板example_templatePromptTemplate.from_template(单词{word}, 反义词{antonym})# 示例的动态数据注入 要求是list内部套字典examples_data[{word:大,antonym:小},{word:上,antonym:下},]few_shot_templateFewShotPromptTemplate(example_promptexample_template,# 示例数据的模板examplesexamples_data,# 示例的数据用来注入动态数据的list内套字典prefix告知我单词的反义词我提供如下的示例,# 示例之前的提示词suffix基于前面的示例告知我{input_word}的反义词是,# 示例之后的提示词input_variables[input_word]# 声明在前缀或后缀中所需要注入的变量名)prompt_textfew_shot_template.invoke(input{input_word:左}).to_string()print(prompt_text)modelTongyi(modelqwen-max)print(model.invoke(inputprompt_text)) 代码流程梳理导入所需模块PromptTemplate用于定义单个示例的模板。FewShotPromptTemplate用于构建包含少量示例的提示模板。Tongyi通义千问模型封装LLM。定义示例模板使用PromptTemplate.from_template创建example_template格式为单词{word}, 反义词{antonym}。该模板用于将每个示例字典渲染成字符串。准备示例数据examples_data是一个列表包含两个示例字典分别提供word和antonym。构建 FewShotPromptTemplateexample_prompt指定示例渲染模板。examples传入示例数据列表。prefix在所有示例前添加的固定提示。suffix在所有示例后添加的提示包含变量{input_word}。input_variables声明需要动态注入的变量此处为input_word。生成最终提示文本调用few_shot_template.invoke({input_word: 左})将input_word替换为左得到PromptValue对象。通过.to_string()转为字符串打印输出查看最终提示内容。模型调用与输出初始化通义千问模型Tongyi(modelqwen-max)。将生成的提示字符串传入model.invoke()获得模型回复并打印。 高频面试知识点与回答思路1.FewShotPromptTemplate的作用及适用场景作用通过提供少量示例Few-shot引导模型理解任务格式和输出要求提升模型在特定任务上的表现尤其是格式严格、风格固定或需要推理的任务。适用场景分类、命名实体识别、代码生成、格式转换等需要模仿示例的任务。2.FewShotPromptTemplate与PromptTemplate的关系PromptTemplate定义单个示例的格式化方式。FewShotPromptTemplate将多个示例拼接起来并在前后添加前缀/后缀构成完整的提示。它内部会复用example_prompt来渲染每个示例。3.prefix和suffix的设计要点prefix通常用于描述任务背景或规则suffix用于提出最终问题。两者之间插入所有示例。示例数量不宜过多通常 2~5 个以免超出模型上下文窗口或引入过多噪声。4.input_variables的作用声明在suffix或prefix中出现的占位符变量名运行时需要提供对应的值。若使用invoke传入参数必须包含这些变量。5. Few-shot 与 Zero-shot 的区别Zero-shot不给示例仅靠指令。Few-shot提供少量示例模型能更好地理解预期输出格式和风格。在模型能力较弱或任务格式复杂时Few-shot 效果通常优于 Zero-shot。6. 如何动态选择示例高级用法可通过example_selector参数根据输入动态选择最相关的示例如基于相似度提高示例的针对性和提示质量。7. 该示例中to_string()的作用将PromptValue转为纯字符串便于调试或与非聊天模型如Tongyi对接该模型可能接受字符串输入。在实际开发中也可直接传递PromptValue给支持消息列表的模型。8. 通义千问Tongyi与 Chat 模型的区别Tongyi是 LLM非聊天模型接受字符串输入返回字符串。而ChatTongyi是聊天模型接受消息列表。两者接口不同需按需选择。 面试回答话术示例“该文件展示了 LangChain 中FewShotPromptTemplate的使用。它通过提供少量示例如“大→小”、“上→下”让模型学会“反义词”任务格式。FewShotPromptTemplate将示例模板、示例数据、前缀和后缀组合成一个完整提示最终注入变量如input_word生成具体问题。这种方法在任务格式特殊或模型需要模仿风格时非常有效。实际项目中我还会结合example_selector动态选择最相关的示例进一步提升提示质量。”