超实用!Prompt程序员使用指南,大模型各角色代码实战案例
提示词(Prompt)是输入给大模型(LLM)的文本指令,用于明确地告诉大模型你想要解决的问题或完成的任务,也是大语言模型理解用户需求并生成准确答案的基础。因此 prompt 使用的好坏,直接决定了大模型生成结果的质量(是否符合预期)。提示词(Prompt)是输入给大模型(LLM)的文本指令,用于明确地告诉大模型你想要解决的问题或完成的任务,也是大语言模型理解用户需求并生成准确答案的基础。因此 p
提示词(Prompt)是输入给大模型(LLM)的文本指令,用于明确地告诉大模型你想要解决的问题或完成的任务,也是大语言模型理解用户需求并生成准确答案的基础。因此 prompt 使用的好坏,直接决定了大模型生成结果的质量(是否符合预期)。
提示词(Prompt)是输入给大模型(LLM)的文本指令,用于明确地告诉大模型你想要解决的问题或完成的任务,也是大语言模型理解用户需求并生成准确答案的基础。因此 prompt 使用的好坏,直接决定了大模型生成结果的质量(是否符合预期)。

图片
Prompt 基本使用
为了让大模型生成更符合预期的结果,我们在使用 Prompt 时,可以使用以下模版。

图片
其内容组成为:
- 背景:介绍与任务紧密相关的背景信息。这一环节有助于 LLM 深入理解讨论的具体环境,从而保证其生成内容与话题高度相关。
- 目的:明确指出您期望 LLM 完成的具体任务。通过设定清晰、精确的目标指令,可引导 LLM 聚焦于实现既定任务,提升输出的有效性。
- 风格:指定您希望 LLM 输出的写作风格,可以是某个具体名人、具体流派或者某类专家的写作风格。
- 语气:定义输出内容应有的语气,比如正式、诙谐、温馨、关怀等,以便适应不同的使用场景和使用目的。
- 受众:明确指出内容面向的读者群体,无论是专业人士、入门学习者还是儿童等,这样 LLM 就能调整语言和内容深度,使之更加贴合受众需求。
- 输出:规定输出内容的具体形式,确保 LLM 提供的成果能直接满足后续应用的需求,比如列表、JSON 数据格式、专业分析报告等形式。
以下为阿里云提供的 Prompt 案例:

图片
在未使用 Prompt 模版时,LLM 输出虽表现尚可,但显得过于泛化,缺乏必要的细节和针对特定群体的吸引力。而在使用 Prompt 框架时,框架不仅提醒您考虑需求的其它方面,特别是一般 Prompt 中缺少的风格、语气和受众,还帮助 LLM 生成更针对年轻群体、细节更多、语言表达更加富有张力的输出。
Prompt 优化工具
当然,我们也可以使用一些工具来进行 Prompt 优化,例如阿里云百炼平台 Prompt 优化工具扩写等,如下图所示:

图片
Prompt 发展演化
从程序的角度来看 Prompt 的发展演化经过了以下几个阶段:
- 简单字符串:最初的 Prompt 只是简单的文本字符串。
- 占位符:引入占位符(如 {USER})以动态插入内容。
- 多角色消息:将消息分为不同角色(如用户、助手、系统等),增强交互的复杂性和上下文感知能力。
Spring AI Prompt 组成
以 Spring AI 中的 Prompt 来看,它的实现源码如下:
public class Prompt implements ModelRequest<List<Message>> {
private final List<Message> messages;
private ChatOptions chatOptions;
}
Prompt 实现了 ModelRequest 接口,并且包含了 messages 和 chatOptions 属性,其中:
- messages:包含多个 Message 对象,每个消息代表对话中的一个部分。
- chatOptions:配置选项,用于设置模型的某些属性。
Message API 关系图
Message 对象是 Content 的子类,Spring AI Message API 关系如下图所示:

图片
Prompt 角色分类
Prompt 中的主要角色(Role)包括以下几个:
- 系统角色(System Role):设定 AI 行为边界。指导 AI 的行为和响应方式,设置 AI 如何解释和回复输入的参数或规则。
- 用户角色(User Role):接收用户原始输入。代表用户的输入他们向 AI 提出的问题、命令或陈述。这个角色至关重要,因为它构成了 AI 响应的基础。
- 助手角色(Assistant Role):AI 返回的响应信息,定义为“助手角色”消息。用它可以确保上下文能够连贯的交互。
- 工具/功能角色(Tool/Function Role):桥接外部服务,可以进行函数调用如,支付/数据查询等操作。
角色在 Spring AI 枚举中被定义,如下源码所示:
public enum MessageType {
USER("user"),
ASSISTANT("assistant"),
SYSTEM("system"),
TOOL("tool");
// .....
}
系统和用户角色使用
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/prompt")
publicclass PromptController {
privatefinal ChatClient chatClient;
public PromptController(ChatClient.Builder builder) {
this.chatClient = builder.build();
}
@RequestMapping("/system")
public String system(@RequestParam String city) {
String result = chatClient.prompt()
.system("你是一个旅行规划助手")
.user(city)
.call()
.content();
System.out.println(result);
return result;
}
}
以上程序执行结果如下:

助手角色使用
AssistantMessage 助手消息类型可用于接收上次执行结果,并实现上下文连续对话,实现代码如下:
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.chat.messages.AssistantMessage;
import org.springframework.ai.chat.messages.Message;
import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
@RestController
@RequestMapping("/prompt")
publicclass PromptController {
privatefinal ChatClient chatClient;
//使用集合记录消息历史
List<Message> messages = new ArrayList<>();
public PromptController(ChatClient.Builder builder) {
this.chatClient = builder.build();
}
@RequestMapping("/assistant")
public String assistant(@RequestParam String msg) {
messages.add(new UserMessage(msg));
// 助手消息
AssistantMessage response = chatClient.prompt()
.messages(messages)
.call()
.chatResponse()
.getResult()
.getOutput();
messages.add(response);
return response.getText();
}
}
程序执行结果如下:

从结果可以看出,第二次交互是在第一次交互的基础上执行的。
小结
除了 Prompt 以上内容之外,还有 PromptTemplate 以及 Prompt 使用技巧,例如为模型提供输出样例、设定完成任务步骤、使用思维链(Chain of Thought,COT)引导模型“思考”等具体技巧,咱们后期文章再慢慢聊。
零基础入门AI大模型
今天贴心为大家准备好了一系列AI大模型资源,包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
1.学习路线图

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己整理的大模型视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。


(都打包成一块的了,不能一一展开,总共300多集)
3.技术文档和电子书
这里主要整理了大模型相关PDF书籍、行业报告、文档,有几百本,都是目前行业最新的。
4.LLM面试题和面经合集
这里主要整理了行业目前最新的大模型面试题和各种大厂offer面经合集。

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集
5.免费获取(扫下方二v码即可100%领取)
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)