59API

← Voltar aos guias

Python OpenAI SDK 自定义 base_url:59API 接入与报错排查

API · ZH · 2026-10-16

自定义 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 写法。

第二步:正确设置 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 环境变量,但排查问题时应统一配置来源,避免显式参数覆盖环境变量而不自知。

常见报错:按状态码定位,而不是反复换密钥

示例设置了有限重试。若业务层也有重试,应控制总次数,避免请求成倍增加。记录状态码、耗时和请求编号即可,不要默认保存完整敏感提示词或鉴权头。

FAQ:能连通,为什么某些功能仍然失败?

Chat Completions 成功,Responses 就一定可用吗?不一定。兼容 SDK 不代表所有端点、工具调用和结构化输出参数都逐项一致。先跑通最小文本请求,再逐个增加功能;不支持的参数应对照模型和接口说明处理。

流式输出为什么出现空内容?设置 stream=True 后,需要遍历返回的事件,读取片段中的 choices[0].delta.content。部分事件只有角色或结束信息,内容可能为空,应先判断再拼接,而不是继续读取完整响应中的 message.content。

Claude Code、Codex 也用同一套配置吗?59API提供这些工具的兼容接入,但各工具的配置文件、环境变量和协议入口可能不同,不应直接照搬 Python 示例。

FAQ:59API适合怎样的成本需求?

59API主打低价、按量付费,并介绍其模型为官方原生质量、不做降级,适合希望减少固定投入、按任务切换 GPT 与 Claude 的开发者。比较价格时,还应核对输入、输出、缓存及不同模型的计费规则,用真实任务同时评估质量、延迟和总费用。

平台还提供推荐返利,具体规则以当前活动为准。如果你的项目需要低成本验证多模型调用,可以注册59API,先用少量请求测试效果,再逐步扩大用量。

Preços · Docs

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