OpenAI API——AIGC自动化编程(04)

发表于:2023-10-13 09:17

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:李宁    来源:51Testing软件测试网原创

#
AI
  1.6  OpenAI API
  除直接在聊天界面中提问ChatGPT,还可以通过OpenAI API使用ChatGPT,只不过OpenAI API是按使用量收费的。根据使用的模型,收费也不同。读者可以通过OpenAI网站了解具体的收费规则。
  OpenAI API里面的使用量就是指token[ token是用于自然语言处理的词的片段,它是生成文本的基本单位。不同的语言和分词方式可能会导致token和字符的映射关系不同。一般来说,英文中一个token对应大约4个字符,而中文中一个汉字大致对应2~2.5个token。例如,英文单词red是一个token,对应3个字符;中文词语“一心一意”是4个汉字,对应6个token。]的消耗量,包括输入token消耗量和输出token消耗量。前者是指向ChatGPT提的问题消耗的token数,后者是指ChatGPT的回复消耗的token数。如果选择了gpt-3.5-turbo模型,1000个输入token需要0.0015美元,1000个输出token需要0.002美元。如果选择了GPT-4模型,那么要贵得多(因为消耗的计算资源更大),1000个输入token需要0.03美元,1000个输出tokens需要0.06美元。所以选择模型要谨慎,否则你充的钱很快就会被用光。
  在注册ChatGPT账号后,你的账号上会有5美元余额,作为测试OpenAI API的费用,不过这5美元不是永久的,有效期是4个月左右,不用就作废了。如果想长久使用OpenAI API,需要先用账号登录OpenAI官网,找到OpenAI API的账单信息。
  然后,单击Set up paid account按钮,会弹出图1-16所示的页面,输入信用卡信息,绑定即可。如果成功绑定信用卡,使用OpenAI API时,在每个自然月结束后,会自动从信用卡中扣除OpenAI API消耗的费用。
  使用ChatGPT API之前,要先获得API Key。API Key是一个以sk为前缀的字符串。读者可以从OpenAI网站申请API Key。当然,首先要有一个ChatGPT账号。
  进入OpenAI网站的API keys申请页面后,单击Create new secret key按钮,可以申请任意多个API Key,如图1-17所示。
图1-16  绑定信用卡
图1-17  申请多个API Key
  申请完API Key后,用API Key设置openai.api_key。API Key不要泄露给别人,否则任何人都可以使用你的API Key。另外,使用ChatGPT API是需要花钱的,费用在前面已经介绍了,所以别人得到了你的API Key,就相当于使用了你自己的钱。当然,万一泄露了API Key也不要紧,只需要删除旧的API Key,创建新的API Key即可,这样旧的API Key就作废了。
  如果读者要利用ChatGPT API开发应用,建议自己创建一个服务器端程序,再将ChatGPT API包装一层,将API Key放到服务器端,这样别人就很难拿到你的API Key了。
  OpenAI API支持使用多种语言开发,并为这些语言提供了相应的库。其中包括PythonJava、JavaScript、Go、C++、Rust等。有的库是OpenAI官方提供的,有的库是第三方开发的。本节会使用Python语言演示如何使用OpenAI API提问并接收和输出回复。
  调用OpenAI API需要使用openai模块,首先,使用下面的命令安装该模块。
pip3 install openai
  然后使用下面的代码向ChatGPT发送问题,并接收、输出回复以及消耗的token数。
import openai
openai.api_key = "这里应该填写API Key"
# 向ChatGPT发送请求
response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",   # 选择了gpt-3.5-turbo模型
    messages=[
       {"role": "user", "content": "用Python实现冒泡排序程序"},
    ]
)
# 输出回复内容
print(response.choices[0].message.content)
# 输出总共消耗的tokens数
print('消耗的token数:',response.usage.total_tokens)
  运行这段程序,会输出如下内容。
  以下是Python实现冒泡排序的示例代码。
'''python
def bubble_sort(arr):
    n = len(arr)
    # 遍历所有数组元素
    for i in range(n):
        # Last i elements are already sorted
        for j in range(0, n-i-1):
            # 如果当前元素大于下一个元素,则交换它们
            if arr[j] > arr[j+1] :
                arr[j], arr[j+1] = arr[j+1], arr[j]
?
# 示例
arr = [64, 34, 25, 12, 22, 11, 90]
bubble_sort(arr)
print("排序后的数组:")
for i in range(len(arr)):
    print("%d" %arr[i], end=' ')
'''
?
输出结果:
?
'''
排序后的数组:
11 12 22 25 34 64 90
'''
消耗的token数:221
版权声明:51Testing软件测试网获得作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号