手把手教你用Python调用GPT前端API(全流程实操,附完整代码)
手把手教你用Python调用GPT前端API(全流程实操,附完整代码)
摘要
本文详细讲解Python调用GPT前端API的完整实操步骤,从API密钥获取、环境准备,到请求构造、参数配置、响应解析,再到异常处理、批量调用,每一步都附具体代码和解释,零基础也能快速上手。适配OpenAI GPT-3.5/4、国产类GPT前端API等主流场景,代码可直接复用。
正文
一、前置准备(必看!)
在调用API前,需完成2个核心准备工作,缺一不可:
1. 获取API密钥(以OpenAI为例)
GPT类API均需密钥鉴权,以OpenAI GPT为例,获取步骤:
① 登录OpenAI官网(https://platform.openai.com/),登录账号后进入「API keys」页面;
② 点击「Create new secret key」,输入密钥名称(如「python-gpt-api」),点击创建;
③ 复制生成的密钥(仅显示一次,务必保存好,丢失需重新创建)。
注意:国产类GPT(如文心一言、通义千问)需到对应平台(百度智能云、阿里云)创建应用,获取API Key和Secret Key。
2. 安装Python依赖库
调用API需用到requests库(发送HTTP请求),执行以下命令安装:
# 安装requests库
pip install requests
# 若需处理JSON格式/异常,无需额外安装(Python内置json库)
二、核心步骤:Python调用GPT API(基础版)
以调用OpenAI GPT-3.5 API为例,分5步完成:
步骤1:导入依赖库+配置基础参数
首先导入requests和json库,配置API密钥、请求URL等核心参数:
import requests
import json
# 1. 配置核心参数
API_KEY = "你的API密钥" # 替换为自己的密钥
BASE_URL = "https://api.openai.com/v1/chat/completions" # GPT-3.5/4前端API地址
HEADERS = {
"Content-Type": "application/json",
"Authorization": f"Bearer {API_KEY}" # 鉴权格式:Bearer + 空格 + 密钥
}
步骤2:构造API请求体(关键!)
GPT API要求传入特定格式的JSON请求体,核心参数说明:
model:模型版本(如gpt-3.5-turbo、gpt-4);messages:对话列表,每个元素包含role(角色:user/assistant/system)和content(内容);temperature:随机性(0-2,0最严谨,2最随机);max_tokens:响应最大令牌数(控制回复长度)。
构造请求体代码:
# 2. 构造请求体
payload = {
"model": "gpt-3.5-turbo", # 指定模型
"messages": [
{"role": "user", "content": "用Python写一个冒泡排序代码"} # 用户提问
],
"temperature": 0.7, # 平衡随机性和准确性
"max_tokens": 500 # 限制回复长度
}
步骤3:发送POST请求调用API
使用requests.post()发送请求,传入URL、请求头、请求体:
# 3. 发送POST请求
try:
response = requests.post(
url=BASE_URL,
headers=HEADERS,
data=json.dumps(payload) # 将字典转为JSON字符串
)
# 检查请求是否成功(状态码200表示成功)
response.raise_for_status() # 非200状态码抛出异常
except requests.exceptions.RequestException as e:
print(f"API调用失败:{e}")
exit()
步骤4:解析API响应结果
GPT API返回JSON格式响应,核心数据在choices[0].message.content中:
# 4. 解析响应结果
response_data = response.json() # 将响应转为字典
# 提取GPT回复内容
gpt_reply = response_data["choices"][0]["message"]["content"]
print("GPT回复:\n", gpt_reply)
步骤5:完整运行代码
将以上步骤整合,完整代码如下(替换密钥即可直接运行):
import requests
import json
# 配置参数
API_KEY = "sk-xxxxxx" # 替换为自己的API密钥
BASE_URL = "https://api.openai.com/v1/chat/completions"
HEADERS = {
"Content-Type": "application/json",
"Authorization": f"Bearer {API_KEY}"
}
# 构造请求体
payload = {
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "用Python写一个冒泡排序代码"}],
"temperature": 0.7,
"max_tokens": 500
}
# 调用API并解析结果
try:
response = requests.post(BASE_URL, headers=HEADERS, data=json.dumps(payload))
response.raise_for_status()
response_data = response.json()
gpt_reply = response_data["choices"][0]["message"]["content"]
print("GPT回复:\n", gpt_reply)
except requests.exceptions.RequestException as e:
print(f"调用失败:{e}")
三、进阶场景:多轮对话调用
GPT支持多轮上下文对话,只需在messages中补充历史对话记录:
payload = {
"model": "gpt-3.5-turbo",
"messages": [
{"role": "user", "content": "用Python写一个冒泡排序代码"}, # 第一轮提问
{"role": "assistant", "content": "以下是冒泡排序代码:..."} # GPT回复(可从历史响应中提取)
{"role": "user", "content": "解释一下这段代码的核心逻辑"}, # 第二轮提问
],
"temperature": 0.7
}
四、国产GPT API调用示例(以文心一言为例)
国产GPT API参数格式略有差异,以文心一言ERNIE-Bot为例:
import requests
import json
import time
import hashlib
# 配置文心一言参数
API_KEY = "你的API Key"
SECRET_KEY = "你的Secret Key"
BASE_URL = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/ernie_bot"
# 1. 获取access_token(百度API需先获取令牌)
def get_access_token():
url = f"https://aip.baidubce.com/oauth/2.0/token"
params = {
"grant_type": "client_credentials",
"client_id": API_KEY,
"client_secret": SECRET_KEY
}
response = requests.get(url, params=params)
return response.json()["access_token"]
# 2. 调用文心一言API
access_token = get_access_token()
headers = {"Content-Type": "application/json"}
payload = {
"messages": [{"role": "user", "content": "解释Python装饰器的作用"}],
"temperature": 0.7
}
# 拼接最终请求URL
final_url = f"{BASE_URL}?access_token={access_token}"
response = requests.post(final_url, headers=headers, data=json.dumps(payload))
print("文心一言回复:\n", response.json()["result"])
五、常见问题与避坑指南
- 密钥泄露:切勿将API密钥直接写在代码中,可通过环境变量读取:
import os API_KEY = os.getenv("OPENAI_API_KEY") # 系统环境变量中配置密钥 - 请求超时:添加超时参数避免程序卡死:
response = requests.post(BASE_URL, headers=HEADERS, data=json.dumps(payload), timeout=30) - 令牌超限:
max_tokens设置过大可能触发限额,建议根据需求调整(如GPT-3.5单轮最大4096令牌)。 - 地区限制:OpenAI API部分地区无法直接访问,可配置代理:
proxies = { "http": "http://127.0.0.1:7890", "https": "http://127.0.0.1:7890" } response = requests.post(BASE_URL, headers=HEADERS, data=json.dumps(payload), proxies=proxies)
六、总结
Python调用GPT前端API的核心流程为:
- 获取并配置API密钥;
- 构造符合API要求的请求体(重点是
messages参数); - 发送POST请求并处理响应;
- 解析结果并处理异常。
不同平台的GPT API仅参数格式、鉴权方式略有差异,核心逻辑一致。掌握基础调用后,可扩展为批量提问、对话机器人、自动化生成内容等场景。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)