如何使用 ChatGPT API

核心要点

  • OpenAI 推出了 ChatGPT API,这使得开发者能够将 ChatGPT 的强大功能整合到他们的应用之中。
  • 开始使用,你需要一个 OpenAI API 密钥,并准备好包含官方库的开发环境。
  • 通过 ChatGPT API,你可以执行对话补全和文本补全任务,为各种应用场景开启了无限可能。

随着API的发布,OpenAI 将 ChatGPT 的功能开放给更广泛的受众。 现在,你可以轻松地将 ChatGPT 的功能嵌入到你的应用程序中,实现无缝集成。

无论你的目标是将 ChatGPT 集成到现有应用中,还是利用它来开发全新的应用,以下步骤都将帮助你快速上手。

1. 获取 OpenAI API 密钥

要开始使用 ChatGPT API,首要任务是获取一个 API 密钥。

  • 前往官方 OpenAI平台,注册或登录你的账户。
  • 登录后,在左侧边栏中找到“API 密钥”选项并点击。
  • 接下来,点击“创建新密钥”按钮,系统将为你生成一个新的 API 密钥。
  • 请注意,API 密钥只会显示一次,因此请务必复制它并妥善保管。

本指南使用的代码示例可以在 GitHub 仓库 中找到,并以 MIT 许可证免费提供。

2. 搭建开发环境

你可以直接使用 API 端点,或者借助 openai Python/JavaScript 库来构建基于 ChatGPT API 的应用。本指南将使用 Python 和 openai-python 库。

具体步骤如下:

  • 创建 Python 虚拟环境。
  • 使用 pip 安装 openai 和 python-dotenv 库:
    pip install openai python-dotenv
  • 在项目根目录下创建一个名为 .env 的文件,用于安全地存储你的 API 密钥。
  • 在该文件中,设置 OPENAI_API_KEY 变量,并将之前复制的密钥粘贴到等号后面:
    OPENAI_API_KEY="YOUR_API_KEY"

为了避免意外泄露你的 API 密钥,请确保不要将其提交到版本控制系统。 你可以在项目的根目录下创建一个 .gitignore 文件,并将 “.env” 添加到其中,以忽略 dotenv 文件。

3. 发出 ChatGPT API 请求

OpenAI API 的 GPT-3.5 Turbo、GPT-4 和 GPT-4 Turbo 模型与 ChatGPT 使用的模型相同。 这些模型具有强大的自然语言理解和生成能力,还可以生成代码。 GPT-4 Turbo 甚至可以处理图像输入,这为图像分析、文档解析和文本转录等任务开辟了新的可能性。

需要注意的是,ChatGPT API 是一个通用术语,指的是基于 GPT 模型的 OpenAI API,包括 gpt-3.5-turbo、gpt-4 和 gpt-4-turbo 模型。

ChatGPT API 主要针对对话场景进行了优化,但也适用于文本补全任务。 无论你的目标是生成代码、翻译语言,还是起草文档,这个 API 都能满足你的需求。

要访问 GPT-4 API,你需要成功支付 1 美元或以上的费用。 否则,你可能会收到诸如 “模型 ‘gpt-4’ 不存在或你无权访问它” 的错误提示。

使用 API 完成聊天

为了使聊天模型能够响应 API 调用,你需要进行相应的配置。 下面是一个简单的示例:

from openai import OpenAI
from dotenv import load_dotenv

load_dotenv()
client = OpenAI()

response = client.chat.completions.create(
    model = "gpt-3.5-turbo-0125",
    temperature = 0.8,
    max_tokens = 3000,
    response_format={ "type": "json_object" },
    messages = [
        {"role": "system", "content": "你是一个幽默的喜剧演员,擅长讲老爹笑话。输出应为 JSON 格式。"},
        {"role": "user", "content": "写一个关于数字的老爹笑话。"},
        {"role": "assistant", "content": "问:怎样使 7 变成偶数?答:把 s 去掉。"},
        {"role": "user", "content": "写一个关于程序员的笑话。"}
    ]
)

ChatGPT API 返回的响应格式如下:

你可以使用以下代码从响应中提取 JSON 格式的内容:

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

运行上述代码,你将得到如下输出:

