共计 2780 个字符,预计需要花费 7 分钟才能阅读完成。
提示工程基础概念
提示工程是 AI 原生应用开发的核心技能,它通过精心设计输入文本来引导 AI 模型产生预期输出。对新手而言,理解其工作原理是构建可靠 AI 应用的第一步。

- 核心作用 :
- 充当人类与 AI 模型的 ” 翻译接口 ”
- 直接影响模型输出的准确性和相关性
-
降低模型理解偏差导致的错误成本
-
技术原理 :
- 基于 Transformer 架构的注意力机制
- 通过 token 概率分布影响生成结果
- 上下文窗口的滑动窗口处理机制
新手五大误区与解决方案
-
误区一:提示越详细越好
问题 :过度复杂的提示导致模型注意力分散
解决 :采用 ” 角色 - 任务 - 格式 ” 三层结构# Bad prompt = "请写一篇关于机器学习的长文章,要包含监督学习、无监督学习的定义,至少 5 个算法例子..." # Good prompt = """[系统] 你是一位资深 AI 研究员 [任务] 用 300 字对比监督与无监督学习 [格式] 使用中文,分段落呈现 """ -
误区二:忽略示例示范
问题 :抽象描述导致模型理解偏差
解决 :提供 few-shot 示例# 情感分析示例 examples = """ 输入: 这个产品太差劲了 输出: 负面 输入: 服务非常周到 输出: 正面 """ -
误区三:忽视温度参数
问题 :固定 temperature 导致结果不稳定
解决 :根据场景动态调整(创意类 0.7-1.0,事实类 0 -0.3) -
误区四:单次交互期望完美结果
问题 :未设计迭代优化机制
解决 :实现渐进式细化流程def refine_prompt(response): return f""" 基于上次结果优化: 原输出: {response} 新要求: 更强调技术实现细节 """ -
误区五:忽视安全过滤
问题 :直接暴露用户输入导致注入攻击
解决 :实现输入预处理层
典型场景代码示例
场景 1:客服工单分类
import openai
def classify_ticket(text):
"""
工单分类函数
:param text: 用户工单内容
:return: 分类结果
"""
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "system", "content": "你是有 10 年经验的客服主管"},
{"role": "user", "content": f""" 将以下工单分类为 [ 技术 | 账单 | 账户 | 其他]:\n{text}
只输出分类标签 """}
],
temperature=0
)
return response.choices[0].message.content
# 测试示例
print(classify_ticket("我的信用卡被无故扣款")) # 输出: 账单
场景 2:智能写作辅助
def generate_blog(topic):
"""
博客生成助手
:param topic: 文章主题
:return: 结构化内容
"""prompt = f""" 以专业科技作者身份创作文章:
主题: {topic}
要求:
1. 包含 3 个核心论点
2. 每个论点配真实案例
3. 结尾提出反思问题
字数: 800-1000 字 """
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}],
temperature=0.7
)
return response.choices[0].message.content
场景 3:数据分析报告
import pandas as pd
def analyze_data(df):
"""
自动化数据分析
:param df: pandas DataFrame
:return: 分析结论
"""
data_sample = df.head().to_string()
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "system", "content": "你是资深数据分析师"},
{"role": "user", "content": f""" 分析以下数据:\n{data_sample}
指出:
1. 3 个关键数据特征
2. 可能的异常值
3. 建议的可视化方式 """}
],
temperature=0.3
)
return response.choices[0].message.content
性能优化策略
计算效率优化
- token 压缩技术 :
- 使用缩写词(”TLDR” 代替 ”too long didn’t read”)
- 移除冗余形容词
-
采用列表形式替代段落
-
上下文管理 :
# 使用消息摘要 def summarize_context(history): prompt = f"用 100 字总结该对话:\n{history}" return get_completion(prompt)
API 成本控制
- 分级调用策略 :
- 简单任务使用 gpt-3.5-turbo(1/10 成本)
-
复杂分析切换 gpt-4
-
缓存机制 :
from functools import lru_cache @lru_cache(maxsize=1000) def cached_completion(prompt): return openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role":"user","content":prompt}] )
生产环境注意事项
-
错误处理模板 :
try: response = openai.ChatCompletion.create( model="gpt-4", messages=[...], timeout=10 ) except openai.error.APIError as e: logging.error(f"API 错误: {e}") return fallback_response() -
敏感信息过滤 :
from profanity_filter import ProfanityFilter pf = ProfanityFilter() clean_input = pf.censor(user_input) -
限流实现方案 :
from ratelimit import limits @limits(calls=30, period=60) def api_wrapper(prompt): return get_completion(prompt)
实践任务:电商评论分析
业务场景 :
某电商平台需要自动化处理每日 10 万 + 商品评论,要求:
1. 识别评论情感倾向(积极 / 消极 / 中立)
2. 提取提到的产品特性(如 ” 电池续航 ”)
3. 对投诉类评论生成初步回复模板
任务要求 :
1. 设计完整的提示工程方案
2. 考虑批量处理时的性能优化
3. 包含错误处理和 fallback 机制
4. 编写 Python 实现代码
提示 :
– 使用分类 + 提取的级联策略
– 参考示例结构:
def analyze_review(text):
# 实现你的解决方案
pass
