【OpenAI】OpenAI API 使用指南

获取 OpenAI API Key

创建 OpenAI 账号

如果您曾经使用过 ChatGPT,那么您已经拥有 OpenAI 账号,可以直接使用。
如果没有账号,可以在这里注册。

由于国内网络限制,注册过程可能比较复杂。网上有很多教程可供参考,这里不再详细说明。
当然,您也可以选择在某些平台上购买账号,或直接获取有额度的 API Key。

获取 OpenAI API Key

登录后,将鼠标移动到页面左侧,会弹出一个侧边栏。
点击侧边栏中的“API Keys”进入 API Keys 页面。

API Key 管理
在这里可以管理(创建、删除等)所有的 API Key。

点击“Create new secret key”创建新 API Key,命名后点击确定即可。

在弹出的对话框中,会显示您创建的 Key,请务必立即保存,因为关闭对话框后将无法再次查看该 Key。
保存完成后点击 Done,您将在该页面看到新创建的 API Key。

获取 API 使用额度

额度查询

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

额度显示
在右侧的 Credit Grants 区域,分为三种颜色:灰色(未使用)、绿色(已使用)、红色(已过期)。只有未使用状态(灰色)下的额度,才能使 Key 成功调用 API。

额度充值

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

要进行充值,首先需要添加一种付款方式。点击 Payment methods 即可管理您的支付方式。

由于网络限制,国内的 Visa 卡可能无法使用,您可以尝试使用国外信用卡,或选择网络信用卡。我个人使用的是该卡:
👉 野卡 | 一分钟注册,轻松订阅海外线上服务,付款较为便捷,但开卡费为 15.99 美元,充值过程有 3.5% 的手续费,请根据需要使用。

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

Python 使用测试

配置 Python 环境

请确保 Python 版本为 3.7.1 以上。为了方便使用,我选择在 Anaconda 中创建一个虚拟环境。

安装 OpenAI 库

设置您的 API Key

OpenAI 默认会在环境变量中查找“OPENAI_API_KEY”,并使用其作为 OpenAI Key。设置 OpenAI Key 的方法如下:

  1. 为所有项目设置
    在系统环境变量中添加 OPENAI_API_KEY(可通过 Win 键搜索环境变量打开该页面)。
    系统环境变量
    完成后,可以通过命令行用 echo %OPENAI_API_KEY% 检查设置是否成功。

python
from openai import OpenAI

client = OpenAI()

  1. 为单个项目设置
    在项目文件夹中创建 .env 文件(如需使用 git 管理,请在 gitignore 中忽略),内容格式如下:

OPENAI_API_KEY=你的Key

plaintext
# 请务必保证您的 API Key 保密!
OPENAI_API_KEY=abc123

运行测试时,如无错误则表示成功。

如果希望使用其他环境变量名,可以修改如下:
python
client = OpenAI(
api_key=os.environ.get("CUSTOM_ENV_NAME"),
)

发送请求测试

我们可以进行一个简单的 GPT-3.5 Chat 请求:
python
import os
import dotenv
from openai import OpenAI

dotenv.load_dotenv()

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

发送请求

completion = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "你是一位善于解释复杂编程概念的艺术化助手。"},
{"role": "user", "content": "写一首解释编程递归概念的诗。"}
]
)

打印回复

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

现在您可以在 Usage 页面查看本次请求的费用、token 数量等信息(可能会有延迟)。

功能介绍(以 Python 为例)

文本生成

您可以使用 OpenAI API 生成文本信息。该功能可以理解语言(GPT-4 还可以理解图像)并返回相应的文字。

python
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "你是一个乐于助人的助手。"},
{"role": "user", "content": "2020 年世界大赛的冠军是谁?"},
{"role": "assistant", "content": "洛杉矶道奇队赢得了2020年的世界大赛。"},
{"role": "user", "content": "比赛是在什么地方进行的?"}
]
)

主要的输入是 messages,它是一个包含 message 对象的列表,message 对象由角色(system, user 或 assistant)和内容组成。

  • system(可选):用于设置 AI 的行为;
  • user:AI 要回应的信息;
  • assistant:之前 AI 回复的信息,提供给 AI 作为参考。

响应中会包含 finish_reason 字段:
- stop:API 返回信息已完成或触发了 stop 参数;
- length:达到 max_token 参数或模型的 token 限制;
- tool_call:模型决定调用工具;
- content_filter:由于内容过滤器,内容被隐藏;
- null:回复仍在进行中。

图像输入

GPT-4 版本可以理解图像。如果您希望向模型传递图像,请在用户消息的内容中添加 typeimage_url 的图像 URL。

可以同时添加多个图像,并通过 detail 参数控制模型如何处理图像。

  • 默认为 auto
  • low 时使用 512x512 的低质量图像;
  • high 时首先让模型查看低质量图像,然后将图像分成多个 512 的正方形逐个查看。

JSON 输出

若希望模型始终输出 JSON 对象,可以设置 response_format 参数。

在使用输出的 JSON 前,请务必检查 finish_reason,以确保 JSON 结果完整。

图像生成

OpenAI Logo

THE END