OpenAI API 学习笔记
February 11th, 2025

获取 OpenAI API Key

注册 OpenAI 账号

如果您之前使用过 ChatGPT,那么 ChatGPT 的账号即为 OpenAI 账号,您可以直接使用。如果没有账号,可以在官网注册。

由于国内的网络限制,注册过程可能会比较复杂。网上有许多注册教程可供参考,您也可以选择在某些平台购买账号,或者直接购买一个有额度的 API Key。

获取 OpenAI API Key

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

点击侧边栏中的“API Keys”进入 API Keys 页面。在这里,您可以管理(创建、删除等)所有的 API Key。

点击“Create new secret key”创建新 API Key,进行命名并确认。此时会弹出一个对话框,包含您创建的 Key,请务必立即保存,因为关闭对话框后将无法再次查看该 Key。

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

获取 API 使用额度

额度查询

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

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

额度充值

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

要充值,首先需要添加一种付款方式,点击 Payment methods 进行管理。由于网络限制,国内的 Visa 卡可能无法使用,您可以尝试使用国外的卡,或者使用网络卡。

添加支付方式后,回到 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 键搜索环境变量即可打开该页面)。添加完成后,可以打开 cmd,使用 echo %OPENAI_API_KEY% 检查是否设置成功。

    python from openai import OpenAI

    client = OpenAI()

  2. 为单个项目设置 在项目文件夹中创建 .env 文件(若要用 git 进行管理,请使用 gitignore 忽略),输入 OPENAI_API_KEY=(您的 Key)

    plaintext

    Once you add your API key below, make sure to not share it with anyone! The API key should remain private.

    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": "You are a poetic assistant, skilled in explaining complex programming concepts with creative flair."}, {"role": "user", "content": "Compose a poem that explains the concept of recursion in programming."} ] )

打印回复

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": "You are a helpful assistant."}, {"role": "user", "content": "Who won the world series in 2020?"}, {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, {"role": "user", "content": "Where was it played?"} ] )

主要的输入是 messages,它是一个 message 对象的列表。每个 message 对象由 role(system、user 或 assistant)和 content 组成。一般来说,对话都是由一个 system 信息开头,然后跟着数个 user 或 assistant 信息。

  • system(可选):用于设置 AI 的行为,如个性或对话过程中的行为指示;

  • user:AI 要回应的信息;

  • assistant:之前 AI 回复的信息,也可以自己写,以给 AI 预期输出的参考。

每个回复中都有 finish_reason

  • stop:API 返回信息已完成,或触发了 stop 参数传入的 stop sequence;

  • length:到达了 max_token 参数或模型的 token 限制;

  • tool_call:模型决定调用工具;

  • content_filter:由于内容过滤器,内容被隐藏;

  • null:还没完成。

图像输入

GPT-4 的 vision 版本可以理解图像。在 user message 的 content 中,添加 type 为 image_url 的图像 URL 即可。

您可以同时添加多个图像。

JSON 输出

若想让模型永远输出 JSON 对象,可以将 response_format 设置为 { "type": "json_object" }

  • 要使用 JSON 模式,一定要在 Prompt 中指示模型生成 JSON(比如在 system 信息中)。

  • 在使用输出的 JSON 前先检查 finish_reason,若是 length 则 JSON 结果是被剪裁的,不能使用。

图像生成

👉 野卡 | 一分钟注册,轻松订阅海外线上服务

Subscribe to xiaosu
Receive the latest updates directly to your inbox.
Nft graphic
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.
More from xiaosu

Skeleton

Skeleton

Skeleton