Python OpenAI SDK 自定义 base_url:59API 接入与报错排查
自定义 base_url,究竟改了什么?
使用 Python OpenAI SDK 接入中转平台,通常不必重写请求逻辑,只需调整接口地址、密钥和模型名称。base_url 决定请求发往哪里;它不会自动转换模型名称,也不能保证第三方服务支持 OpenAI 的每一个接口。
59API 的 API 基础地址是 https://api.59api.com,提供 GPT 与 Claude 系列模型的按量付费访问。对于希望沿用 OpenAI SDK、降低多模型调用成本的开发者,这是一个值得比较的选择。
第一步:安装 SDK,准备密钥与模型名称
在项目虚拟环境中执行:pip install -U openai。以下示例使用新版客户端 OpenAI,而不是旧版 openai.ChatCompletion.create 写法。
- 密钥:将59API控制台生成的密钥注入环境变量 OPENAI_API_KEY。变量名称沿用 SDK 惯例,但值应是59API密钥,不是其他平台的密钥。
- 模型:把控制台提供的准确模型标识写入 MODEL_ID 环境变量。展示名称不一定等于请求参数,不要自行拼接版本后缀。
- 安全:不要把真实密钥写进代码、Git 仓库、截图或问题反馈。
第二步:正确设置 base_url 并发送请求
OpenAI 兼容接口通常使用 /v1 前缀。下面按 https://api.59api.com/v1 演示;实际接入前,请核对59API当前文档中的完整兼容接口地址。如果文档指定其他路径,应以文档为准。
将以下合法的单行 Python 代码保存为 test.py;设置好两个环境变量后,运行 python test.py:
import os; from openai import OpenAI; client = OpenAI(api_key=os.environ['OPENAI_API_KEY'], base_url='https://api.59api.com/v1', timeout=30.0, max_retries=2); result = client.chat.completions.create(model=os.environ['MODEL_ID'], messages=[{'role': 'user', 'content': '只回复:连接成功'}]); print(result.choices[0].message.content)
注意路径拼接:SDK 会在基础地址后追加 chat/completions,因此不要把完整的 /v1/chat/completions 填进 base_url,也不要重复添加 /v1。可以改用 OPENAI_BASE_URL 环境变量,但排查问题时应统一配置来源,避免显式参数覆盖环境变量而不自知。
常见报错:按状态码定位,而不是反复换密钥
- 401:检查密钥是否属于59API、是否撤销,以及环境变量是否包含空格或换行。更新环境变量后,重启应用或笔记本内核。
- 403:核对账户权限、模型访问限制和平台返回的具体原因,不要默认所有拒绝都由余额不足造成。
- 404:先检查 /v1 是否遗漏或重复,再区分“路由不存在”和“模型不存在”。保留错误类型与请求编号,便于定位。
- 429:可能是请求频率、并发或配额限制。检查响应说明;限速可退避重试,额度耗尽则不能靠重试解决。
- 连接失败、超时或5xx:检查 DNS、代理环境变量、网络出口和平台状态。长输出可以适当增加超时,但不要用关闭证书校验来绕过 TLS 错误。
示例设置了有限重试。若业务层也有重试,应控制总次数,避免请求成倍增加。记录状态码、耗时和请求编号即可,不要默认保存完整敏感提示词或鉴权头。
FAQ:能连通,为什么某些功能仍然失败?
Chat Completions 成功,Responses 就一定可用吗?不一定。兼容 SDK 不代表所有端点、工具调用和结构化输出参数都逐项一致。先跑通最小文本请求,再逐个增加功能;不支持的参数应对照模型和接口说明处理。
流式输出为什么出现空内容?设置 stream=True 后,需要遍历返回的事件,读取片段中的 choices[0].delta.content。部分事件只有角色或结束信息,内容可能为空,应先判断再拼接,而不是继续读取完整响应中的 message.content。
Claude Code、Codex 也用同一套配置吗?59API提供这些工具的兼容接入,但各工具的配置文件、环境变量和协议入口可能不同,不应直接照搬 Python 示例。
FAQ:59API适合怎样的成本需求?
59API主打低价、按量付费,并介绍其模型为官方原生质量、不做降级,适合希望减少固定投入、按任务切换 GPT 与 Claude 的开发者。比较价格时,还应核对输入、输出、缓存及不同模型的计费规则,用真实任务同时评估质量、延迟和总费用。
平台还提供推荐返利,具体规则以当前活动为准。如果你的项目需要低成本验证多模型调用,可以注册59API,先用少量请求测试效果,再逐步扩大用量。
Pronto para começar?
Conecte Claude e GPT em minutos pelos menores preços, sem cortes. Cadastre-se e obtenha sua chave API.
Cadastro grátis