关于ChatGPT API的完整指南

1,588 阅读7分钟

像你这样的读者帮助支持MUO。当你使用我们网站上的链接进行购买时,我们可能会赚取联盟佣金。阅读更多。

通过发布其API,OpenAI向所有人开放了ChatGPT的功能。您现在可以将ChatGPT的功能无缝整合到您的应用程序中。

无论您是想将ChatGPT整合到您现有的应用程序中,还是想用它来开发新的应用程序,都可以按照以下的初始步骤来开始。

获取OpenAI的API密钥

要开始使用ChatGPT的API,您首先需要获得OpenAI的API密钥。注册或登录到OpenAI官方平台。

登录后,点击右上方的个人标签。从下拉菜单中选择 "查看API密钥"选项,你就会登陆到API密钥页面。点击创建新的秘密密钥按钮,生成API密钥。

你将不能再查看该密钥,所以要把它保存在安全的地方。

本项目中使用的代码可在GitHub仓库中找到,在MIT许可下,你可以免费使用。

如何使用ChatGPT API

OpenAI API的gpt-3.5-turbogpt-4模型是ChatGPT和ChatGPT+分别使用的模型。这些强大的模型能够理解和生成自然语言文本。

请注意,ChatGPT API是一个通用术语,指的是使用基于GPT模型开发聊天机器人的OpenAI API,包括gpt-3.5-turbogpt-4模型。

ChatGPT API主要为聊天而优化,但它也能很好地用于文本完成任务。gpt-3.5-turbogpt-4型号比之前的GPT-3型号更强大,更便宜。然而,截至发稿时,你不能对GPT-3.5型号进行微调。你只能对GPT-3的基本型号进行微调,即DAVINCICURIEADACABAGE

截至发稿时,GPT-4 API还在等待名单上。但GPT-3.5模型是每个人都可以使用的,所以我们将在本文中使用同样的模型。虽然,你现在就可以通过升级到ChatGPT+来使用GPT-4

使用ChatGPT API来完成聊天

您需要配置聊天模型,使其为API调用做好准备。在一个例子的帮助下,可以更好地理解这一点:

import openai openai.api_key = "YOUR_API_KEY" completion = openai.ChatCompletion.create(   model = "gpt-3.5-turbo",   temperature = 0.8,   max_tokens = 2000,   messages = [     {"role": "system", "content": "You are a funny comedian who tells dad jokes."},     {"role": "user", "content": "Write a dad joke related to numbers."},     {"role": "assistant", "content": "Q: How do you make 7 even? A: Take away the s."},     {"role": "user", "content": "Write one related to programmers."}   ] ) print(completion.choices[0].message)

运行这段代码会产生以下输出:

上面的代码演示了一个使用Python的ChatGPT API调用。请注意,模型能够理解上下文("爸爸的笑话")和我们所期望的响应类型(问答形式),即使我们在最后的用户提示中没有明确提到它。

因此,在构建应用程序时,你可以提前提供上下文,模型会相应地适应你的要求。

这里,最重要的部分是消息参数,它接受一个消息对象的数组。每个消息对象包含一个角色内容。你可以为消息对象提供三种类型的角色:

  • 系统:它设定了助手的上下文和行为。
  • 用户:它用于向助手发出指令。它通常是由终端用户产生的。但你作为开发者也可以事先提供一些潜在的用户提示。
  • 助理:我们事先向助理提供一些信息,以便它给我们提供我们期望的API的响应。

你可以进一步定制模型的温度max_tokens参数,根据你的要求获得输出。

温度越高,输出的随机性越大,反之亦然。如果你希望你的反应更加集中和确定,就选择较低的温度值。而如果你想让它更有创造性,就选择更高的值。温度值在0到2之间。

与ChatGPT一样,其API也有字数限制。使用max_tokens参数来限制响应的长度。然而,设置一个较低的max_tokens值可能会引起潜在的问题,因为它可能会中途切断输出。截至目前,gpt-3.5-turbo模型的token限制为4,096,而gpt-4模型的限制为8,192 tokens。

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

