首页 > 其他分享 >OpenAI API keys 的申请和测试小结

OpenAI API keys 的申请和测试小结

时间:2023-05-03 12:35:19浏览次数:86  
标签:keys API openai https OpenAI curl

申请

准备工作,申请 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/

标签:keys,API,openai,https,OpenAI,curl
From: https://www.cnblogs.com/klchang/p/17352911.html

相关文章

  • 常见问题——关于.net WebApi使用Swagger报错:HTTP Error 403.14 - Forbidden
    问题:.netWebApi项目使用Swagger报错:HTTPError403.14-Forbidden解放方案:换一个端口即可推荐——删除解决方案下的.vs文件夹,重新生成即可参考:https://stackoverflow.com/questions/34970088/swagger-gives-me-http-error-403-14-forbidden/53863456......
  • 对外提供的api保证接口的幂等 (先select 再 update innodb是行级锁, mysam是表级的
    额外的状态字段,这个状态值一般只会单流程变更,不管通过什么消息传递,目前申万宏源的每一个业务大部分都走流程,走的过程就有唯一的业务字段配合工作流workflow服务来进行业务流转个人观点解决幂等只有两种方式第一种依赖上游带过来的唯一标志,然后我们给这个唯一标志加锁保证请......
  • SpringBoot定义优雅全局统一Restful API 响应框架
    假如现在有一个Java项目,老板让你做项目组长,定义项目基础框架,系统技术架构选型,你应该如何设计一个规范的统一的RestfulAPI响应框架呢思考目前项目开发,都是基于前后端分离模式开发的,基于后端模板引擎那一套,可能已经不适用一些项目开发流程,和当下开发模式了,尤其在要写比......
  • SpringBoot定义优雅全局统一Restful API 响应框架
    假如现在有一个Java项目,老板让你做项目组长,定义项目基础框架,系统技术架构选型,你应该如何设计一个规范的统一的RestfulAPI响应框架呢思考目前项目开发,都是基于前后端分离模式开发的,基于后端模板引擎那一套,可能已经不适用一些项目开发流程,和当下开发模式了,尤其在要写......
  • 理解 Java8 的时间API(二)时间
    理解Java8的时间API:java.time上一篇介绍了Java8里新的时区API。这一篇介绍新的时间API:LocalDateTime,LocalDate,LocalTime类。三、Java8中的时间最常用的应该是java.time.LocalDateTime,java.time.LocalDate,java.time.LocalTime,java.time.Instant这几个类。3.1LocalDateTim......
  • 什么是Auto GPT-4? OpenAI 最新语言模型概览
    动动发财的小手,点个赞吧!人工智能正在快速发展,近年来最令人兴奋的发展之一是创建可以生成类似人类文本的语言模型。领先的人工智能研究机构OpenAI最近发布了其最新的语言模型AutoGPT-4。在什么是AutoGPT-4?OpenAI最新语言模型概述一文,我们将概述什么是AutoGPT-4、Auto......
  • 手机操作API
    目录手机操作API获取手机分辨率手机截图获取和设置手机网络发送键到设备操作手机通知栏总结手机操作API获取手机分辨率应用场景自动化测试可能会需要根据当前设备的屏幕分辨率来计算一些点击或者滑动的坐标核心代码#获取手机分辨率print(driver.get_window_size())执行结......
  • 如何通过 API 查看 cnblogs 博客访问量和博客积分与排名 All In One
    如何通过API查看cnblogs博客访问量和博客排名AllInOne开启配置https://i.cnblogs.com/preference博客访问量APIhttps://www.cnblogs.com/`username`/ajax/blogStats博客排名APIhttps://www.cnblogs.com/`username`/ajax/sidecolumn.aspxdemos博客访问量......
  • 推翻OpenAI结论,DeepMind重新定义预训练的参数和规模关系!
    文|王思若前言从20年开始,“最大语言模型”的桂冠被各大研究机构和科技公司竞相追逐,堆砌参数,猛上算力,开启了“大炼丹”时代,模型参数量仿佛越大越好,甚至GPT-4模型参数量将超过100万亿的传闻甚嚣尘上。当把视角落在今年下半年,大模型的“军备竞赛”似乎戛然而止,22年4月,Google发布了5400......
  • android2.3新增API StrictMode介绍
    google在android2.3中新增了StrictModeAPI来设置对一个thread的策略(ui线程或者分线程),它主要检测了读写操作,访问网络,数据库读写等耗时的操作并将其以log或者dialog等形式打印出来。分析这些日志,我们可以尽快找出程序运行缓慢的原因进而优化代码,避免ANR(ApplicationNotRespondin......