news 2026/4/18 10:35:22

常用提示词模板总结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
常用提示词模板总结

提示词模板有助于将用户输入和参数转换为语言模型的指令。 这可以用于指导模型的响应,帮助其理解上下文并生成相关且连贯的基于语言的输出。

提示词模板的输入是一个字典,其中每个键表示要填充的提示词模板中的变量。

①.from_template--变量占位符

作用:通过单个字符串模板(支持变量占位符,比如{question})来构建对话提示。
适用场景:简单的单轮提示(比如只需要给大模型发一条指令)。

prompt_template=ChatPromptTemplate.from_template( "请回答这个问题{question}" ) chain=prompt_template | llm resp=chain.invoke({"question":"什么是深度学习?"}) print(resp.content)

②.from_messages--变量占位符

作用:通过消息列表(每个消息包含role(角色,比如user/assistant/system)和content(内容))来构建对话提示。
适用场景:多轮对话、需要明确角色(比如设置system指令 + user问题)的复杂提示。

prompt_template=ChatPromptTemplate.from_messages([ ("system", '你是个百科小助手'), ("human", "请用{language}简要回答这个问题{question}") ]) chain=prompt_template | llm resp=chain.invoke({"language":"英语","question":"什么是深度学习?"}) print(resp.content)

③.消息占位符

如果我们希望用户传入一个消息列表(历史消息),并将其插入到特定位置呢? 这就是需要使用 MessagesPlaceholder。

prompt_template=ChatPromptTemplate.from_messages([ ("system", '你是个百科小助手'), MessagesPlaceholder('msg') ]) chain=prompt_template | llm #resp=chain.invoke({"msg":[HumanMessage(content="请简要回答什么是深度学习")]}) resp=chain.invoke({"msg":["human","请简要回答什么是深度学习"]}) print(resp.content)

④.少量样本提示词模板

是通过 Few-Shot(少样本)学习,给大模型提供 3 个「复杂问题→分步推理→最终答案」的示例,让模型学会 “先拆解问题→提后续子问题→查中间答案→汇总最终答案” 的推理范式,最终让模型用同样的逻辑回答 “唐朝和宋朝哪个持续时间更长” 的问题。

#步骤一:提供实例 examples=[ { 'question':'穆罕默德·阿里和艾伦·图灵谁活得更久?', 'answer':''' 是否需要后续问题:是 后续问题:穆罕默德·阿里去世时多大? 中间答案:穆罕默德·阿里去世时74岁。 后续问题:艾伦·图灵去世时多大? 中间答案:艾伦·图灵去世时74岁。 所以最终答案是:穆罕默德·阿里 ''', }, { 'question':'乔治·华盛顿的外祖父是谁?', 'answer':''' 是否需要后续问题:是 后续问题:乔治·华盛顿的母亲是谁? 中间答案:乔治·华盛顿的母亲是玛丽·鲍尔·华盛顿。 后续问题:玛丽·鲍尔·华盛顿的父亲是谁? 中间答案:玛丽·鲍尔·华盛顿的父亲是约瑟夫·鲍尔。 所以最终答案是:约瑟夫·鲍尔 ''', }, { 'question': '《大白鲨》和《007:大战皇家赌场》的导演是否来自同一个国家?', 'answer': ''' 是否需要后续问题:是 后续问题:《大白鲨》的导演是谁? 中间答案:《大白鲨》的导演是史蒂文·斯皮尔伯格。 后续问题:史蒂文·斯皮尔伯格来自哪里? 中间答案:美国。 后续问题:《007:大战皇家赌场》的导演是谁? 中间答案:《007:大战皇家赌场》的导演是马丁·坎贝尔。 后续问题:马丁·坎贝尔来自哪里? 中间答案:新西兰。 所以最终答案是:否 ''', }, ] base_template=PromptTemplate.from_template("问题:{question}\n{answer}") prompt_template=FewShotPromptTemplate( examples=examples, example_prompt=base_template, suffix='问题:{input}', # 示例后拼接“待回答的问题”(input是最终要传的参数) input_variables=['input'], # 指定最终要传入的变量名(对应后续invoke的input参数) ) chain=prompt_template | llm resp=chain.invoke({"input":"中国历史上,唐朝和宋朝哪个朝代持续时间更长?"}) print(resp.content) 运行结果: 我们需要先查询两个朝代的具体起止年份,然后计算持续时间进行比较。 **是否需要后续问题:是** **后续问题:唐朝的起止年份是什么?** **中间答案:唐朝(618年—907年),持续289年。** **后续问题:宋朝的起止年份是什么?** **中间答案:宋朝(960年—1279年),持续319年。** **所以最终答案是:宋朝**

