使用Python调用ChatGPT API

使用Python调用ChatGPT API

ChatGPT是一个基于OpenAI的GPT模型的聊天接口。它可以用于构建聊天机器人、智能助手等自然语言处理应用。本文将介绍如何使用Python调用ChatGPT的API,并展示一些示例代码。

特别注意

  1. GPT会禁止国内IP访问,所以在运行代码的网络环境下必须是非大陆,实测过香港可以,有些国外的地区也是不支持的
  2. 你想要的答案都在代码和注释里,很详细很清楚

准备工作

在开始之前,您需要完成以下准备工作:

  1. 注册OpenAI账号:访问OpenAI官方网站 openai.com,注册一个账号并登录。

  2. 创建API密钥:登录OpenAI后台,转到"API Keys"页面,在那里您可以创建一个新的API密钥。

  3. 安装OpenAI Python库:打开终端或命令提示符,运行以下命令安装OpenAI Python库:

pip install openai
  1. 获取API密钥:在Python代码中,您需要将OpenAI账号的API密钥作为环境变量传递给OpenAI库。您可以在终端或命令提示符中运行以下命令设置环境变量:
export OPENAI_API_KEY='your-api-key'

调用ChatGPT API

以下是一个使用Python调用ChatGPT API的示例代码:

import openai

# 设置API密钥
openai.api_key = 'your-api-key'

# 调用ChatGPT API
response = openai.Completion.create(
        model="gpt-3.5-turbo",# 还有其他模型如:gpt-3.5-turbo-16k(支持更大输入输出文本)、gpt-4(账号需要付款1美刀以上解锁)、gpt-4-32k(支持更大文本,一般用户无法使用)
        messages=[{ role: 'system', content: '你是一个数学老师',{ role: 'user', content: '你好,1+1等于几?' }],# role参数有三个选项system(系统设定,赋予gpt一个角色)、user(代表用户也就是你)、assistant(代表gpt),content就是文本内容了,需要联系上下文的话,把前面的历史对话都添加进入到这个数字里即可,这样GPT就能关联上下文了!
        temperature=0.8,# 取值在0-2,值越低回答越死板较为官方标准,值越高回答越随机,答案可能会很离谱荒谬
        stream=false, # 是否采用流文本传输,false的话GPT会一次性把回复内容全部发给你,等待的时间会比较长,响应数据里面会包含输入tokens数和输出tokens数;true的话GPT就会一个一个字的回复给你,需要多次接收,搞起来稍微麻烦一点,这样也能实现像官网那样的打字回复效果,但是响应数据里面不会包含输入tokens数和输出tokens数,这样就需要你利用tiktoken这个库去实现自己计算tokens的消耗了。
)

# 输出响应
print(response.choices[0].text.strip())

# 若需长期使用chatgpt需要必备三样东西:
#1. 魔法梯子
#2. 国外手机号接验证码注册
#3. 国外信用卡(这个最难)

#如果不想这么麻烦的话,这里有一个国内镜像可长期免费使用:chatgpt.indexls.com

在上面的代码中,我们通过设置openai.api_key变量将API密钥传递给OpenAI库。然后,我们调用了openai.Completion.create函数来发送一个聊天请求。在这个请求中,我们指定了ChatGPT的模型引擎、聊天的提示、生成的最大令牌数等参数。最后,我们打印出API的响应结果。