使用ChatGPT API进行文本完成

除了聊天完成任务,gpt-3.5-turbo模型在文本完成方面也做得不错。它的性能超过了之前的text-davinci-003模型,而且价格只有其十分之一。

下面的例子演示了你如何配置ChatGPT API来完成文本:

import openai openai.api_key = "YOUR_API_KEY" completion = openai.ChatCompletion.create(   model = "gpt-3.5-turbo",   temperature = 0.8,   max_tokens = 2000,   messages = [     {"role": "system", "content": "You are a poet who creates poems that evoke emotions."},     {"role": "user", "content": "Write a short poem for programmers."}   ] ) print(completion.choices[0].message.content)

你甚至不需要提供系统角色和其内容。只提供用户提示就能为你完成工作。

messages = [   {"role": "user", "content": "Write a short poem for programmers."} ]

运行上述代码将为程序员生成一首诗:

ChatGPT API的响应格式

ChatGPT API会以以下格式发送响应:

你进一步需要提取存储在内容中的助手的回复。

使用ChatGPT API构建应用程序

你可以直接使用API端点或openaiPython/Node.js库来开始构建ChatGPT API驱动的应用程序。除了官方的openai库,你也可以使用OpenAI推荐的社区维护的库来开发应用程序。

然而,OpenAI并没有验证这些社区维护的库的安全性,所以最好直接使用API端点或使用官方openaiPython/Node.js库。

方法1:使用API端点

你需要使用**/v1/chat/completions端点来利用gpt-3.5-turbogpt-4**模型。

import requests openai.api_key = "YOUR_API_KEY" URL = "https://api.openai.com/v1/chat/completions" payload = {   "model": "gpt-3.5-turbo",   "temperature" : 1.0,   "messages" : [     {"role": "system", "content": f"You are an assistant who tells any random and very short fun fact about this world."},     {"role": "user", "content": f"Write a fun fact about programmers."},     {"role": "assistant", "content": f"Programmers drink a lot of coffee!"},     {"role": "user", "content": f"Write one related to the Python programming language."}   ] } headers = {   "Content-Type": "application/json",   "Authorization": f"Bearer {openai.api_key}" } response = requests.post(URL, headers=headers, json=payload) response = response.json() print(response['choices'][0]['message']['content'])

上面的示例代码演示了你如何直接使用端点来使用请求库进行API调用。

首先,将API密钥分配给一个变量。接下来,你需要提供模型名称给payload对象的模型参数。之后,我们将对话历史提供给消息参数。

在这里,我们保持了一个较高的温度值,这样我们的响应就更加随机,从而更有创意。

下面是响应的输出:

注意,OpenAI的ChatGPT存在一些问题,所以你可能也会从它的API中得到攻击性或有偏见的回复。

方法2:使用官方的openai库

使用pip安装openaiPython库:

pip install openai

现在,你已经准备好生成文本或聊天内容了。

import openai openai.api_key = "YOUR_API_KEY" response = openai.ChatCompletion.create(   model = "gpt-3.5-turbo",   temperature = 0.2,   max_tokens = 1000,   messages = [     {"role": "user", "content": "Who won the 2018 FIFA world cup?"}   ] ) print(response['choices'][0]['message']['content'])

在这段代码中,我们只提供了一个用户提示。我们把温度值保持得很低,以使响应更具有确定性而不是创造性。

运行该代码后,你会得到以下响应:

ChatGPT的响应可能看起来很神奇,会让人怀疑ChatGPT的工作原理。但在幕后,它是由生成性预训练转化器(GPT)语言模型支持的,它完成了所有繁重的工作。

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

你学会了如何配置ChatGPT API。ChatGPT API为你和世界各地的开发者打开了大门,利用人工智能的力量构建创新产品。

你可以使用这个工具来开发故事编写者、代码翻译者、电子邮件编写者、营销副本生成者、文本总结者等应用。你的想象力是利用这项技术构建应用程序的极限。

除了ChatGPT API之外,你还可以使用其他OpenAI模型来开发很酷的应用程序。