3、OpenAI API入门:注册与获取API Key、Python环境准备、安装openai库、发送第一条Chat Completion请求

好,咱们正式开始动手了。

前面两章聊了不少概念和架构,我知道你肯定手痒了。这一章,我们就来真正跑通第一条API请求。说白了,就是让OpenAI的模型给你回一句“Hello”。

我当年第一次调通这个接口的时候,说实话,心里还挺激动的。虽然只是一行文字,但那种“机器在理解我”的感觉,确实很奇妙。嗯,咱们一步步来。

3.1 注册OpenAI账号与获取API Key

首先,你得有一个OpenAI的账号。去 platform.openai.com 注册,流程很简单,邮箱验证一下就行。

注册成功后,登录后台,在左侧菜单找到 API Keys 页面。点击 Create new secret key,系统会生成一串以 sk- 开头的密钥。

⚠️ 重要提醒: 这个密钥只显示一次!关闭弹窗后就再也看不到了。我当年就吃过这个亏,生成后忘了复制,结果只能重新创建一个。所以,请立刻复制并保存到安全的地方。

拿到Key之后,建议你把它设置成环境变量,而不是硬编码在代码里。为什么?因为代码可能会上传到GitHub,一旦泄露,别人就能用你的额度了。我习惯在终端里这样设置:

# Linux / macOS
export OPENAI_API_KEY="你的密钥"

# Windows (CMD)
set OPENAI_API_KEY=你的密钥

# Windows (PowerShell)
$env:OPENAI_API_KEY="你的密钥"

当然,你也可以在Python代码里直接读取环境变量,这样更安全。

3.2 Python环境准备

我假设你已经有Python 3.8以上的版本了。如果没有,去 python.org 下载安装就行。

我个人习惯用虚拟环境来隔离项目依赖。你想想看,每个项目用的库版本可能不一样,混在一起迟早会出问题。我曾经在一个老项目里升级了某个库,结果另一个项目直接崩了……从那以后,我每个新项目都老老实实建虚拟环境。

创建虚拟环境很简单:

# 创建虚拟环境
python -m venv openai_env

# 激活虚拟环境
# Windows:
openai_env\Scripts\activate

# macOS / Linux:
source openai_env/bin/activate

激活后,终端前面会出现 (openai_env) 字样,说明你已经在虚拟环境里了。

3.3 安装openai库

接下来安装官方库。OpenAI的Python库一直在更新,我建议你安装最新版:

pip install openai

如果你在国内,网络可能不太稳定。可以加个国内镜像源,比如清华的:

pip install openai -i https://pypi.tuna.tsinghua.edu.cn/simple

安装完成后,验证一下:

pip show openai

看到版本号就说明成功了。我记得有一次帮同事排查问题,发现他装了个很老的版本,接口参数都对不上。所以,记得保持库的更新。

3.4 发送第一条Chat Completion请求

好,重头戏来了。我们写一段代码,让GPT-4o(或者gpt-3.5-turbo)给你回一句话。

新建一个Python文件,比如 first_request.py,写入以下代码:

from openai import OpenAI
import os

# 从环境变量读取API Key
client = OpenAI(
    api_key=os.getenv("OPENAI_API_KEY")
)

# 发送请求
response = client.chat.completions.create(
    model="gpt-4o",  # 或者用 "gpt-3.5-turbo"
    messages=[
        {"role": "system", "content": "你是一个乐于助人的助手。"},
        {"role": "user", "content": "请用一句话介绍你自己。"}
    ],
    temperature=0.7,
    max_tokens=100
)

# 打印回复
print(response.choices[0].message.content)

然后运行:

python first_request.py

如果一切顺利,你会看到类似这样的输出:

你好!我是OpenAI开发的人工智能助手,可以帮助你解答问题、提供建议、处理文本等各种任务。

是不是很简单?

🎉 恭喜!你已经成功调用了大模型API。 这是你迈向AI应用开发的第一步。

3.5 代码拆解:每个参数是干什么的?

咱们把代码拆开看看,每个参数到底是什么意思。我当年刚开始学的时候,也是一头雾水,后来踩了几个坑才搞明白。

参数 说明 我的建议
model 指定使用的模型,如 gpt-4ogpt-3.5-turbo 开发测试用3.5,省钱;生产环境用4o,效果更好
messages 对话消息列表,包含角色和内容 system角色设定行为,user角色提问题
temperature 控制输出的随机性,0-2之间 需要确定性答案用0,需要创意用0.8左右
max_tokens 限制回复的最大长度 设得太小回复会被截断,我一般设200-500

这里有个小细节:messages 是一个列表,里面每个元素都是一个字典。你可以传多条消息,模拟多轮对话。比如:

messages=[
    {"role": "system", "content": "你是一个Python专家。"},
    {"role": "user", "content": "什么是装饰器?"},
    {"role": "assistant", "content": "装饰器是一种用于修改函数行为的高级特性..."},
    {"role": "user", "content": "能给我举个例子吗?"}
]

这样模型就能理解上下文,继续之前的对话。

3.6 常见错误与避坑指南

第一次运行,大概率会遇到一些问题。别慌,我帮你列几个最常见的:

  • AuthenticationError:API Key不对或者没设置。检查环境变量是否生效,或者直接打印一下 os.getenv("OPENAI_API_KEY") 看看是不是None。
  • RateLimitError:请求太频繁了。免费账户有速率限制,等几秒再试。我曾经写了个循环忘记加sleep,直接被封了半小时……
  • InsufficientQuota:余额不足。去后台看看还有没有额度,新账号一般有5美元的免费额度。
  • BadRequestError:参数传错了。比如模型名拼写不对,或者 max_tokens 设成了负数。
💡 小技巧: 调试的时候,可以把 response 整个打印出来看看结构。你会发现里面有很多有用的信息,比如 usage 字段会告诉你这次请求花了多少token。

3.7 本章小结

这一章我们完成了三件事:注册账号拿到Key、搭建Python环境、发送了第一条Chat Completion请求。你想想看,从零到跑通第一条请求,其实也就十几分钟的事。

下一章,我们会深入聊一聊 messages 参数的细节,以及如何构建多轮对话。嗯,到时候你会发现自己已经能写出一个简单的聊天机器人了。

公众号:蓝海资料掘金营,微信deep3321