13.1 OpenAI GPT 系列最佳实践

说明: 本节所涉及的 API 参数、模型特性及最佳实践基于 2026 年初的版本编写。由于 OpenAI 平台更新频繁,在实际应用中请参考最新的官方文档。

OpenAI 是大语言模型商业化的先驱,其 GPT 系列是应用最广泛的语言模型。本节深入介绍针对 GPT 系列的提示词优化策略,涵盖从 GPT-4 Turbo 到最新的 GPT-5.x 推理模型。

注意(平台变更):OpenAI 官方公告称,自 2026 年 2 月 13 日起,GPT-4o 已从ChatGPT中退役;同时明确说明该变更不影响 API。如果你的系统强绑定某个模型版本,请以官方最新公告/文档为准,并通过回归测试验证迁移影响。

13.1.1 GPT 模型系列概览

OpenAI 目前提供多个系列的模型,适用于不同场景:

模型系列
核心特点
适用场景

GPT-5.4

最新旗舰、1M 上下文、低幻觉、原生 Computer Use

复杂分析、高精度任务、代理工作流

GPT-5.3

前沿编程能力(Codex 基础)

编程密集型任务

GPT-5.2

长上下文推理、电子表格/演示文稿

商业分析、多步执行

GPT-5.1

高性能、增强推理(ChatGPT 侧已退役,API 仍可用)

通用高级任务(建议迁移至 5.3/5.4)

o 系列(o1/o3)

较早一代推理优先路线

数学、编程、逻辑推理(历史与专门场景)

GPT-4o

多模态、快速响应(ChatGPT 侧退役)

通用任务、实时交互

GPT-4o mini

成本优化、快速

简单任务、高并发场景

13.1.2 系统提示词设计

GPT 模型对系统提示词有出色的遵从性,这是设计提示词的核心要素。

基本结构

messages = [
    {
        "role": "system",
        "content": """你是一位专业的数据分析师,具备以下特点:
- 擅长解读复杂数据并提供可操作的洞察
- 回答简洁、结构清晰
- 在不确定时会明确说明假设条件

输出要求:
1. 使用 Markdown 格式
2. 关键数据用表格呈现
3. 结论放在最前面"""
    },
    {
        "role": "user",
        "content": "分析这份销售数据..."
    }
]

系统提示词的关键要素

spinner

图 13-1:系统提示词的四个核心层次

  • 身份定义:明确模型扮演的角色和专业领域

  • 行为规范:定义回答风格、语气和处理方式

  • 格式要求:指定输出的结构和格式

  • 限制条件:设定边界和禁止事项

13.1.3 函数调用与结构化输出

GPT 系列原生支持函数调用和结构化输出,是构建 智能体(agent) 系统的关键能力。

函数定义示例

结构化输出

2024 年 OpenAI 推出的结构化输出功能,确保模型输出严格符合指定的 JSON Schema:

结构化输出的优势

  • 100% 符合 Schema,无需后处理验证

  • 支持复杂嵌套结构

  • 与 Pydantic 无缝集成

13.1.4 o 系列推理模型策略

o 系列是 OpenAI 较早一代专为复杂推理设计的路线。当前默认前沿主线已经转向 GPT-5.4,但理解 o 系列仍有助于把握推理模型的演进脉络。

核心差异

维度
GPT 系列
o 系列

思维链

需显式要求

内置自动执行

响应时间

秒级

可能需要分钟级

系统提示词

完整支持

部分限制

推理控制

支持推理预算设置

o 系列的提示词策略

关键原则

  1. 直接陈述问题:无需要求“逐步思考”,模型会自动进行

  2. 提供充分上下文:复杂问题需要完整的背景信息

  3. 设置推理预算:通过 reasoning_effort 参数控制推理深度

13.1.5 高级技巧

1. 使用分隔符组织复杂提示词

2. 利用 JSON 模式确保格式一致

3. 温度参数调优

任务类型
推荐 Temperature

代码生成、事实问答

0 - 0.3

通用对话、文案写作

0.5 - 0.7

创意写作、头脑风暴

0.8 - 1.0

4. 多轮对话中的上下文管理

13.1.9 常见问题与解决方案

问题
解决方案

输出格式不稳定

使用 Structured Outputs 或 JSON 模式

模型“跑题”

在系统提示词中明确任务边界

回答过长

指定字数限制或使用 max_tokens

幻觉问题

结合 RAG,要求引用来源

动手试试

  1. 对比 GPT 系列的”推理模型”(o 系列)和”常规模型”(GPT-4o)处理同一个复杂任务的效果差异——什么时候推理模型明显更好?

  2. 试着用 system message 和 developer message 分别设置同一条指令,观察它们对模型行为影响的区别。

最后更新于