如何使用Python调用ChatGPT,实现对话问答功能?
配置 OpenAI 环境变量
- 获取 OpenAI 的 API Key:
- 获取套壳平台的API密钥:使用国内 DevAGI 平台,需要去 https://devcto.com 注册获取(注意:使用套壳平台的API密钥,需要设置
api_base套壳平台地址)。
DevAGI解决了什么问题?大陆地区是不能访问 api.openai.com;充值官方的 key 不方便;价格昂贵。
- 获取 OpenAI 官网的API密钥: API Key ,使用官方提供的 key,调用官方的接口国内不能直接访问。
- 在当前项目根目录下面创建一个名为
.env的文件,内容如下:
OPENAI_API_KEY="sk-xxx" # 套壳平台的API密钥
OPENAI_BASE_URL="https://api.fe8.cn/v1" # OpenAI接口国内的套壳平台地址。

- 国内无法直接访问OpenAI的官网或接口,如:
ping api.openai.com
PING api.openai.com (162.125.83.1): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3
Request timeout for icmp_seq 4
Request timeout for icmp_seq 5
Request timeout for icmp_seq 6
- 为什么要配置 OpenAI 的 API Base?
因为大陆地区不能访问 api.openai.com,所以无法直接使用,需要使用套壳平台 - 注意:如果没有配置
api_base(OPENAI_BASE_URL)就直接走到了 官方的 OpenAI 的接口,常见会报错:Request timed out (国内不能直接访问官方)
测试
下面来测试各项配置是否正确。
- 在自己的项目文件夹下,安装项目依赖的包:
pip install python-dotenv openai - 新建 index.py 文件,内容如下:
import os
import openai
# 加载 .env 到环境变量
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())
# 配置 OPENAI 服务
openai.api_key = os.getenv("OPENAI_API_KEY") # 设置 OpenAI 的 key
openai.api_base = os.getenv("OPENAI_API_BASE") # 设置 OpenAI 接口的套壳平台地址
response = openai.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content": "讲个笑话"}
]
)
print(response.choices[0].message.content)
-
运行代码
在当前文件,点击右上角 ▶️ 运行按钮 ,即可运行Python 代码。详见下图:

