掘金 人工智能 05月14日 15:08
Prompt Engineering新手避坑指南:用程序化Prompt实现企业级AI工作流(附工程化代码)
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文深入探讨了Prompt设计的核心原则与实践技巧,旨在帮助用户优化与AI模型的交互,提升输出质量。文章涵盖了明确性、简洁性、上下文设计、结构化指令等多个方面,通过丰富的案例和代码示例,详细阐述了如何构建高效、精准的Prompt。此外,文章还提供了Prompt设计的检查清单,帮助读者全面评估和改进Prompt设计,提升AI应用开发的效率和效果。

💡明确性是Prompt设计的基石,它要求精确描述任务需求。通过对比劣质与优质Prompt的示例,文章强调了明确任务、提供上下文、指定格式和示例示范的重要性。

✨简洁性设计是提升Prompt效率的关键。文章介绍了去除冗余词、使用符号分隔等技巧,并通过LangChain的代码示例展示了如何构建清晰的Prompt,从而提升Prompt的表达效率和可读性。

📚上下文与语境设计对Prompt的输出至关重要。文章介绍了显式声明背景、隐式引导等上下文注入策略,以及滑动窗口法、关键信息提取等语境长度控制方法,确保AI模型能够理解和响应复杂的指令。

✅明确性检查清单能够帮助用户评估Prompt的质量。文章从输出格式、内容范围、风格要求、长度限制等多个维度,提供了Prompt设计的检查清单,帮助用户全面改进Prompt设计。

🔨指令设计技巧是提升Prompt灵活性的关键。文章介绍了指令类型化模板、多步骤指令设计等方法,并通过代码示例展示了如何构建结构化指令,从而提升Prompt的表达能力和可控性。

本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习内容尽在聚客AI学院

一. Prompt设计的基本原则

1.1 核心三要素

黄金法则

明确任务 → 提供上下文 → 指定格式 → 示例示范

二. 简洁性与清晰度

2.1 简洁性设计技巧

劣质Prompt:

请帮我写一个关于机器学习在医疗领域应用的文章,要包含至少三个具体案例,每个案例需要详细描述技术原理和实际效果,总字数不少于1000字...  

优质Prompt:

生成一篇机器学习在医疗应用的综述,包含3个案例(技术原理+效果数据),使用Markdown分章节排版  

使用符号分隔

角色:医疗科技记者  任务:撰写CT影像分析技术进展报告  要求:  - 分"技术演进""商业应用""伦理挑战"三部分  - 每个部分包含2个案例  - 输出为带标题的Markdown

2.2 清晰度保障方法

生成5条新能源汽车广告文案:  - 每条不超过20字  - 包含"续航"、"智能"关键词  - 使用疑问句或感叹句式

代码示例:使用LangChain构建清晰Prompt

from langchain.prompts import PromptTemplate  template = """  作为{role},请完成以下任务:  {task}  要求:  {requirements}  """  prompt = PromptTemplate(      input_variables=["role","task","requirements"],      template=template  )  print(prompt.format(      role="资深产品经理",      task="撰写智能手环市场分析报告",      requirements="- 分3个章节\n- 包含SWOT分析\n- 输出Markdown格式"  ))

三. 上下文与语境设计

3.1 上下文注入策略

背景:2023年Q3中国手机市场数据(IDC报告)  - 出货量同比下降6%  - 折叠屏手机增长120%  任务:基于上述数据,分析未来趋势

隐式引导

假设你是马斯克,在2024年AI安全峰会的开幕致辞中提出3点监管建议

3.2 语境长度控制

from transformers import pipeline  summarizer = pipeline("summarization", model="facebook/bart-large-cnn")  long_text = "..."  # 长文本  summary = summarizer(long_text, max_length=100, min_length=30, do_sample=False)  print(summary[0]['summary_text'])

四. 问题明确性保障

4.1 模糊Prompt案例分析

4.2 明确性检查清单

是否指定了输出格式(JSON/CSV/表格)?

是否限定了内容范围(时间/地域/行业)?

是否明确了风格要求(专业/口语化/幽默)?

是否设置了长度限制(字数/条目数)?

五. 指令设计技巧

5.1 指令类型化模板

5.2 多步骤指令设计

1. 从维基百科提取"量子计算"发展历史时间线  2. 标注每个阶段的关键技术突破  3. 生成可视化建议(图表类型+数据维度)  按JSON格式输出:  {    "timeline": [{year:, event:, technology:}],    "visualization": [{type:, data:}]  }

代码示例:结构化指令实现

def create_tech_prompt(topic):      return f"""  执行以下分析任务:  主题:{topic}  步骤:  1. 识别三个主要发展阶段  2. 每个阶段列出2项关键技术  3. 评估当前技术成熟度(1-5分)  按如下JSON格式输出:  {{    "stages": [      {{"name": "", "technologies": [], "maturity": }}    ]  }}  """  print(create_tech_prompt("基因编辑"))

六. 结构化与非结构化Prompt

6.1 结构化Prompt模板

{    "task": "产品描述生成",    "product": "无线降噪耳机",    "requirements": {      "length": "150字",      "keywords": ["Hi-Res认证", "40小时续航", "自适应降噪"],      "style": "科技感",      "exclude": ["价格信息", "促销内容"]    }  }

6.2 非结构化Prompt优化

#角色# 资深影评人  #任务# 分析《奥本海默》的叙事结构  #要求#  - 对比诺兰前作  - 聚焦非线性别事手法  - 输出带时间码的案例

分隔符号

[BEGIN PROMPT]  作为历史学家,用学术论文风格解释工业革命的影响:  - 分经济/社会/技术三个维度  - 每个维度包含2个数据案例  - 禁用第一人称  [END PROMPT]

代码示例:Prompt效果评估

import evaluate  rouge = evaluate.load('rouge')  references = ["这是一条标准答案"]  predictions = ["模型生成的回答"]  results = rouge.compute(      predictions=predictions,      references=references,      rouge_types=['rougeL']  )  print(f"ROUGE-L分数:{results['rougeL']}")

附:Prompt设计检查清单

任务目标是否用动词明确描述(生成/分析/转换)?

是否包含负面约束(不要包含/避免提及)?

是否有示例演示预期格式?

专业术语是否有明确定义?

长度/数量等是否量化指定?

:本文代码需安装以下依赖:

pip install langchain transformers evaluate

更多AI大模型应用开发学习内容,尽在聚客AI学院

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Prompt设计 AI交互 指令 LangChain 大模型
相关文章