提示词工程Prompt Engineering是 在不微调模型参数的情况下通过设计输入提示Prompt来控制大模型输出行为的一种工程方法。它的核心目标是让大模型稳定、可控、可评估地完成任务。一、什么是提示词工程最简单理解Prompt Engineering 如何写Prompt 如何用代码管理Prompt它解决的是一个问题大模型本质是概率预测你需要让它尽量按你的意图输出。例如普通提问总结这段话效果不稳定。优化后的 Prompt你是一个技术文档助手。 请用三条 bullet point 总结下面内容。 每条不超过20字。 内容 {content}输出就稳定很多。二、Prompt 设计原则常见的设计方法1 角色设定Role Prompting给模型一个身份。例如你是一名资深前端架构师示例const prompt 你是一名资深前端架构师 请解释 React diff 算法 好处输出更专业风格更稳定2 任务拆解Task Decomposition复杂任务拆成多个步骤。例如1. 提取关键词 2. 总结内容 3. 给出建议示例const prompt 请按照以下步骤完成任务 1. 提取文本关键词 2. 总结文本 3. 给出改进建议 文本 ${text} 3 Few-shot 示例给模型示例。输入苹果是一种水果 输出水果 输入老虎是一种动物 输出动物 输入香蕉是一种水果 输出TS 实现const prompt 请提取类别 输入苹果是一种水果 输出水果 输入老虎是一种动物 输出动物 输入香蕉是一种水果 输出 4 约束输出格式例如必须输出 JSON示例返回 JSON 格式 { score: number, reason: string }TSconst prompt 判断图片和文本是否匹配 返回JSON: { score: number, reason: string } 文本: ${text} 三、Prompt 模板化工程实践在真实项目中Prompt 不能写死在代码里。通常做成 模板系统。比如一些内置的 Skills 或者 Tools 。示例Prompt Templateclass PromptTemplate { constructor( private template: string ) {} format(data: Recordstring, string) { let result this.template for (const key in data) { result result.replace( {${key}}, data[key] ) } return result } }使用const template new PromptTemplate( 你是一个视频审核专家 判断视频是否符合要求 要求: {requirement} 视频描述: {description} 返回 JSON: { pass: boolean, reason: string } )调用const prompt template.format({ requirement: 必须包含动物, description: 视频是一只狗在跑 })多模板形成的 Prompt Chain复杂任务需要多个 Prompt。例如视频生成流程用户需求 ↓ 脚本生成 ↓ 分镜生成 ↓ 视频生成 ↓ 视频评估TS 示例async function generateScript(topic: string) { return llm( 生成一个视频脚本 主题${topic} ) } async function generateStoryboard(script: string) { return llm( 根据脚本生成分镜 ${script} ) } async function generateVideo(storyboard: string) { return videoModel(storyboard) } async function workflow(topic: string) { const script await generateScript(topic) const storyboard await generateStoryboard(script) const video await generateVideo(storyboard) return video }这就是 Prompt Chain。在LangChain / LangGraph中会更常见。四、结构化输出工程中 必须结构化输出。否则你没法处理。例如坏例子这个图片挺符合要求的好例子{ match: true, score: 0.87, reason: 图片包含猫 }TS 实现async function evaluateImage( text: string, imageDesc: string ) { const prompt 判断图片和文本是否匹配 文本 ${text} 图片描述 ${imageDesc} 返回JSON { match: boolean, score: number, reason: string } const res await llm(prompt) return JSON.parse(res) }五、常见应用1 AI 客服用户问题 ↓ Prompt ↓ 大模型回答2 内容审核视频生成 ↓ 内容校验 ↓ 语义分析 ↓ 质量评估Prompt 示例判断视频是否符合以下要求 1 包含动物 2 场景是森林 3 时长不超过10秒3 图文匹配image-text matching 的 Prompt判断图片是否符合文本描述返回score4 自动生成内容例如文章 视频脚本 代码
这才称得上是提示词工程!
提示词工程Prompt Engineering是 在不微调模型参数的情况下通过设计输入提示Prompt来控制大模型输出行为的一种工程方法。它的核心目标是让大模型稳定、可控、可评估地完成任务。一、什么是提示词工程最简单理解Prompt Engineering 如何写Prompt 如何用代码管理Prompt它解决的是一个问题大模型本质是概率预测你需要让它尽量按你的意图输出。例如普通提问总结这段话效果不稳定。优化后的 Prompt你是一个技术文档助手。 请用三条 bullet point 总结下面内容。 每条不超过20字。 内容 {content}输出就稳定很多。二、Prompt 设计原则常见的设计方法1 角色设定Role Prompting给模型一个身份。例如你是一名资深前端架构师示例const prompt 你是一名资深前端架构师 请解释 React diff 算法 好处输出更专业风格更稳定2 任务拆解Task Decomposition复杂任务拆成多个步骤。例如1. 提取关键词 2. 总结内容 3. 给出建议示例const prompt 请按照以下步骤完成任务 1. 提取文本关键词 2. 总结文本 3. 给出改进建议 文本 ${text} 3 Few-shot 示例给模型示例。输入苹果是一种水果 输出水果 输入老虎是一种动物 输出动物 输入香蕉是一种水果 输出TS 实现const prompt 请提取类别 输入苹果是一种水果 输出水果 输入老虎是一种动物 输出动物 输入香蕉是一种水果 输出 4 约束输出格式例如必须输出 JSON示例返回 JSON 格式 { score: number, reason: string }TSconst prompt 判断图片和文本是否匹配 返回JSON: { score: number, reason: string } 文本: ${text} 三、Prompt 模板化工程实践在真实项目中Prompt 不能写死在代码里。通常做成 模板系统。比如一些内置的 Skills 或者 Tools 。示例Prompt Templateclass PromptTemplate { constructor( private template: string ) {} format(data: Recordstring, string) { let result this.template for (const key in data) { result result.replace( {${key}}, data[key] ) } return result } }使用const template new PromptTemplate( 你是一个视频审核专家 判断视频是否符合要求 要求: {requirement} 视频描述: {description} 返回 JSON: { pass: boolean, reason: string } )调用const prompt template.format({ requirement: 必须包含动物, description: 视频是一只狗在跑 })多模板形成的 Prompt Chain复杂任务需要多个 Prompt。例如视频生成流程用户需求 ↓ 脚本生成 ↓ 分镜生成 ↓ 视频生成 ↓ 视频评估TS 示例async function generateScript(topic: string) { return llm( 生成一个视频脚本 主题${topic} ) } async function generateStoryboard(script: string) { return llm( 根据脚本生成分镜 ${script} ) } async function generateVideo(storyboard: string) { return videoModel(storyboard) } async function workflow(topic: string) { const script await generateScript(topic) const storyboard await generateStoryboard(script) const video await generateVideo(storyboard) return video }这就是 Prompt Chain。在LangChain / LangGraph中会更常见。四、结构化输出工程中 必须结构化输出。否则你没法处理。例如坏例子这个图片挺符合要求的好例子{ match: true, score: 0.87, reason: 图片包含猫 }TS 实现async function evaluateImage( text: string, imageDesc: string ) { const prompt 判断图片和文本是否匹配 文本 ${text} 图片描述 ${imageDesc} 返回JSON { match: boolean, score: number, reason: string } const res await llm(prompt) return JSON.parse(res) }五、常见应用1 AI 客服用户问题 ↓ Prompt ↓ 大模型回答2 内容审核视频生成 ↓ 内容校验 ↓ 语义分析 ↓ 质量评估Prompt 示例判断视频是否符合以下要求 1 包含动物 2 场景是森林 3 时长不超过10秒3 图文匹配image-text matching 的 Prompt判断图片是否符合文本描述返回score4 自动生成内容例如文章 视频脚本 代码