02 - OpenAI 入门:使用专有模型

难度:入门 时长:~15 分钟 关键概念:OpenAI API、温度控制、成本分析

概述

本指南介绍使用 OpenAI 语言模型的基本概念,这些概念构成了构建 AI 智能体(Agent)的基础。

什么是 OpenAI API?

OpenAI API 提供了对 GPT-4o 和 GPT-3.5-turbo 等强大语言模型的编程访问。你无需在本地运行模型,只需向 OpenAI 的服务器发送请求并接收响应。

核心特性:

  • 基于云端(Cloud-based):模型运行在 OpenAI 的基础设施上
  • 按使用付费(Pay-per-use):按 token 消耗计费
  • 生产就绪(Production-ready):企业级的可靠性和性能
  • 最新模型:可即时访问最新发布的模型

与本地大语言模型的对比

方面OpenAI API本地大语言模型
安装配置仅需 API 密钥需要下载模型,需要 GPU/内存
成本按 token 付费初始设置后免费
性能稳定、高质量取决于你的硬件
隐私数据发送到 OpenAI完全本地/私密
可扩展性无限制(需付费)受硬件限制

聊天补全 API(Chat Completions API)

请求-响应周期

关键点:每次请求都是独立的。API 不会存储对话历史。

消息角色:对话结构

每条消息都有一个 role 属性,用于确定其用途。

1. 系统消息(System Message)

{ role: 'system', content: 'You are a helpful Python tutor.' }

用途:定义 AI 的行为、人格和能力

  • AI 的"职位描述"
  • 对终端用户不可见
  • 设定约束和指导方针

2. 用户消息(User Message)

{ role: 'user', content: 'How do I use async/await?' }

用途:代表人类的输入或问题

3. 助手消息(Assistant Message)

{ role: 'assistant', content: 'Async/await is a way to handle promises...' }

用途:代表 AI 之前的响应,提供对话历史和上下文。

对话流程示例

[
  { role: 'system', content: 'You are a math tutor.' },
  { role: 'user', content: 'What is 15 * 24?' },
  { role: 'assistant', content: '15 * 24 = 360' },
  { role: 'user', content: 'What about dividing that by 3?' },
  { role: 'assistant', content: '360 / 3 = 120' },
]

无状态性:一个关键概念

最重要的原则:OpenAI 的 API 是无状态的(Stateless)。

什么是无状态?

每次 API 调用都是独立的。模型不会记住之前的请求。

如何维护上下文

你必须发送完整的对话历史:

const messages = [];

// 第一轮
messages.push({ role: 'user', content: 'My name is Alice' });
const response1 = await client.chat.completions.create({
    model: 'gpt-4o',
    messages: messages
});
messages.push(response1.choices[0].message);

// 第二轮 - 包含完整历史
messages.push({ role: 'user', content: "What's my name?" });
const response2 = await client.chat.completions.create({
    model: 'gpt-4o',
    messages: messages  // 完整对话!
});

温度参数(Temperature):控制随机性

温度参数控制模型输出的"创造性"或"随机性"。

技术原理

在生成每个 token 时,模型会为可能的下一个 token 分配概率:

实用指南

温度范围适用任务示例
0.0 - 0.3代码生成、数据提取、事实性问答temperature: 0.1
0.5 - 0.9一般对话、客户支持、内容摘要temperature: 0.7
1.0 - 2.0故事写作、头脑风暴、创意内容temperature: 1.3

流式传输(Streaming):实时响应

非流式传输(默认)

流式传输

何时使用哪种方式

  • 使用非流式传输:批处理脚本、简单命令行工具、API 端点
  • 使用流式传输:聊天界面、交互式应用、面向用户的应用

Token(令牌):大语言模型的货币

什么是 token?

Token 是语言模型处理的基本单位。它们不完全等于单词,而是文本的片段。

为什么 token 很重要

  • 成本:按 token 付费(输入 + 输出)
  • 上下文限制:每个模型有最大 token 限制
  • 性能:更多 token = 更长的处理时间和更高的成本

模型选择:选择合适的工具

👑

GPT-4o

最强大的模型,适合复杂推理、代码生成、技术内容等对质量要求高的应用。

GPT-4o-mini

性能良好、成本适中、响应速度快,是许多应用的最佳选择。

GPT-3.5-turbo

非常快、成本最低,适合分类、提取等简单任务和高吞吐量处理。

混合方案:结合专有模型和开源模型

在实际项目中,最佳方案往往是在 OpenAI 和本地大语言模型之间策略性地同时使用两者

常见的混合架构

成本效益分析

方案月成本优点缺点
仅 OpenAI$750-1500最高质量、零基础设施大规模时昂贵
仅本地模型$100-500成本可预测、私密设置复杂、质量较低
混合方案$250-800成本效益高、灵活架构更复杂

大多数项目的最佳选择:混合方案

关键洞察

  1. 无状态性既是优势也是负担:你控制上下文,但必须自行管理
  2. 系统提示词是你的秘密武器:相同模型 → 不同行为
  3. 温度参数改变一切:根据任务类型匹配
  4. Token 是真正的货币:监控并优化使用量
  5. 模型选择很重要:不要用大锤砸钉子
  6. 流式传输改善用户体验:面向用户的应用请使用它
  7. 错误处理不是可选项:网络会出故障,为此做好准备