手把手教你用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:导入依赖库+配置基础参数

首先导入requestsjson库,配置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-turbogpt-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"])
五、常见问题与避坑指南
  1. 密钥泄露:切勿将API密钥直接写在代码中,可通过环境变量读取:
    import os
    API_KEY = os.getenv("OPENAI_API_KEY")  # 系统环境变量中配置密钥
    
  2. 请求超时:添加超时参数避免程序卡死:
    response = requests.post(BASE_URL, headers=HEADERS, data=json.dumps(payload), timeout=30)
    
  3. 令牌超限max_tokens设置过大可能触发限额,建议根据需求调整(如GPT-3.5单轮最大4096令牌)。
  4. 地区限制: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的核心流程为:

  1. 获取并配置API密钥;
  2. 构造符合API要求的请求体(重点是messages参数);
  3. 发送POST请求并处理响应;
  4. 解析结果并处理异常。

不同平台的GPT API仅参数格式、鉴权方式略有差异,核心逻辑一致。掌握基础调用后,可扩展为批量提问、对话机器人、自动化生成内容等场景。


Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