这段代码演示了如何使用 Python 调用 ChatGPT API。 可以看到,该模型能够根据我们提供的提示,理解我们期望的上下文(“老爹笑话”)和响应类型(问答形式)。

配置中最关键的部分是 messages 参数,它接收一个消息对象数组。每个消息对象都包含一个角色(role)和内容(content)。 你可以使用以下三种角色:

  • 系统(system):用于设置助手的上下文和行为。
  • 用户(user):用户向助手发出的指令。 最终用户通常会提供这些信息,但你也可以提前设置一些默认的用户提示。
  • 助手(assistant):用于提供示例响应。

你可以通过调整 temperature 和 max_tokens 参数来进一步自定义模型的输出,使其更符合你的需求。

temperature 值越高,输出的随机性越高,反之亦然。 如果你希望响应更加集中和确定,请选择较低的 temperature 值;如果你希望输出更具创造性,请使用较高的值。 temperature 值的范围在 0 到 2 之间。

与 ChatGPT 类似,API 也存在字数限制。你可以使用 max_tokens 参数来限制响应的长度。 需要注意的是,设置过低的 max_tokens 值可能会导致输出被截断。

在撰写本文时,gpt-3.5-turbo 模型的令牌限制为 4,096,而 gpt-4 的令牌限制为 8,192。 最新的 gpt-3.5-turbo-0125 和 gpt-4-turbo-preview 型号的限制分别为 16,385 和 128,000。

应开发人员的要求,OpenAI 引入了 JSON 模式,指示模型始终返回 JSON 对象。 你可以通过将 response_format 设置为 {“type”: “json_object”} 来启用 JSON 模式。 此功能目前仅适用于最新型号:gpt-3.5-turbo-0125 和 gpt-4-turbo-preview。

你可以使用 OpenAI 文档中提供的其他参数进一步配置模型。

使用 ChatGPT API 完成文本

除了对话任务之外,聊天补全 API(即 ChatGPT API)在文本补全方面也表现出色。 以下示例演示了如何配置 ChatGPT API 来完成文本:

from openai import OpenAI
from dotenv import load_dotenv

load_dotenv()
client = OpenAI()

response = client.chat.completions.create(
    model = "gpt-3.5-turbo",
    temperature = 0.8,
    max_tokens = 3000,
    messages = [
        {"role": "system", "content": "你是一位能够引发情感的诗人。"},
        {"role": "user", "content": "为程序员写一首短诗。"}
    ]
)

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

你甚至不需要提供系统角色及其内容。 只需要提供用户提示即可完成任务。

messages = [
    {"role": "user", "content": "为程序员写一首短诗。"}
]

运行上述代码,将会生成一首关于程序员的诗,例如:

ChatGPT API 定价

ChatGPT API 的定价基于“每 1,000 个令牌的价格”模型。 对于聊天补全请求,成本由输入令牌的数量加上 API 返回的输出令牌数量计算得出。 简单来说,令牌相当于单词的片段,其中 1,000 个令牌大约等于 750 个单词。

模型

输入

输出

gpt-4-0125-预览

$0.01 / 1K 令牌

$0.03 / 1K 令牌

gpt-4-1106-预览

$0.01 / 1K 令牌

$0.03 / 1K 令牌

gpt-4-1106-视觉预览

$0.01 / 1K 令牌

$0.03 / 1K 令牌

GPT-4

$0.03 / 1K 令牌

$0.06 / 1K 令牌

gpt-4-32k

$0.06 / 1K 令牌

$0.12 / 1K 令牌

GPT-3.5-turbo-0125

$0.0005 / 1K 令牌

$0.0015 / 1K 令牌

gpt-3.5-turbo-指令

$0.0015 / 1K 令牌

$0.0020 / 1K 令牌

请注意,随着模型的不断改进,定价可能会随时间变化。

使用 ChatGPT API 构建下一代应用程序

ChatGPT API 为世界各地的开发者打开了大门,使他们能够利用人工智能的力量构建创新产品。

你可以使用这个工具开发故事编写器、代码翻译器、营销文案生成器、文本摘要器等各种应用。 你的想象力是使用这项技术构建应用程序的唯一限制。