聚焦接入答案 · Python 与 JavaScript

如何在 OpenAI SDK 中设置自定义 Base URL

把现有 SDK 的请求指向 Primordial AI,获取实时模型 ID,完成最小可用测试,并在上线前确认兼容边界。

更新于 2026-08-24Python:base_urlJavaScript:baseURLAPI Key 只放服务端

直接答案

将 SDK Base URL 设置为 https://www.primoraihub.com/v1。Python 构造参数是 base_url,JavaScript 参数是 baseURL。API Key 只保存在服务端,并从 GET /v1/models 返回结果中选择模型 ID。

Base URLhttps://www.primoraihub.com/v1
Python 参数base_url
JavaScript 参数baseURL
模型发现GET https://www.primoraihub.com/v1/models
鉴权方式SDK 使用服务端 API Key 发送 Bearer Token

OpenAI 官方 SDK 文档说明安装和标准客户端初始化;本页的自定义端点和兼容方式来自 Primordial AI,不代表 OpenAI 对第三方服务的背书。

Python:使用 base_url

安装官方 Python 包,把 Primordial API Key 放入环境变量,然后初始化一个客户端:

pip install openai

export PRIMORDIAL_API_KEY="YOUR_PRIMORDIAL_API_KEY"
export PRIMORDIAL_MODEL_ID="从_V1_MODELS_返回的_MODEL_ID"
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["PRIMORDIAL_API_KEY"],
    base_url="https://www.primoraihub.com/v1",
)

configured_id = os.environ["PRIMORDIAL_MODEL_ID"]
models = client.models.list()
available_ids = {model.id for model in models.data}
if configured_id not in available_ids:
    raise RuntimeError(f"配置的模型不可用:{configured_id}")

response = client.chat.completions.create(
    model=configured_id,
    messages=[{"role": "user", "content": "只回复:connected"}],
)

print(response.choices[0].message.content)

JavaScript:使用 baseURL

在服务端 JavaScript 运行时中使用客户端,不要把高权限 API Key 放进发送给浏览器的代码。

npm install openai

export PRIMORDIAL_API_KEY="YOUR_PRIMORDIAL_API_KEY"
export PRIMORDIAL_MODEL_ID="从_V1_MODELS_返回的_MODEL_ID"
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.PRIMORDIAL_API_KEY,
  baseURL: "https://www.primoraihub.com/v1",
});

const models = await client.models.list();
const configuredId = process.env.PRIMORDIAL_MODEL_ID;
const availableIds = new Set(models.data.map((model) => model.id));
if (!configuredId || !availableIds.has(configuredId))
  throw new Error(`配置的模型不可用:${configuredId}`);

const response = await client.chat.completions.create({
  model: configuredId,
  messages: [{ role: "user", content: "只回复:connected" }],
});

console.log(response.choices[0].message.content);

先完成最小测试

  1. 使用 GET /v1/models 验证鉴权和路由。
  2. 从实时响应中复制一个模型 ID,不要猜测模型名称。
  3. 发送一次简短、非流式的对话请求。
  4. 基础请求成功后,再测试当前文档明确支持的流式输出、工具、结构化输出、图像或其他可选功能。
curl https://www.primoraihub.com/v1/models \
  -H "Authorization: Bearer $PRIMORDIAL_API_KEY"

常见配置错误

Python 与 JavaScript 参数名混用

Python 使用 base_url;JavaScript 使用 baseURL。参数写错可能导致客户端仍然请求默认端点。

Base URL 缺少 /v1

使用上方完整 Base URL。SDK 会继续拼接 /models/chat/completions 等资源路径。

直接复制其他提供商的模型名

模型目录可能变化;请使用实时 /v1/models 返回的 ID,参考模型发现指南,并在当前 API 文档中确认该模型支持的接口。

在前端代码中放入 API Key

浏览器 Bundle 对访问者公开。应通过自己的服务端或可信运行时发送请求,让密钥保持私密;创建、保存、鉴权测试和轮换步骤见API Key 快速入门

可选参数被拒绝

先移除可选参数,确认最小请求成功,再根据兼容文档逐项增加功能。

自定义 Base URL 是请求路由,不是全功能兼容承诺

修改 Base URL 只会改变 SDK 的请求目标,不能证明所有 OpenAI 接口、参数、模型、流式事件、工具行为或响应字段都完全一致。

生产环境需要验证实际使用的接口和功能,处理非成功状态码,在不记录密钥的前提下保存请求 ID,并为关键请求结构保留小型回归测试。

常见问题

应该使用什么自定义 Base URL?

使用 https://www.primoraihub.com/v1

配置项是 base_url 还是 baseURL?

Python 使用 base_url,JavaScript 使用 baseURL

URL 是否必须包含 /v1?

是。包含 /v1,让 SDK 资源路径落在文档指定的 API 版本下。

如何选择模型 ID?

调用 GET /v1/models,使用实时接口返回的 ID。

这样是否代表 OpenAI 所有功能都兼容?

不是。请根据 Primordial AI 当前文档验证应用实际需要的接口、参数、流式行为和响应字段。