我们可以在任何的 HTTP 客户端请求使用 OpenAI 提供的接口,比如可以在 Insomnia 上测试一下。新建一个请求,方法选择使用 POST,请求一下 OpenAI 提供的 completions 这个接口,地址是 https://api.openai.com/v1/completions。
直接发送一下这个请求,返回的结果状态码是 401,表示未授权,我们需要在请求里配置一下身份验证,需要提供 OpenAI 提供的接口密钥。
这个 API key 可以在 OpenAI 的账户管理页面上找到,打开这个 View API Keys ,点击 Create new secret key,后成一个新的密钥。
复制一下这个密钥,回到 HTTP 客户端,配置一下身份验证,类型可以选择 Bearer Token,然后在 Token 这里把复制的密钥粘贴到这里。
再重新发送一下这个请求,这次就不会提示未提示接口密钥了。在请求里配置了 Bearer Token ,在发送请求的时候,就相当于是在请求里面添加了一个名字是 Authorization 的头部数据,对应的值是 Bearer 空格,然后是 OpenAI 的密钥。这样 OpenAI 的接口那里就可以根据这个密钥,判断出当前请求它的用户是谁了。
这次请求得到的响应的状态码是 400,在错误信息里提示我们要提供一个模型参数。
修改一下请求,配置一个请求主体,类型选择 JSON,准备一个 JSON 格式的数据,在数据里面添加一个 model ,对应的值就是要使用的模型的名字,你可以参考 OpenAI 的文档,查看可以使用的模型,不同的模型的表现还有功能可能不太一样,另外价格也不一样。
这里我们先用一下 text-davinci-003 ,它是 GPT3 系列模型里的其中的一个。之前我们在 OpenAI 的 palyground 里面测试的时候用的就是这个模型。
再添加一个 prompt ,设置一下要交给模型处理的提示文本,比如“写一首描述春天的诗歌”。
然后再添加一个 temperature ,设置一下模型的胆子大小,也就是模型生成的结果的多样性,把它设置成一个 0 到 1 之间的数字,比如 0.7 。然后用 max_tokens 限制一下最大允许的 token 数量 ,比如 256。
再发送一下请求,这次请求 OpenAI 接口的时候就会得到了一个正确的响应了。
上面会说明使用的模型,还有时间戳,choices 里面有一些结果,我这里只有一个结果,这个结果里的 text 属性的值,就是模型处理了 prompt 以后生成的具体的文本。
另外这个响应里面的 usage 属性里面包含了用量相关的数据,prompt_tokens 是这次请求的时候 prompt 消耗的 token 数量,completion_tokens 是 completion 消耗的 token 数量。total_tokens 是总共消耗的 token 数量。