深入解析:5. Prompt 提示词
2025-10-01 15:59 tlnshuju 阅读(0) 评论(0) 收藏 举报5. Prompt 提示词
文章目录
- 5. Prompt 提示词
- 提示词
- 提示词类型:
- <font style="color:rgba(6, 8, 31, 0.88);">
- chatModel $
- chatClient
- 自定义提示词模板(了解即可)
- chatModel $
- chatClient
- 提示词模板文件
- chatModel $
- chatClient
- 提示词设置技巧 $
- 简单技巧
- 高级技术
- Microsoft 指导
- 最后:
提示词
在生成式人工智能中,创建提示对于开发人员来说是一项至关重要的任务。这些提示的质量和结构会显著影响人工智能输出的有效性。投入时间和精力设计周到的提示可以显著提升人工智能的成果。
例如,一项重要的研究表明,以“深呼吸,一步一步解决这个问题”作为提示开头,可以显著提高解决问题的效率。这凸显了精心选择的语言对生成式人工智能系统性能的影响。
提示词类型:
public enum MessageType {
USER("user"), // 用户(显示)
ASSISTANT("assistant"), // AI回复
SYSTEM("system"), // 系统 (隐式)
TOOL("tool"); // 工具
...
}
- SYSTEM 系统角色:引导AI的行为和响应方式,设置AI如何解释和回复输入的参数或规则。这类似于在发起对话之前向AI提供指令。
- USER用户角色:代表用户的输入——他们向AI提出的问题、命令或语句。这个角色至关重要,因为它构成了AI响应的基础。
- ASSISTANT助手角色:AI 对用户输入的响应。它不仅仅是一个答案或反应,对于维持对话的流畅性至关重要。通过追踪 AI 之前的响应(其“助手角色”消息),系统可以确保交互的连贯性以及与上下文的相关性。助手消息也可能包含功能工具调用请求信息。它就像 AI 中的一项特殊功能,在需要执行特定功能(例如计算、获取数据或其他不仅仅是对话的任务)时使用。
- TOOL工具/功能角色:工具/功能角色专注于响应工具调用助手消息返回附加信息。
提示词模板:
有时候, 提示词里面的内容不能写死, 需要根据对话动态传入
chatModel $
可以使用SystemPromptTemplate
String userText = """
请告诉我三位著名的海盗,他们的黄金时代和他们的动机。
每位海盗至少写一句话。
""";
Message userMessage = new UserMessage(userText);
String systemText = """
你是一个友好的 AI 助手,帮助人们寻找信息。
你的名字是 {name}。
你应该用你的名字回复用户的请求,并以一种 {voice} 的风格进行回复。
""";
SystemPromptTemplate systemPromptTemplate = new SystemPromptTemplate(systemText);
Message systemMessage = systemPromptTemplate.createMessage(Map.of("name", name, "voice", voice));
Prompt prompt = new Prompt(List.of(userMessage, systemMessage));
List<Generation> response = chatModel.call(prompt).getResults();
chatClient
String answer = ChatClient.create(chatModel).prompt()
.user(u -> u
.text("告诉我5部{composer}的电影.")
.param("composer", "周星驰"))
.call()
.content();
自定义提示词模板(了解即可)
chatModel $
PromptTemplate promptTemplate = PromptTemplate.builder()
.renderer(StTemplateRenderer.builder().startDelimiterToken('<').endDelimiterToken('>').build()).template("""告诉我5部<composer>的电影.""").build();String prompt = promptTemplate.render(Map.of("composer", "John Williams"));
chatClient
String answer = ChatClient.create(chatModel).prompt()
.user(u -> u
.text("告诉我5部<composer>的电影").param("composer", "John Williams")).templateRenderer(StTemplateRenderer.builder().startDelimiterToken('<').endDelimiterToken('>').build()).call().content();
提示词模板文件
chatModel $
@Value("classpath:/prompts/system-message.st")
private Resource systemResource;
SystemPromptTemplate systemPromptTemplate = new SystemPromptTemplate(systemResource);
chatClient
/prompts/system-message.st
告诉我5部{composer}的电影
@Test
public void testPrompt(@Autowired DeepSeekChatModel chatModel,
// 加载该资源文件
@Value("classpath:/prompts/system-message.st")
Resource systemResource) {
ChatClient chatClient = ChatClient.builder(chatModel)
.defaultSystem(systemResource)
.build();
String content = chatClient.prompt()
.system(p -> p.param("composer","周星驰"))
.call()
.content();
System.out.println(content);
}
提示词设置技巧 $
简单技巧
- 文本摘要:
将大量文本缩减为简洁的摘要,捕捉关键点和主要思想,同时省略不太重要的细节。 - 问答:
专注于根据用户提出的问题,从提供的文本中获取具体答案。它旨在精准定位并提取相关信息以响应查询。 - 文本分类:
系统地将文本分类到预定义的类别或组中,分析文本并根据其内容将其分配到最合适的类别。 - 对话:
创建交互式对话,让人工智能可以与用户进行来回交流,模拟自然的对话流程。 - 代码生成:
根据特定的用户要求或描述生成功能代码片段,将自然语言指令转换为可执行代码。
高级技术
- 零样本、少样本学习:
使模型能够利用特定问题类型的极少或没有先前的示例做出准确的预测或响应,并使用学习到的概括来理解和执行新任务。 - 思路链:
将多个AI响应连接起来,创建连贯且符合语境的对话。它帮助AI保持讨论的线索,确保相关性和连续性。 - ReAct(推理 + 行动):
在这种方法中,人工智能首先分析输入(推理),然后确定最合适的行动或响应方案。它将理解与决策结合在一起。
Microsoft 指导
- 指令明确
- 避免情绪化内容
- “求求你好好说啊!”“你这样我不会啊”
- 不要让大模型去猜去臆想你的想法, 描述足够清楚
- 补充必要背景信息:身份、场景、用途、已有内容等,避免 AI “脑补” 出错。
- 避免“或许、可能、你懂的”等模糊修饰语
- 把大模型当一个小学生,你描述的任务越清楚他执行越具体
❌ 模糊:写一篇文章
✅ 清晰:写一篇 800 字的高考作文,主题 “坚持与创新”,结构分引言、三个论点(每个配历史案例)、结论,语言风格正式书面
- 避免情绪化内容
- 格式清晰(结构化)
可以通关markdown格式,确定一级标题、二级标题、列表 这样更利于模型理解。后续维也更加清晰
公式:「角色设定」+「具体任务(技能)」+「限制条件(约束)」+「示例参考」
# 角色
你是一位热情、专业的导游,熟悉各种旅游目的地的风土人情和景点信息。你的任务是根据用户的需求,为他们规划一条合理且有趣的旅游路线。
## 技能
### 技能1:理解客户需求
- 询问并了解用户的旅行偏好,包括但不限于目的地、预算、出行日期、活动偏好等信息。
- 根据用户的需求,提供个性化的旅游建议。
### 技能2:规划旅游路线
- 结合用户的旅行偏好,设计一条详细的旅游路线,包括行程安排、交通方式、住宿建议、餐饮推荐等。
- 提供每个景点的详细介绍,包括历史背景、特色活动、最佳游览时间等。
### 技能3:提供实用旅行建议
- 给出旅行中的实用建议,如必备物品清单、当地风俗习惯、安全提示等。
- 回答用户关于旅行的各种问题,例如签证、保险、货币兑换等。
- 如果有不确定的地方,可以调用搜索工具来获取相关信息。
## 限制
- 只讨论与旅行相关的话题。
- 确保所有推荐都基于客户的旅行需求。
- 不得提供任何引导客户参与非法活动的建议。
- 所提供的价格均为预估,可能会受到季节等因素的影响。
- 不提供预订服务,只提供旅行建议和信息。
# 知识库
请记住以下材料,他们可能对回答问题有帮助。
最后:
“在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。感谢你们,我们总会在某个时刻再次相遇。”
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/923997.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!相关文章
基于Python+Vue开发的婚恋交友管理系统源码+运行步骤
项目简介该项目是基于Python+Vue开发的婚恋交友管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于…
南通医院网站建设方案网站 mysql数据库 字符
一直以来玩各种开发板,焊接水平太差始终是阻碍我买性价比高的板子的最大原因。淘宝上好多芯片搭载上肥猪流板子是不包排针焊接的。终于下定决心要克服这个困难。不过,只是会焊接排针在高手面前最好不要说自己会焊锡,这应该是两码事。
首先上…
详细介绍:Python 编辑器:PyCharm
详细介绍:Python 编辑器:PyCharm2025-10-01 15:45
tlnshuju
阅读(0)
评论(0) 收藏
举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !impo…
2025 年搅拌机设备厂家 TOP 企业品牌推荐排行榜,盘点磁混凝系统 / 发酵罐 / 刮泥机 / 推进式 / 脱硫侧搅拌机公司推荐!
在当前工业生产领域,搅拌机作为关键设备,广泛应用于石化、化工、新能源、环保等多个行业,其性能与质量直接影响生产效率和产品品质。然而,随着市场需求的不断增长,搅拌机生产厂家数量持续增加,行业内产品质量参差…
福州市 2025 国庆集训 Day1 前三题题解
福州市 2025 国庆集训 Day1 前三题题解
别问为啥只有前三题,因为后面我不会……
Day1 题单
T1 旅行
传送门
注意到 \(P\) 非常小,所以可以考虑指数级别的做法。
考虑状压 dp。设 \(f_{s,u}\) 表示经过 \(P\) 内的点集…
Python常用数据类型详解:字符串、列表、字典全解析
在 Python 学习过程中,理解数据类型是基础也是关键。Python 的核心数据类型能够帮助开发者高效处理不同类型的数据,本篇文章将系统介绍三种最常用的数据类型:字符串(String)、列表(List)、字典(Dict),并结合…
【自学笔记】Redis 飞快入门
【自学笔记】Redis 飞快入门pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco",…
做网站工作室名字安徽二建标准
参考链接: Python中的私有变量
我们这里就直奔主题,不做基础铺垫,默认你有一些Python类的基础,大家在看这篇博客的时候,如果基础知识忘了,可以去菜鸟教程
从一个简单的类开始
class A(): #定义一…
强连通,Tarjan,缩点
在本文中,我们用 \(f(x,y)=1\) 来表示 \(x\) 可以到达点 \(y\),用 \(g(x,y)=1\) 表示 \(f(x,y)=1\) 且 \(f(y,x)=1\)。
I、强连通
对于图 \(U\) 上的任意两点 \(x\) 和 \(y\),如果有 \(g(x,y)=1\),那么称 \(x,y\) …
实用指南:K8s日志架构:Sidecar容器实践指南
pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …
做网站时量宽度的尺子工具thinkphp做的网站源码
目录结构 全局文件
1.app.json 文件
用来对微信小程序进行全局配置,决定页面文件的路径、窗口表现、设置网络超时时间、设置多 tab 等。文件内容为一个 JSON 对象。 1.1 page用于指定小程序由哪些页面组成,每一项都对应一个页面的 路径(含文…
企业网站建设综合实训心得wordpress安装系统
http://home.cnblogs.com/blog/转载于:https://www.cnblogs.com/yanyanhappy/archive/2012/09/07/2675050.html
彩票网站自己可以做吗wordpress加密页面访问
文章目录 一、 Zookeeper常用命令1. zk服务命令2. zk客户端命令 二、HBASE常见运维命令1. 集群启动关闭2. 扩容增加regionserver3. 下线regionserver ing 一、 Zookeeper常用命令
例如:ZOOKEEPER_HOME:/opt/zk/zookeeper
1. zk服务命令
1. 启动ZK服务…
Python方案--交互式VR教育应用开发
Python方案--交互式VR教育应用开发pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&…
纯Qt代码实现onvif协议设备端/onvif设备模拟器/onvif虚拟监控设备/桌面转onvif
一、前言说明
在视频监控系统的开发中,ONVIF(Open Network Video Interface Forum)作为行业标准协议,被广泛应用于设备与平台之间的互联互通。通常我们认为,ONVIF 协议的设备端实现应运行在摄像头等嵌入式下位机上…
高中教做网站的软件表格制作教程 步骤
可能是明月好久没有使用境外服务器挂载境外的云盘缘故吧,今天一个代维客户需要他的Linux服务器挂载谷歌云盘好进行云备份,本来是个很简单的事儿,没想到在rclone连接谷歌云盘的时候卡壳了,可是把明月给难为坏了,搜索到的简体中文教程倒是很多,但没有一个提到这个“坑”,最…
*补*““逆元求组合数”(费马小定理
组合数快速求法
#include <bits/stdc++.h>
#define ll long long
#define MAXN 1010
using namespace std;
namespace SHuxinn{ll pri[MAXN];ll ni[MAXN];ll ans1 , ans2;ll pow(ll a , ll b){ll ans = 1 , base…
C# WPF中Binding的 Source属性和ElementName属性有什么区别
好的,这是一个WPF数据绑定中非常核心和常见的问题。Source 和 ElementName 都是用来设置绑定源(即数据的来源)的属性,但它们的应用场景和灵活性有显著区别。
下面通过一个对比表格和详细解释来说明它们的区别。
核…
Typora to Obsidian 迁移助手 (Typora-to-Obsidian-Migration-Helper)
一个交互式的、基于状态机模式的 Python 脚本,旨在帮助用户安全、高效地将 Typora 笔记库迁移至 Obsidian。它将多个繁琐的手动步骤整合为一个自动化的、可控的流程。本脚本基于历史文章中模块程序组合而成,能够实现…