📖 本章预览
本章为预览版本,展示部分核心内容。完整内容包含详细源码解析、实战代码和面试要点,加入知识星球即可解锁全部章节。
第4章 Prompt 工程化:让 AI 听懂人话
4.1 Prompt 基础概念
4.1.1 什么是 Prompt Engineering
- Prompt 的本质:与大模型沟通的"编程语言"
- Prompt 质量对输出结果的决定性影响
- Prompt Engineering 与传统编程的思维差异
4.1.2 Spring AI 中的 Prompt 抽象
- Prompt 类的核心结构
- Message 接口与消息类型体系
- ChatOptions 参数配置与 Prompt 的关系
4.2 消息体系详解
4.2.1 SystemMessage(系统消息)
- 作用:设定 AI 的角色、行为边界和输出规范
- 最佳实践:如何写出高质量的 System Prompt
- 常见模式:角色扮演、输出格式约束、安全边界设定
- 代码示例:通过 SystemMessage 定义一个专业翻译助手
4.2.2 UserMessage(用户消息)
- 作用:承载用户的实际问题或指令
- 单轮 vs 多轮场景下的 UserMessage 构建
- 携带上下文信息的技巧
- 多模态 UserMessage:文本 + 图片 + 文件
4.2.3 AssistantMessage(助手消息)
- 作用:表示模型的历史回复,用于多轮对话上下文
- 在对话历史中的拼接方式
- 与 Function Calling 结果的关联
4.2.4 消息组合与对话构建
- 多消息组合的顺序规则
- 构建完整对话上下文的标准模式
- Token 消耗与消息裁剪策略
4.3 PromptTemplate 模板引擎
4.3.1 模板引擎机制
- PromptTemplate 的设计思想:将 Prompt 参数化
- 模板语法:
{variable}占位符 - 从字符串创建模板
- 从资源文件(classpath)加载模板
4.3.2 模板变量与渲染
- 单变量替换
- 多变量替换
- Map 参数传递
- 默认值与缺失变量处理
4.3.3 模板管理实践
- 模板文件的目录组织规范
- 按业务场景分类管理模板
- 模板的版本控制与 Git 管理
- 多语言模板的组织方式
4.4 结构化 Prompt 设计模式
4.4.1 角色设定模式(Role Prompting)
- 原理:通过角色定义引导模型行为
- 单角色设定:专家、助手、审核员
- 复合角色:多重身份叠加
- 角色设定的边界与局限
4.4.2 少样本提示(Few-Shot Prompting)
- 原理:通过示例教会模型输出格式
- 示例数量的选择:1-shot、3-shot、5-shot 的效果对比
- 示例的质量要求:多样性、代表性、一致性
- 动态 Few-Shot:根据输入自动选择最相关的示例
- 在 Spring AI 中实现 Few-Shot 的代码模式
4.4.3 思维链提示(Chain-of-Thought, CoT)
- 原理:引导模型逐步推理而非直接给答案
- Zero-Shot CoT:"让我们一步步思考"
- Manual CoT:手动编写推理步骤示例
- Auto-CoT:自动生成推理链
- CoT 适用场景:数学推理、逻辑判断、复杂决策
4.4.4 其他高级 Prompt 模式
- ReAct 模式:推理 + 行动交替
- Self-Consistency:多次采样取一致结果
- Tree-of-Thought:树状推理探索
- 输出格式约束:JSON Mode、Markdown 表格、XML 结构
4.5 Prompt 版本管理与 A/B 测试
4.5.1 为什么需要 Prompt 版本管理
- Prompt 即代码:Prompt 变更对业务的影响等同于代码变更
- 常见问题:Prompt 漂移、回归、不可复现
🔒 解锁完整内容
本章剩余内容需要解锁后查看
以上仅为本章部分预览内容,完整内容包含更多深度源码解析、实战代码和面试要点。
加入知识星球你将获得:
- ✅ 全部 26 章完整内容 + 持续更新
- ✅ 配套源码 + 实战项目
- ✅ 一对一答疑 + 面试辅导
- ✅ 简历优化 + 内推机会
📚 本章完整目录
以下为本章完整目录结构,加入知识星球即可解锁全部内容。