为了调用ChatGPT API,我们需要构建适合的调用环境。在本节中,我们将使用curl工具来构建学习和测试HTTP请求的环境。curl是一个功能强大的命令行工具,它能够发送HTTP请求并接收响应,非常适合用于与ChatGPT API进行交互。
在日常工作中使用浏览器来访问网页,这实际上是向远程服务器发送HTTP请求,服务器接收到请求后返回相应的资源,然后浏览器将其展示给我们。为了更好地理解ChatGPT API的调用方式,接下来将介绍HTTP请求的流程和方法。
1. HTTP请求流程
图3-1所示为HTTP请求响应流程。HTTP 请求是指从客户端(如浏览器)到服务器的请求消息,为了理解HTTP请求,需要了解以下几个重要概念。
图3-1 HTTP请求响应流程
(1)URL(统一资源定位符)。URL用于指定资源的位置,以便客户端能够定位并请求该资源。一个典型的URL由协议(如HTTP)、域名(如www.example.com)、端口(可选,如80)和路径(如/index.html)组成。
(2)HTTP 请求方法。HTTP请求中包含一个表示操作类型的方法,常见的HTTP方法如表3-1所示。
表3-1 HTTP请求方法
(3)HTTP请求消息头。HTTP请求包含一些元数据,这些元数据以键值对的形式存储在请求头中。请求头提供了有关客户端、服务器和请求本身的信息。
(4)HTTP请求主体。对于某些HTTP方法(如POST、PUT和PATCH),请求主体中包含了需要发送给服务器的数据。请求主体的格式可以是多种多样的,如表单数据、JSON、XML等。
2.一个HTTP请求示例
图3-2 下载适合Windows平台的curl工具
通过使用curl工具发起HTTP请求,读者可以详细了解HTTP的请求过程,并为后续演示调用ChatGPT API做好准备。
(1)下载curl工具。从curl官网下载适用于操作系统的curl版本。对于Windows平台用户,可以下载包含curl可执行文件的压缩包,如图3-2所示。
(2)配置环境变量。解压缩下载的curl压缩包到合适目录,将curl解压目录中bin文件路径信息配置到“环境变量”中的“Path”变量中。配置完毕后,打开“Power Shell”或“CMD”控制台工具,输入“curl.exe --help”命令,如可以正常输出信息,说明配置成功可以正常使用。
(3)发起HTTP请求。在“Power Shell”或“CMD”控制台中,可以输入以下测试命令,向本地测试API发起HTTP请求。
发起请求响应的数据如下:以“*”开头的行是curl自动添加的辅助信息,以“>”开头的行表示请求信息,以“<”开头的行表示响应信息。在响应信息的最下方是返回的数据,本测试API返回的是JSON格式数据。
为了更好地调用ChatGPT API,本节将介绍JSON数据格式,该格式在ChatGPT API的请求数据和响应数据中均有使用。
1. JSON是什么
JSON是一种轻量级的数据交换格式,它的设计原则是易于阅读和编写,并且方便机器解析和生成。JSON格式被广泛应用于不同系统之间的数据交换,如前后端之间的数据传输及各种API的返回数据。
下面是一个JSON格式数据的示例,JSON数据具有自我描述性,即使对JSON不熟悉的人,也可以猜测出以下JSON数据表达的意义。
2. JSON数据的结构
JSON数据的结构是由一组键值对构成的集合,它们按顺序排列,并被大括号{}包围。每个键值对之间用逗号分隔。在下面的JSON数据中,name、age和isMarried是键,键必须是字符串类型。而对应的值为张三、25和true,值可以是字符串、数字、对象、数组等不同的数据类型。
JSON对象用大括号{}表示,而JSON数组用方括号[]表示。这两种结构可以相互嵌套。下面是一个示例的JSON数据,其中联系方式的键"contact number"对应的值是一个对象类型的数据。
目前最成熟且最常用的GPT版本是GPT-3.5和GPT-4。它们是由一系列模型组成的集合,每个模型都能完成不同的功能。
1. GPT模型
表3-2列出了GPT-3.5和GPT-4中部分常用模型的信息。对于许多基本任务而言,GPT-4和GPT-3.5之间的差异并不明显。然而,在更复杂的推理情境下,GPT-4展现出了超越以往任何模型的能力。
表3-2 GPT-3.5和GPT-4部分常用模型
续表
2.对外开放的API
并非所有模型都提供可调用的API接口,而且其中一些API也并非完全开放,需要付费才能使用。表3-3中列举了一些开放的API的相关信息。
表3-3 部分开放的API
ChatGPT API允许开发人员将功能强大的语言模型ChatGPT无缝集成到他们自己的应用程序、产品或服务中。通过ChatGPT API,提供了各种参数和选项,可以对ChatGPT模型的行为进行定制。
1.模型信息
OpenAI发布了不同的版本模型,如gpt-3.5-turbo、text-davinci-003等。每个版本的性能特征略有不同,以下介绍可查询模型信息的API。
(1)查看可用模型的API
(2)查看模型信息API
2.内容补充和对话
ChatGPT可基于语境上下文对提示内容进行补充,或以对话的方式进行应答,下面将介绍ChatGPT中与提示补充和对话应答相关的API。
(1)提示补充API
(2)提示对话API
3. API参数
不同的GPT模型可能因其能力和配置方式的不同而具有不同的请求体参数。某些模型可能会提供额外的参数,用于控制生成文本的风格或语气,而其他模型可能会提供参数,用于对特定任务或领域进行模型微调。表3-4详细说明了能够改变模型输出结果的参数。
表3-4 API参数