⑤.少量对话样本提示词模板

跟第四种类似

examples=[ {"input":"2@3","output":"6"}, {"input":"2@2","output":"4"}, {"input":"3@3","output":"9"}, ] base_prompt=ChatPromptTemplate.from_messages( [ ('human','{input}'), ('ai','{output}'), ] ) few_shot_template=FewShotChatMessagePromptTemplate( examples=examples, example_prompt=base_prompt, ) final_template=ChatPromptTemplate.from_messages([ ("system","你是智能机器人AI助手!"), few_shot_template, MessagesPlaceholder("msgs") ] ) chain=final_template | llm resp=chain.invoke({"msgs":[HumanMessage(content="2@5的结果是多少")]}) print(resp.content) 输出结果: 你使用的 `@` 符号看起来像是一个自定义运算符。 根据前面的例子: - 2@3 = 6 - 2@2 = 4 - 3@3 = 9 可以推测 `a@b` 表示 **a × b**(乘法)。 所以: 2@5 = 2 × 5 = **10**
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 9:43:49

17、Puppet 配置的外部化与资源管理

Puppet 配置的外部化与资源管理 1. 外部节点分类器 外部节点分类器(ENC)是一种强大的工具,可用于动态地为节点分配类和参数。当向 ENC 传递节点名时,它会返回一个 YAML 哈希,其中包含节点的参数、类和环境信息。 例如,传递 web.example.com 作为节点名,ENC 可能返回…

作者头像 李华
网站建设 2026/4/18 8:09:22

19、Puppet资源导出、存储与控制台使用全解析

Puppet资源导出、存储与控制台使用全解析 在自动化配置管理领域,Puppet是一款功能强大的工具,它提供了资源导出、存储以及多种控制台工具,帮助用户更高效地管理系统。下面将详细介绍Puppet的资源导出、存储配置以及相关控制台的使用方法。 1. 自动化配置Apache负载均衡成员…

作者头像 李华
网站建设 2026/4/18 10:07:56

45、深入探索 Java 作业调度:从 JDK Timer 到 Quartz

深入探索 Java 作业调度:从 JDK Timer 到 Quartz 1. JDK Timer 调度基础 JDK Timer 基于简单易懂的架构,能够满足应用程序的基本调度需求。运行示例代码时,控制台会定时出现 “Hello, World” 消息。使用 MethodInvokingTimerTaskFactoryBean 可以避免创建仅用于包装业务…

作者头像 李华
网站建设 2026/4/18 8:36:20

53、Spring远程服务:从CORBA到JAX - RPC的全面指南

Spring远程服务:从CORBA到JAX - RPC的全面指南 1. CORBA服务的配置与使用 1.1 服务配置 在服务配置中,我们声明了两个bean: helloWorldService 和 serviceExporter 。 helloWorldService 是 SimpleRemoteHelloWorld 类的一个实例,由Spring管理。而 serviceExpo…

作者头像 李华
网站建设 2026/4/18 1:10:01

IF=88.5!深度解读医学顶刊《柳叶刀》研究统计学方法

源自风暴统计网:一键统计分析与绘图的AI网站今天解读一篇2025年11月20日发表在医学顶刊柳叶刀《Lancet》主刊(医学一区,IF88.5)上的一篇临床试验论文。这项临床试验研究设计很特别,采用22析因设计,且不是常…

作者头像 李华
网站建设 2026/4/18 5:43:44

css vh在H5页面适配中的实践:从零实现

CSS vh 在 H5 页面适配中的实战:从踩坑到精通 你有没有遇到过这样的场景? 一个精心设计的 H5 首屏 Banner,开发时在桌面浏览器上看着完美无瑕,结果一放到 iPhone 上预览——顶部被砍了一截,底部还留着一片刺眼的白边…

作者头像 李华