大家好,我是 HolySheep AI 技术博客的小羊老师。今天我们来聊一聊 OpenAI 官方 Python 库中最基础也最重要的知识点——OpenAI() 构造函数的各种参数。很多刚接触 AI API 的同学,往往在第一步初始化客户端就卡住了,不知道该填什么、怎么填。别担心,看完这篇教程,保证你从零基础到能够独立调用 GPT!
一、什么是 OpenAI() 构造函数?
在 Python 代码里,我们想要调用 GPT 接口,首先要创建一个"客户端"。这个客户端就像是你和 GPT 服务器之间的"中间人",负责把你的请求发送出去,并把返回结果带回来。
创建这个客户端的代码就是这样:
from openai import OpenAI
client = OpenAI()
就这么简单一行代码,你就创建好了一个能用的客户端。但是!如果你想在国内更省钱、更快速地使用 GPT,上面这行代码就不够了——我们需要给构造函数传入一些参数来让它连接到更合适的服务商。
二、OpenAI() 构造函数完整参数列表
让我们先看看官方文档里 OpenAI() 支持的所有参数:
OpenAI(
api_key: str | None = None, # API密钥
base_url: str | None = None, # API基础地址
timeout: float | None = None, # 请求超时时间(秒)
max_retries: int = 2, # 最大重试次数
default_headers: dict | None = None, # 默认请求头
default_query: dict | None = None, # 默认查询参数
http_client: httpx.Client | None = None # 自定义HTTP客户端
)
作为新手,我们最需要关注的是前两个参数:api_key 和 base_url。其他参数用默认值就足够了。
三、参数详解——手把手教学
3.1 api_key 参数(必需)
这是你的"通行证",相当于账号密码。不同的 API 服务商(OpenAI 官方、HolySheep AI 等)会给你不同的 Key。
如何获取 HolySheep AI 的 API Key?
- 第一步:访问 立即注册 HolySheep AI
- 第二步:登录后进入「API Keys」页面
- 第三步:点击「Create new secret key」生成你的专属 Key
获取到 Key 后,在代码里这样使用:
from openai import OpenAI
client = OpenAI(
api_key="YOUR_HOLYSHEEP_API_KEY" # 替换成你真实的Key
)
⚠️ 重要提醒:千万不要把真实的 Key 直接写在代码里然后上传到 GitHub!建议使用环境变量来存储敏感信息,后面的章节会讲到。
3.2 base_url 参数(国内用户必看)
这个参数指定了"把你的请求发到哪里去"。
使用 OpenAI 官方接口,base_url 应该是 https://api.openai.com/v1。但是在国内,这个地址:
- 访问速度慢(延迟经常超过 500ms)
- 需要科学上网
- 按官方汇率结算,1美元约等于7.3元人民币
所以我推荐大家使用 HolySheheep AI 中转站,它的 base_url 是:
https://api.holysheep.ai/v1
为什么选择 HolySheep AI?这里列出它的核心优势:
- 汇率超低:¥1 = $1 无损兑换,官方是 ¥7.3 = $1,节省超过 85% 的成本
- 国内直连:服务器延迟 < 50ms,响应速度飞快
- 支付便捷:支持微信、支付宝直接充值
- 注册送额度:新用户立即获得免费试用额度
在代码里配置 HolySheep 中转站:
from openai import OpenAI
client = OpenAI(
api_key="YOUR_HOLYSHEEP_API_KEY",
base_url="https://api.holysheep.ai/v1"
)
这样配置好后,你的所有 API 请求都会通过 HolySheep AI 中转,不仅速度快,而且用人民币就能充值,无需担心外汇结算问题。
3.3 timeout 参数(可选)
设置请求超时时间,单位是秒。如果请求超过这个时间还没响应,代码会报错而不是一直卡着。
client = OpenAI(
api_key="YOUR_HOLYSHEEP_API_KEY",
base_url="https://api.holysheep.ai/v1",
timeout=30.0 # 30秒超时
)
建议设置为 30-60 秒,太短可能导致大模型输出时被强制中断。
3.4 max_retries 参数(可选)
当请求失败时(比如网络抖动),自动重试几次。默认是 2 次。普通使用保持默认就行。
client = OpenAI(
api_key="YOUR_HOLYSHEEP_API_KEY",
base_url="https://api.holysheep.ai/v1",
max_retries=3 # 最多重试3次
)
四、完整代码示例——调用 GPT-4
下面是一个完整的示例,演示如何用配置好的客户端调用 GPT-4 模型:
from openai import OpenAI
创建客户端
client = OpenAI(
api_key="YOUR_HOLYSHEEP_API_KEY",
base_url="https://api.holysheep.ai/v1"
)
发送请求
response = client.chat.completions.create(
model="gpt-4",
messages=[
{"role": "system", "content": "你是一个友好的AI助手"},
{"role": "user", "content": "你好,请用一句话介绍自己"}
]
)
打印回复
print(response.choices[0].message.content)
运行这段代码,你应该能看到 GPT-4 的回复。
如果你想调用 GPT-4o 或者其他模型,只需要修改 model 参数即可。通过 HolySheep AI,你可以用超低价格使用以下主流模型:
- GPT-4.1:$8 / 每百万 Token
- Claude Sonnet 4.5:$15 / 每百万 Token
- Gemini 2.5 Flash:$2.50 / 每百万 Token
- DeepSeek V3.2:$0.42 / 每百万 Token
五、安全最佳实践——环境变量存储 Key
前面说过,不要把 Key 直接写在代码里。正确做法是使用环境变量:
import os
from openai import OpenAI
从环境变量读取 Key(不要把真实Key写在这里!)
api_key = os.environ.get("HOLYSHEEP_API_KEY")
client = OpenAI(
api_key=api_key,
base_url="https://api.holysheep.ai/v1"
)
然后在终端设置环境变量:
# Linux/Mac
export HOLYSHEEP_API_KEY="YOUR_HOLYSHEEP_API_KEY"
Windows PowerShell
$env:HOLYSHEEP_API_KEY="YOUR_HOLYSHEEP_API_KEY"
或者使用 python-dotenv 库,把 Key 存在 .env 文件里,这样更方便管理多个项目。
六、常见报错排查
新手在使用过程中经常会遇到下面这些错误,我逐一说明原因和解决方法:
错误1:AuthenticationError - 认证失败
AuthenticationError: Incorrect API key provided
原因:API Key 填错了、Key 已过期、或者 Key 没有权限访问你请求的模型。
解决方法:
- 检查 Key 是否复制完整(注意不要多复制空格)
- 登录 HolySheep AI 确认 Key 还有效
- 检查 Key 是否有对应模型的访问权限
错误2:ConnectionError - 连接失败
ConnectionError: connection error
原因:网络无法连接到 API 服务器,或者 base_url 填错了。
解决方法:
- 确认 base_url 是
https://api.holysheep.ai/v1(注意是 https 不是 http) - 检查网络是否能访问该域名
- 如果是公司网络,询问是否限制了外网访问
错误3:RateLimitError - 请求过于频繁
RateLimitError: You exceeded your current quota
原因:账户余额不足,或者请求速度超过了 API 的限制。
解决方法:
- 登录 HolySheep AI 检查账户余额
- 使用支付宝/微信充值(实时到账)
- 降低请求频率,在代码中添加适当延时
错误4:BadRequestError - 请求格式错误
BadRequestError: Invalid request
原因:请求体的格式不正确,比如 model 名称写错了。
解决方法:
- 确认 model 参数是有效值(如 "gpt-4"、"gpt-4o")
- messages 必须是列表格式
- 每条 message 必须有 role 和 content 字段
错误5:Timeout - 请求超时
Timeout: Request timed out
原因:请求处理时间超过了你设置的超时时间。
解决方法:
- 增加 timeout 参数的值(比如从 30 改为 120)
- 如果请求的是长文本生成,适当调大超时时间是正常的
七、总结与下一步
通过这篇教程,你应该已经掌握了:
- OpenAI() 构造函数的所有重要参数
- 如何正确配置 base_url 使用 HolySheep AI 中转站
- API Key 的获取和安全存储方法
- 常见报错的排查思路
恭喜你完成了 AI API 调用的入门学习!接下来你可以:
- 学习更多 OpenAI 接口(如文本嵌入、图像生成)
- 尝试流式输出(Streaming)让回复更实时
- 构建自己的 AI 应用(聊天机器人、文案生成器等)
如果还有任何问题,欢迎在评论区留言交流!