Python 怎么调用大模型 API?面向新手一文讲清 3 种方法

编程狮(w3cschool.cn) 2026-08-11 15:14:56 浏览数 (13)
反馈

一句话结论先给你:Python 调用大模型 API,本质就是发一个 HTTP 请求到模型服务商的接口地址,带上你的密钥和想问的内容,就能拿回模型的回复。你想给自己写的 Python 小工具接上大模型能力,比如自动总结文章、智能问答,却卡在"到底怎么调",这很正常。其实调用一点都不神秘:你把一个装着"问题"和"密钥"的数据包发给对方,对方算完把回答发回来,这就是一次调用的全部。本文基于 Python 3.10 演示三种最常用的调法:用官方 SDK、用 requests 裸发请求、以及流式输出,帮你挑最顺手的一种。今天这篇文章,编程狮就把调用大模型 API 这件事讲透,新手也能照着跑通。

一、先搞懂一次调用发生了什么

调用大模型 API,本质上就是一次普通的 HTTP 请求:你把一个装着"问题"和"密钥"的数据包发给模型服务商的接口地址,对方算完,把回答塞进响应里发回来。这个数据包通常是 JSON 格式,里面的"密钥"用来证明"是你在使用","问题"就是你想问的内容。不同的服务商接口细节略有不同,但国内大部分都兼容 OpenAI 的接口格式,写法几乎一样,学会一家就能很快上手其他家。在动手之前,你需要两样东西:一是申请到的 API Key(密钥),二是记下服务商给的接口地址和模型名。申请密钥通常在服务商后台的"API Keys"页面,创建后会得到一串字符,它就是你的 api_key;接口地址和模型名一般写在服务商的"快速开始"文档里,复制下来备用即可。注意不同服务商的免费额度、计费方式不同,具体以官网说明为准,本文不提供具体价格。如果你刚学 Python,可以先过一遍 Python 基础入门教程,把请求库和 JSON 基础理顺,后面会顺很多。

二、方法一:用 OpenAI 兼容 SDK(最省事)

最省事的做法是装官方 SDK,用几行代码就能对话。下面以兼容 OpenAI 格式的接口为例(把地址和密钥换成你自己的):

from openai import OpenAI


client = OpenAI(
    api_key="你的_API_KEY",               # 替换成你申请的密钥
    base_url="https://你的接口地址/v1"     # 替换成服务商给的接口地址
)


resp = client.chat.completions.create(
    model="你的模型名",
    messages=[{"role": "user", "content": "用一句话解释什么是递归"}]
)
print(resp.choices[0].message.content)

SDK 帮你封装了鉴权、拼包、解析响应这些琐事,新手最友好,不用自己处理一大堆细节。拿到回复后,真正有用的内容在 resp.choices[0].message.content 里,它是一个字符串:你可以直接打印,也可以存进变量做后续处理,比如把结果再拼进提示词问一轮,就能实现多轮对话。常用语法记不住,Python 速查手册 可以常备在手边。需要说明:示例里的"你的_API_KEY""你的接口地址""你的模型名"都是占位符,请替换成你实际申请到的内容,不要照抄运行。装包命令通常是 pip install openai,具体以 SDK 文档为准。

⚠️ 注意:密钥不要写死在代码里,更不要提交到公开仓库。更稳妥的做法是用环境变量读取,避免泄露。

三、方法二:用 requests 裸发 HTTP 请求(不依赖 SDK)

如果不想装 SDK,用标准库之外的 requests 也能直接发请求,任何兼容 OpenAI 格式的模型都通用:

import requests


url = "https://你的接口地址/v1/chat/completions"
headers = {
    "Authorization": "Bearer 你的_API_KEY",
    "Content-Type": "application/json"
}
data = {
    "model": "你的模型名",
    "messages": [{"role": "user", "content": "用一句话解释什么是递归"}]
}
resp = requests.post(url, headers=headers, json=data)
print(resp.json()["choices"][0]["message"]["content"])

这种方式的好处是完全不依赖第三方包,逻辑也最透明:你清楚每一个字段是怎么发出去的,方便排错和定制。返回的是 JSON 字符串,用 resp.json() 解析成字典后,同样取 ["choices"][0]["message"]["content"]。如果服务商返回错误,resp.json() 里通常带有 error 字段,把它打出来就能看到原因。想了解背后的 AI 原理,AI 人工智能教程 里有更系统的讲解。当接口返回异常时,可以先打印 resp.status_code 和 resp.text 看看服务商到底回了什么,这是定位问题最快的办法,比盲目改代码高效得多。

四、方法三:流式输出与常见坑

模型生成回答是一个字一个字往外蹦的。如果你想让界面"边生成边显示",而不是等半天一次性吐出来,就打开流式输出(stream=True),然后逐块读取:

stream = client.chat.completions.create(
    model="你的模型名",
    messages=[{"role": "user", "content": "讲个三句话的冷笑话"}],
    stream=True
)
for chunk in stream:
    print(chunk.choices[0].delta.content or "", end="")

常见坑有几个,提前知道能省不少事:一是网络不稳要做超时与重试,别让程序卡死,可以给请求加上 timeout 参数并配合简单的重试逻辑;二是密钥别硬编码,前面已经强调过;三是不同服务商的模型名、参数可能略有差异,以各自文档为准。国内很多平台都是 OpenAI 兼容接口,换一家基本只改地址和密钥,代码几乎不用动。流式输出在聊天界面、命令行工具里体验最好,建议需要"边想边出"效果时优先打开。三种方法没有绝对优劣,按场景选就好:想最快跑通选 SDK,想完全掌控每个字段选 requests,想做聊天式体验选流式。同一段业务逻辑换一种写法通常只改几行,不必纠结,先跑通再优化。

总结

调用大模型 API 的核心,就是用 Python 发一个带密钥和问题的 HTTP 请求,拿回模型的回答。三种做法按顺手程度选:新手最省事用 OpenAI 兼容 SDK,几行代码就能对话;不想装包用 requests 裸发请求,逻辑最透明;要边生成边显示就打开流式输出逐块读取。记住两个底线:密钥别硬编码、不同平台以文档为准。想继续深入 AI 编程,可以顺着下面的路径走。

延伸学习

想把 AI 编程能力补齐,可以按这个顺序来:

  1. 想系统学 AI 编程技巧,AI 编程技能教程 覆盖提示词与工具链;
  2. 想动手练,编程实战课程 提供大量可上手的 Python 项目。

常见问题

Q:调用大模型 API 一定要装 SDK 吗?
A:不一定要。用 requests 直接发 HTTP 请求也能调,任何兼容 OpenAI 格式的模型都通用;SDK 只是帮你省去拼包和解析的琐事。

Q:密钥写在代码里有什么风险?
A:密钥一旦泄露,别人能冒用你的额度产生费用。建议用环境变量读取,且绝不上传到公开仓库。

Q:国内模型和 OpenAI 接口不一样吗?
A:多数国内平台都兼容 OpenAI 接口格式,写法基本一致,通常只需更换接口地址和模型名,具体以各家文档为准。

Q:什么是流式输出?
A:流式输出是让模型回答边生成边返回,前端可以逐字显示,体验更顺滑;关闭时则等全部生成完一次性返回。

Q:请求一直超时或报错怎么办?
A:先检查接口地址、模型名、密钥是否填对,再打印响应的状态码和正文定位原因;网络不稳时给请求加超时与重试逻辑。

Q:调用大模型 API 要花钱吗?
A:多数平台按调用量或 token 计费,新用户通常有免费额度,具体价格以服务商官网为准,本文不提供具体价格,请以官方说明为准。

0 人点赞