OpenAI API 简介
OpenAI API 是一种开放的应用程序编程接口,开发者可以通过它访问 OpenAI 开发的 ChatGPT 模型。ChatGPT API 是 OpenAI API 的一个具体实现,基于 ChatGPT 模型提供人工智能服务接口。通过 ChatGPT API,开发者可以构建各种对话应用程序,如聊天机器人、虚拟助手等,从而提升应用程序的自然语言处理能力。
OpenAI 提供了两种相似的 API:ChatCompletion 和 Completion。ChatCompletion 的底层模型是 GPT-3.5 和 GPT-4.0,而 Completion 的底层模型是 text-davinci-003。那么在实际开发中,应该选择哪个接口呢?
OpenAI 官方建议使用 GPT-4 或 GPT-3.5-turbo,具体选择取决于任务的复杂程度。GPT-4 在各种评估中表现更优,尤其是在遵循复杂指令方面。相比之下,GPT-3.5-turbo 可能只执行复杂指令的一部分。此外,GPT-4 更不容易产生“幻觉”行为,且上下文窗口更大(最多 8192 个标记),而 GPT-3.5-turbo 的上下文窗口为 4096 个标记。然而,GPT-3.5-turbo 的输出延迟更低,且每个标记的成本更低。因此,在开发中,ChatCompletion 通常是首选接口。本文将基于 ChatCompletion 接口进行介绍。
OpenAI 接口的基本收费标准
OpenAI 的接口收费标准分为两种情况:一种是针对网页版会话的普通用户,另一种是通过 API 调用模型的开发者。对于开发者,API 调用费用的核心计算方式基于“token”的数量。这里的“token”指的是分解单元,中文大致等同于一个词。需要注意的是,OpenAI 会根据用户存储的信息和使用量进行收费。例如,ChatGPT 提供了一定数量的 API 调用额度,如果超出套餐额度,则需按照每 100 万个 API 调用收费 2 美元的标准计费。因此,在调用时需注意 token 的使用量。
下图是 OpenAI 官方给出的 GPT-3.5 Turbo 和 GPT-4 的 API 调用收费标准(数据获取时间为 2023 年 11 月 1 日):
ChatGPT API 接口使用
要调用 ChatGPT API 接口,您需要完成以下步骤:
-
注册 OpenAI 账号并获取 API 密钥:API 密钥可以在 OpenAI 官网的 API Keys 处获取。请注意,API 密钥只能在官网上显示一次,之后无法再查询和复制。同时,记得在 Billing 中设置好银行卡以确定付款方式,否则无法成功调用 API。
-
选择编程语言:根据您的需求和应用场景,选择合适的编程语言(如 Python、JavaScript、Java 等)进行 API 调用。
-
安装必要的库或模块:根据所选编程语言,安装必要的库或模块,以便在代码中发起 HTTP 请求。
-
编写代码:根据官方文档配置 API 请求参数,如输入文本、生成文本长度等。在代码中加入您的 API 密钥,以进行身份验证。
-
发起 API 请求:运行编写好的代码,发起 API 请求。成功调用后,ChatGPT 将返回相应的结果,如生成的文本或情感分析结果等。
-
处理 API 响应:对 API 返回的结果进行处理,并将其集成到您的应用、网站或服务中。
以下是一个使用 Python 调用 ChatGPT API 接口的简单示例:
python
import openai
Basic chatting
messages = [
{“role”: “system”, “content”: “You give very short answers”},
{“role”: “user”, “content”: “How are you today today?”},
]
openai.api_key = OPENAI_API_KEY
response = openai.ChatCompletion.create(
model=GPT_MODEL,
messages=messages
)
print(response)
简单说明一下,messages
主要包含用户对 GPT 的指示以及提出的问题。其中,role: system
指的是给 GPT 的系统提示,包含用户对 GPT 回复的总体要求。在这个例子中,要求 GPT 以尽可能短的方式回答问题(主要是为了减少 token 的使用量,节省成本)。而 role: user
则代表我们向 GPT 提出的问题或目标,这里简单地向 GPT 问好。
将模型和 messages
定义好后,使用 ChatCompletion
生成回复。返回结果如下:
json
{
“id”: “chatcmpl-84cWIIkggMl6kl48XeZQJBNv4wLar”,
“object”: “chat.completion”,
“created”: 1696112074,
“model”: “gpt-3.5-turbo-0613”,
“choices”: [
{
“index”: 0,
“message”: {
“role”: “assistant”,
“content”: “I am fine.”
},
“finish_reason”: “stop”
}
],
“usage”: {
“prompt_tokens”: 22,
“completion_tokens”: 4,
“total_tokens”: 26
}
}
GPT 会返回一个 JSON 格式的对象,其中包含调用的基本信息(如 ID、模型、API 类型),以及回复信息和 token 使用情况。GPT 的回复在 choices
的 messages
中,可以使用 response["choices"][0]["message"]["content"]
提取信息。
注意事项
在使用 ChatGPT API 接口时,需要注意以下几点:
-
优化输入:为了获得最佳效果,需要根据您的需求精心设计输入提示。明确指示您希望获得的回答或建议,以提高生成的文本质量。
-
处理输出:在处理 API 的响应时,注意检查输出文本的质量和可用性。您可以通过预处理和后处理步骤优化输出,例如过滤敏感内容、删除无关信息等。
-
限制使用:由于 API 访问权限可能受到限制,需要密切关注您的 API 使用情况,以确保不超出配额。您可以通过 API 控制台查看调用次数、使用量、错误率等统计数据,并根据这些数据优化应用程序的性能和 API 的使用效率。
-
错误处理:在开发过程中,务必确保妥善处理 API 可能返回的错误,例如请求超时、无效的 API 密钥等。为应对这些错误,您可以设计相应的异常处理机制,提高程序的稳定性。
-
保持更新:由于 ChatGPT 可能会进行更新和优化,建议您定期关注官方发布的更新信息,以便及时了解新功能和性能改进。同时,也需注意 API 版本变更可能带来的兼容性问题。
ChatGPT API 接口的应用场景
ChatGPT API 可用于各种应用场景,包括但不限于:
- 聊天机器人:通过 ChatGPT API,开发者可以构建智能的聊天机器人,实现自然、流畅、智能的对话。
- 虚拟助手:将 ChatGPT API 集成到虚拟助手应用中,可以帮助用户解答问题、提供建议等。
- 智能客服:利用 ChatGPT API 提供高效的客服支持,回答用户的问题并解决问题。