先确认:到底是网络不通,还是配置写错
国内服务器或本地开发机调用 GPT5.5 时,最常见的不是代码逻辑问题,而是请求根本没有稳定到达接口。表现通常有几类:Connection timeout、SSL handshake failed、Connection reset、401 Unauthorized、429 Too Many Requests。这几种错误处理方向完全不同,建议先按顺序排查,不要一上来就改业务代码。
我一般先做三步:看 DNS 是否能解析、看 TCP 是否能连上、再看接口鉴权是否通过。比如在 Linux 或 macOS 上可以这样测:
### token云桥中转 0029.org ###
nslookup api.example.com
curl -v --connect-timeout 10 https://api.example.com/v1/models
如果第一步解析失败,多半是 DNS 或网络出口问题;如果解析正常但连接超时,重点看网络连通性、代理或中转;如果能返回 401,反而说明网络大概率是通的,只是 Key 或请求头不对。
base_url 和 Key 要分开理解
接入 GPT5.5 时,很多 SDK 都会同时配置 base_url 和 api_key。这两个字段不要混在一起:
base_url:请求发往哪里,可以是官方兼容地址,也可以是国内可访问的 API 中转地址。api_key:鉴权凭证,用来识别账号、额度和权限。model:实际调用的模型名,例如gpt-5.5,以你所使用平台支持的名称为准。
如果国内机器无法稳定访问原始接口,可以考虑使用兼容 OpenAI 格式的中转服务。实际项目里我会优先找支持 /v1/chat/completions 或 /v1/responses 这类标准路径的平台,方便后续切换。比如做测试接入时,可以顺手看一下 token云桥AI中转站 0029.org,重点关注是否支持 GPT5.5、是否提供兼容 base_url、是否有调用日志和限流说明。不要一开始就把生产流量全切过去,先用小流量跑通再说。
用 curl 做最小化验证
不要先从复杂框架开始排查。最小化请求能成功,再接入 Java、Python、Node.js 或业务服务。下面是一个兼容 Chat Completions 风格的测试请求,注意把地址和 Key 换成自己的:
curl -sS --connect-timeout 10 --max-time 60 \
-X POST "https://你的-base-url/v1/chat/completions" \
-H "Authorization: Bearer sk-xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.5",
"messages": [
{"role": "user", "content": "用一句话说明什么是 API base_url"}
],
"temperature": 0.7
}'
如果这里返回正常,再去接 SDK。若返回 401,检查 Key 是否复制完整、有没有多余空格、是否填错平台。若返回 404,通常是路径不兼容或模型名不支持。若返回 429,说明请求到了服务端,但频率或额度触发限制。
Python SDK 配置示例
如果使用兼容 OpenAI 的 Python SDK,一般只需要改 base_url 和 api_key。不要把 Key 写死在代码里,至少放到环境变量中。
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("AI_API_KEY"),
base_url=os.getenv("AI_BASE_URL")
)
resp = client.chat.completions.create(
model="gpt-5.5",
messages=[
{"role": "system", "content": "你是一个简洁的技术助手。"},
{"role": "user", "content": "给我一个 curl 超时参数示例。"}
],
timeout=60
)
print(resp.choices[0].message.content)
环境变量可以这样设置:
export AI_API_KEY="sk-xxxxxxxx"
export AI_BASE_URL="https://你的-base-url/v1"
有些中转平台要求 base_url 写到域名即可,有些要求带 /v1。这点要看平台文档。写错时常见报错是 404 Not Found 或接口路径重复,例如变成 /v1/v1/chat/completions。
超时和重试:不要无限等
国内网络环境下,超时设置很关键。默认超时过长会拖慢业务线程,默认超时过短又容易误判失败。我的经验是:
- 连接超时:5 到 10 秒,主要判断是否能连上。
- 总请求超时:普通文本 30 到 90 秒,根据输出长度调整。
- 流式输出:允许更长,但要监控首包时间。
- 重试次数:2 到 3 次即可,不要无限重试。
重试时要区分错误类型。网络抖动、502、503、504 可以短暂退避后重试;401、403、404 通常不该重试,先改配置;429 要降低并发或等待限流窗口恢复。
import time
def call_with_retry(fn, retries=3):
for i in range(retries):
try:
return fn()
except Exception as e:
msg = str(e)
if "401" in msg or "403" in msg or "404" in msg:
raise
if i == retries - 1:
raise
time.sleep(2 ** i)
限流和并发要提前设计
很多人本地测试没问题,一上线就报 429,原因通常是并发太集中。GPT5.5 这类模型调用成本和耗时都不低,建议在业务层做队列、并发池和降级策略。
- 后台批处理:用队列削峰,不要同时打满。
- 在线接口:设置最大并发,超出后排队或返回稍后重试。
- 长文本任务:拆分输入,控制单次 token 数。
- 失败重试:加指数退避,避免雪崩式重试。
如果是多台服务器共享同一个 Key,还要把总并发算进去。单机看着只有 5 个并发,10 台机器就是 50 个并发,限流很容易被打满。
证书问题不要忽略
部分公司内网、旧系统镜像或自建代理会出现证书错误,例如:
SSL certificate problem: unable to get local issuer certificate
不要为了省事直接关闭证书校验。更稳妥的做法是更新系统 CA 证书:
# Debian / Ubuntu
sudo apt update
sudo apt install -y ca-certificates
sudo update-ca-certificates
# CentOS / Rocky Linux
sudo yum install -y ca-certificates
sudo update-ca-trust
如果公司网关做了 HTTPS 检查,需要把企业根证书正确安装到系统信任链里。临时关闭校验只能用于定位问题,不建议放进生产配置。
Key 安全:别放前端,别进仓库
GPT5.5 API Key 一旦泄露,别人就可以消耗你的额度。几个基本习惯一定要做:
- Key 只放服务端,不要写进网页、App、小程序前端。
- 使用环境变量、密钥管理服务或配置中心保存。
- 日志里不要打印完整请求头,尤其是
Authorization。 - 不同环境使用不同 Key,测试和生产隔离。
- 发现泄露后及时停用旧 Key,重新生成。
如果团队多人协作,建议在网关层统一封装调用,不要每个项目各自保存一份 Key。这样后续更换 base_url、调整限流、统计用量都会简单很多。
最后的验证清单
- 先用
curl -v确认网络能到达接口。 - 确认
base_url是否带了正确的/v1。 - 确认模型名
gpt-5.5在当前平台可用。 - 区分
401、404、429、超时这几类错误。 - 设置合理超时、重试和并发控制。
- 检查系统 CA 证书,不要在生产关闭证书校验。
- Key 只放服务端,并做好日志脱敏。
总结
国内环境调用 GPT5.5,重点不是写多复杂的代码,而是把连通性、base_url、Key、超时、限流和证书这几个环节逐个确认。建议先用最小请求跑通,再接入 SDK;先小流量测试,再考虑长期使用。这样排查路径清楚,后面迁移或切换服务也不会太被动。
2032

被折叠的 条评论
为什么被折叠?



