共计 2596 个字符,预计需要花费 7 分钟才能阅读完成。
为什么提示词工程是 AIGC 的核心竞争力
- 提示词是开发者与大模型对话的唯一桥梁,直接影响输出质量
- 优秀的 prompt 设计能降低 70% 以上的模型调试成本
- 结构化提示词可复用性让 AIGC 应用实现工业化生产
技术原理解析
Token 处理机制
大模型 (LLM) 通过 Tokenizer 将文本分解为 token 序列处理,例如:

# GPT- 3 的 token 示例
from transformers import GPT2Tokenizer
tokenizer = GPT2Tokenizer.from_pretrained('gpt2')
print(tokenizer.tokenize('Hello 世界!')) # ['Hello', '世', '界', '!']
- 中文通常 1 个字 =1- 2 个 token
- API 计费按 token 总数计算
- 上下文窗口有长度限制(如 GPT- 4 通常 8k tokens)
提示词三要素
- 指令(Instruction):明确任务要求
- 错误示例:” 写一篇游记 ”
-
正确示例:” 以专业旅行博主身份,撰写 800 字巴厘岛冲浪攻略,包含装备建议和适合初学者的海滩推荐 ”
-
上下文(Context):提供背景信息
你是一位有 10 年经验的 Python 开发专家,现在需要审查以下代码... -
输出格式(Format):指定结构化返回
请用 JSON 格式返回,包含 title/keywords/content 三个字段
温度系数与采样
temperature(0-2):值越高结果越随机top_p(0-1):控制候选词的概率阈值
# 参数设置对比
def generate_text(prompt):
# 确定性高的场景(如代码生成)response1 = openai.Completion.create(
engine="text-davinci-003",
prompt=prompt,
temperature=0.3,
top_p=0.9
)
# 需要创意的场景(如文案写作)response2 = openai.Completion.create(
engine="text-davinci-003",
prompt=prompt,
temperature=0.8,
top_p=0.95
)
实战代码模板
Python 调用 OpenAPI 完整示例
import openai
from tenacity import retry, stop_after_attempt, wait_exponential
@retry(stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, min=4, max=10))
def safe_completion(prompt, max_tokens=500):
try:
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}],
temperature=0.7,
max_tokens=max_tokens
)
return response.choices[0].message.content
except Exception as e:
print(f"API Error: {str(e)}")
return None
# 调用示例
generated_text = safe_completion("用 300 字解释量子计算基本原理")
电商商品描述模板
作为顶级电商文案专家,请为 [产品名称] 创作商品详情描述,要求:1. 突出三大核心卖点:[卖点 1]、[卖点 2]、[卖点 3]
2. 包含使用场景说明
3. 采用 FAB 法则(特性→优势→利益)4. 结尾添加 3 个常见 QA
5. 限制在 200 字以内
产品背景:[此处填充产品技术参数]
目标人群:[年龄段 / 职业 / 兴趣等]
代码审查链式提示
[第一轮:语法检查]
请检查以下 Python 代码的语法错误和 PEP8 规范违反情况,按严重程度排序:<code>...</code>
[第二轮:逻辑分析]
基于前轮结果,分析代码中的潜在逻辑缺陷,特别关注:- 边界条件处理
- 异常捕获完整性
- 资源释放情况
[第三轮:优化建议]
给出可量化的改进方案,包括:1. 性能提升点(预估提升比例)2. 可读性改进
3. 测试用例补充建议
性能优化策略
成本控制技巧
- 长文本采用 ” 摘要→扩写 ” 两阶段处理
- 设置
max_tokens硬限制 - 高频问题答案本地缓存
缓存设计示例
from datetime import timedelta
from django.core.cache import cache
def get_cached_response(prompt):
cache_key = f"prompt_{hash(prompt)}"
if content := cache.get(cache_key):
return content
response = safe_completion(prompt)
cache.set(cache_key, response, timeout=timedelta(hours=24))
return response
敏感信息过滤
import re
def sanitize_input(text):
patterns = [r'\b(?:password|api[ _]?key)\b.*=.*',
r'\d{4}[-]?\d{4}[-]?\d{4}[-]?\d{4}' # 信用卡号
]
for pattern in patterns:
text = re.sub(pattern, '[REDACTED]', text, flags=re.IGNORECASE)
return text
生产环境 Checklist
防提示词注入
- 严格校验用户输入中的特殊符号(如 <>{})
- 使用分隔符明确用户输入边界
User Input: <>{input}</> - 预设白名单指令集
- 限制用户自定义上下文长度
- 关键操作需二次确认
多轮对话技巧
- 维护对话历史栈
- 关键信息显式确认
- 设置对话超时重置
评估指标设计
| 维度 | 评估方法 | 达标标准 |
|---|---|---|
| 相关性 | 人工评分 /ROUGE-L | ≥4 分(5 分制) |
| 创造性 | 文本相似度检测 | 与已有内容 <30% 重复度 |
| 安全性 | 敏感词扫描 | 0 命中 |
实践心得
经过多个 AIGC 项目落地,发现最有效的 prompt 优化流程是:初版设计→人工评估→AB 测试→建立评估指标→自动化测试。建议用 Notion 建立 prompt 模板库,按场景分类管理。记住:好的提示词不是写出来的,是迭代出来的。
正文完
