申请
准备工作,申请 OpenAI API keys 首先需要准备三件套:
1. VPN(登录Google和OpenAI)
2. Google Gmail 邮箱账号
3. 国外手机(接收验证码,可用接码平台代替)
接下来,开启申请 OpenAI API keys 之旅。
首先,开启 VPN 全局代理模式,同时将代理服务器的地址改为香港以外的国家,这样避免了类似 “OpenAI’s services are not available in your country.” 的地区限制。然后访问 OpenAI API 网页,如下图所示
单击 “Log in” 按钮,选择 Google 邮箱账号登录,即 Continue with Google,如下图所示
登录后,进入 OpenAI 注册界面,如下图所示
填写姓名和生日,即 First name, Last name and Birthday,单击 Continue 按钮,进入验证手机号码页面,如下图所示
这里需要填写可以接收短信验证码的国外手机号码,也可以用 SMS-Activate 接码平台 提供的国外手机号接收验证码,需要注意的是,注册接码平台不要使用临时邮箱,避免因为遗忘密码造成损失。 SMS-Activate 接码平台 的一次性国外手机号的激活有效时长是20分钟,只有在接收到短信验证码才产生费用,因此无需担心多次尝试而导致的过高费用。具体参见 SMS-Activate官方网站文档-注册ChatGPT详细指南。
填写手机号码后,点击 Send code,发送短信验证码。这里也是最容易出现各种问题的地方,此时只要没有出现类似 “Your account was flagged for potential abuse. If you feel this is an error, please contact us at help.openai.com” 的提示信息,那你已经接近注册成功,否则只能更换注册邮箱或不同国家的手机号码,多试几次,注意不要连续尝试,过段时间再试,否则即使开始没有之前的提示信息,连续尝试失败后,也会出现“Your account was flagged for potential abuse. If you feel this is an error, please contact us at help.openai.com” 提示。
剩下的就是填写短信验证码,等待注册成功信息。短信验证完成后,会询问使用 OpenAI 的主要用途,如下图所示
在这里,随便选择一项就可以。恭喜你,看到这个问题,表明你已经成功注册了 OpenAI 。
接下来,就可以在 OpenAI API 网页上,通过点击 “+ Create new secrete key” 按钮创建 API keys,如下图所示:
上图中,我已经创建了 2 个 API keys。需要注意的是 API keys 只在创建时完整显示,只能此时复制粘贴或截图保存。OpenAI API keys 创建完成后,无法查看和修改。如果想要使用,只能再重新创建一个 API key,OpenAI API keys 的数量虽然没有限制,但可使用的总的免费额度是有限的。免费的试用额度情况可通过点击左侧栏内 Usage 进行查看,如下图所示:
测试
下面进行的是 Chat Completion 测试 OpenAI API , 具体采用两种方法,一种是 curl 命令,另一种是 Python 程序代码。下面分别介绍:
curl 命令
本人使用的 Windows 系统 git bash 自带 curl 应用程序,当然,也可使用 Linux curl 命令。为了使用方便,首先,通过 export 命令 export OPENAI_API_KEY="Your OpenAI API Key" 设置 OPENAI_API_KEY 环境变量(注意,以这种方式设置的环境变量,只在当前会话有效),然后使用 curl 命令访问 OpenAI API,具体 curl 命令如下:
curl --http1.1 https://api.openai.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{ "model": "gpt-3.5-turbo", "messages": [{"role": "user", "content": "Say this is a test!"}] }'
输出结果,如下图所示
解释说明:
curl 命令中, --http1.1 选项表示使用 HTTP 1.1,注意, http 与 1.1 之间没有空格;
-H 选项,即 --header 选项,用于向服务器传递定制头信息(Pass custom header(s) to server);
-d 选项,即 --data 选项,用于传递 POST data;
上面的 curl 命令(HTTP POST 请求)向 OpenAI API 服务器发送的数据是 Json 字典格式数据,这个数据必须至少包含 2 个参数,即 "model" 和 "messages",分别表示请求使用的模型和描述对话的信息列表。"messages" 列表中的每一项是一个字典类型数据,如 {"role": "user", "content": "Say this is a test!"},在这个字典中,"role" 表示对话信息作者的角色,说白了,就是这句话是谁说的,对话角色目前只有三种:"user"、"assistant" 和 "system",分别表示用户、助理(AI)和系统;"content" 表示信息的具体内容。
Python 程序代码
通过 Python 代码使用 OpenAI API ,需要安装 openai 库,可以通过 pip install openai 方式安装,为了使用方便,设置环境变量 OPENAI_API_KEY,由于本人使用的运行环境是 Anaconda3 PowerShell(Windows 10 系统),因此使用命令 $Env:OPENAI_API_KEY = "Your OpenAI API Key"(注意,此命令只影响当前会话)。具体 Python 代码如下
import os import openai openai.api_key = os.getenv("OPENAI_API_KEY") completion = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[ {"role":"user", "content":"Say this is a test!"} ] ) print(completion.choices[0].message.content)
安装 Python openai 库,创建并查看环境变量,以及Python 程序运行结果,如下图所示
参考资料
[1] 人工智能 OpenAI ChatGPT 账号国内注册攻略丨图文教程. https://baiyunju.cc/10843
[2] [2023]国内注册ChatGPT的方法. https://www.pythonthree.com/register-openai-chatgpt/
[3] OpenAI API Reference. https://platform.openai.com/docs/api-reference
[4] 01-接入chatGPT API. https://janycode.github.io/2023/04/20/13_%E7%AC%AC%E4%B8%89%E6%96%B9/03_OpenAI/01-%E6%8E%A5%E5%85%A5chatGPT%20API/
[5] A Simple Guide to The (New) ChatGPT API with Python. https://medium.com/geekculture/a-simple-guide-to-chatgpt-api-with-python-c147985ae28
[6] PowerShell about Environment Variables. https://learn.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_environment_variables?view=powershell-7.3
[7] How to Set Environment Variables in Linux. https://www.serverlab.ca/tutorials/linux/administration-linux/how-to-set-environment-variables-in-linux/