共计 2626 个字符,预计需要花费 7 分钟才能阅读完成。
背景痛点分析
许多开发者在初次使用 ChatGPT 时,往往会遇到输出质量不稳定的问题。这通常源于以下几个常见的低效输入模式:

- 模糊的需求描述:例如 ” 帮我写代码 ” 这类过于宽泛的指令,导致 AI 无法准确理解具体需求
- 缺少必要上下文:未提供关键技术参数、使用场景或前置条件等重要信息
- 一次性要求过多:在单次提示中包含多个不相关的任务目标
- 忽略输出格式说明:未明确指定期望的响应结构,增加后续处理成本
这些问题会导致对话轮次增加、输出质量下降,严重影响开发效率。
技术对比:不同输入策略
| 策略类型 | 英文名称 | 适用场景 | 优势 | 劣势 |
|---|---|---|---|---|
| 零样本提示 | Zero-shot | 简单明确的任务 | 直接高效 | 复杂任务效果差 |
| 思维链 | Chain-of-Thought | 需要推理的复杂问题 | 展示思考过程 | 占用更多 token |
| 指令模板 | Instruction Template | 重复性标准化任务 | 一致性高 | 灵活性较低 |
结构化提示词的 5 大要素
- 角色定义(Role Specification)
- 明确 AI 应该扮演的专业角色
-
示例:” 你是一位资深 Python 开发工程师 ”
-
任务描述(Task Description)
- 使用动词开头的明确指令
-
示例:” 编写一个使用 asyncio 的 HTTP 请求函数 ”
-
输出格式(Output Format)
- 指定代码风格、文档结构等
-
示例:” 返回 Markdown 格式,包含代码和简要说明 ”
-
示例演示(Example Demonstration)
- 提供输入输出的样例对
-
示例:” 输入:获取用户列表 API,输出:async def fetch_users():…”
-
约束条件(Constraints)
- 列出限制条件和特殊要求
- 示例:” 仅使用标准库,兼容 Python 3.8+”
技术类提示词模板
代码审查模板
作为资深 [语言] 代码审查专家,请分析以下代码:[代码片段]
按照以下方面评估:1. 潜在的性能问题
2. 可读性改进建议
3. 安全性风险
用 Markdown 表格呈现结果,分为问题描述、严重程度(高 / 中 / 低)、修改建议三列。
API 文档生成模板
你是个专业的技术文档工程师,请为以下 [语言] 函数生成 API 文档:[函数代码]
包含:1. 功能描述
2. 参数说明(类型、默认值、作用)
3. 返回值说明
4. 使用示例
5. 可能抛出的异常
采用 Google 风格文档格式。
Python API 调用实战
import openai
import time
from typing import Generator
class ChatGPTAPI:
"""OpenAI API 封装类,包含重试机制和流式处理"""
def __init__(self, api_key: str):
self.api_key = api_key
openai.api_key = api_key
def _retry_request(self, prompt: str, max_retries: int = 3, **kwargs) -> str:
"""
带退避机制的重试请求
:param prompt: 输入提示词
:param max_retries: 最大重试次数
:param kwargs: 其他 API 参数(temperature 等)
:return: 完整响应文本
"""
retry_delay = 1
for attempt in range(max_retries):
try:
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": prompt}],
**kwargs
)
return response.choices[0].message.content
except Exception as e:
if attempt == max_retries - 1:
raise
time.sleep(retry_delay)
retry_delay *= 2
def stream_response(self, prompt: str, **kwargs) -> Generator[str, None, None]:
"""
流式响应处理
:param prompt: 输入提示词
:param kwargs: 其他 API 参数
:yield: 响应内容片段
"""
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": prompt}],
stream=True,
**kwargs
)
for chunk in response:
content = chunk["choices"][0].get("delta", {}).get("content", "")
if content:
yield content
@staticmethod
def sanitize_input(text: str) -> str:
"""
基础敏感信息过滤
:param text: 用户输入文本
:return: 过滤后的安全文本
"""
# 实际项目中应使用更完善的正则过滤
forbidden_terms = ["API_KEY", "SECRET", "PASSWORD"]
for term in forbidden_terms:
if term in text:
raise ValueError(f"输入包含敏感术语: {term}")
return text
生产环境常见问题解决方案
- Token 超限问题
- 监控提示词长度:
len(prompt.encode('utf-8'))//4估算 token 数 - 超长文本处理:先进行摘要或分块处理
-
模型选择:gpt-3.5-turbo-16k 支持更长上下文
-
响应截断
- 设置
max_tokens参数(通常留 200-300 安全余量) - 流式获取完整响应
-
使用 ” 继续 ” 指令分段获取
-
响应不一致
- 调整 temperature 参数(技术任务建议 0.2-0.5)
- 使用固定 seed 值
- 添加更严格的约束条件
与 CI/CD 流程的结合思路
- 代码审查:在 PR 流程中自动生成 AI 审查意见
- 文档同步:代码变更时自动更新 API 文档
- 测试生成:根据函数签名自动生成测试用例
- 错误分析:将 CI 失败日志自动发送给 AI 诊断
参数调优参考
temperature 参数效果对比:
| 参数值 | 适用场景 | 特点 |
|---|---|---|
| 0.0-0.3 | 代码生成 | 确定性高,重复性好 |
| 0.4-0.7 | 创意写作 | 平衡创意与一致性 |
| 0.8-1.0 | 头脑风暴 | 多样性高,不可预测 |
通过系统化的提示词工程实践,开发者可以显著提升与 AI 协作的效率。建议从简单的模板开始,逐步积累领域特定的提示词库,最终形成适合团队的标准实践。
正文完
