OpenAI API 学习笔记

获得 OpenAI API Key

获取 OpenAI 账号

如果你已经使用过 ChatGPT,那么你的 ChatGPT 账号就是 OpenAI 账号,直接使用即可。如果没有 OpenAI 账号,你需要先进行注册。

由于国内访问的限制,注册可能会稍显复杂。网上有很多教程可以帮助你完成注册,具体内容这里不再赘述。如果你觉得注册过程麻烦,也可以选择购买现成的账号,或者直接购买一个带额度的 API Key。

获取 OpenAI API Key

  1. 登录后,鼠标移动到页面左侧,你会看到一个弹出的侧边栏。

  2. 点击 Create new secret key 创建一个新的 API Key,为其命名,点击确定即可。

  3. 系统会弹出对话框,显示你创建的 Key,记得立即保存该 Key,因为一旦关闭对话框,你将无法再次查看该 Key。

完成保存后,点击 Done,就可以在该页面查看新创建的 API Key 了。

获取 API 使用额度

额度查询

点击侧边栏中的 Usage 进入使用页面。在该页面,左侧显示的是每日花费,右侧则显示了剩余额度。

额度查询
额度查询

Credit Grants 区域,显示了三种颜色:

  • 灰色:未使用

  • 绿色:已使用

  • 红色:已过期

只有在灰色区域,即未使用额度时,才能成功调用 API。

额度充值

点击侧边栏中的 Setting 下的 Billing 进入账单页面。在这里,你可以管理充值相关事项。

充值之前,需要先添加一种付款方式。点击 Payment methods 管理你的支付方式。由于国内的限制,Visa 卡可能无法使用。你可以选择使用国外的信用卡,或者使用虚拟信用卡。推荐使用 WildCard 虚拟信用卡,付款便捷,开卡费 $15.99,充值有 3.5% 的手续费,根据需求使用。

添加支付方式后,返回 Overview 页面,点击 Add to credit balance 进行充值。充值完成后,你可以在 Usage 页面查看可用额度的变化。

Python 使用测试

配置 Python

确保你使用的是 3.7.1 以上版本的 Python。为了方便管理,我使用了 Anaconda 创建了一个虚拟环境。

安装 OpenAI 库

你需要安装 OpenAI 的 Python 库,使用以下命令:

设置你的 API Key

OpenAI 默认会从环境变量中获取 OPENAI_API_KEY,作为 API Key。如果你不想每次都手动设置,可以通过以下两种方式来设置:

  1. 为所有项目设置在系统环境变量中添加 OPENAI_API_KEY

    • 在 Windows 上,可以按 Win 键搜索 “环境变量” 来打开相关设置界面。

    完成后,你可以使用命令行命令 echo %OPENAI_API_KEY% 来检查设置是否成功。

  2. 为单个项目设置在项目目录中创建一个 .env 文件(如果使用 Git,请确保将该文件添加到 .gitignore 中)。然后在文件中写入:

    OPENAI_API_KEY=你的Key
    

完成设置后,执行项目测试,确保没有报错。

发送请求测试

以下是一个简单的 GPT-3.5 请求示例:

import os
import dotenv
from openai import OpenAI

dotenv.load_dotenv()

client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))

response = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "system", "content": "你是一个富有创造力的编程助手,能够用诗意的方式解释复杂的编程概念。"},
        {"role": "user", "content": "请创作一首解释递归概念的诗。"}
    ]
)

print(response.choices[0].message.content)

Usage页面 上,你可以查看这次请求的花费和 token 数量。

功能介绍(Python为例)

文本生成(Text Generation)

可以理解语言(GPT-4 也能理解图像),并返回文字。以下是一个请求示例:

response = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "system", "content": "你是一个有用的助手。"},
        {"role": "user", "content": "2025年世界大赛的冠军是谁?"},
        {"role": "assistant", "content": "洛杉矶道奇队赢得了2025年世界大赛的冠军。"},
        {"role": "user", "content": "比赛在哪里举行?"}
    ]
)

主要的输入是 messages,它是一个消息对象的列表。每个消息对象包含 role(system、user 或 assistant)和 content(内容)。

  • system(可选):用于设置 AI 的行为;

  • user:AI 要回应的信息;

  • assistant:AI 之前的回复或自己的参考信息。

图像输入(Image Input)

GPT-4 的 vision 版本可以理解图像。你只需在 messages 中的 content 添加图像 URL,并传入参数 type="image_url"

以下是图像输入的示例:

图像输入
图像输入

输出是:

图像生成(Image Generation)

OpenAI 还支持图像生成。你可以使用 API 请求生成图片,并获取相应的图像链接。